I really couldn’t wait to dive in and start playing with this thing, so after a quick reminder on spec’s to show me why I was so excited to buy this thing in the first place, here’s a few first impressions and tips on setting one up. A mini review, if you will.
Onion Omega Specs & Pinout
|Dimensions||28.2mm x 42mm (1.1″ x 1.7″)|
|CPU||Atheros AR9331 400MHZ MIPS 24K|
|RAM||64MB DDR2 400MHz|
|USB||USB 2.0, Supports additional USB Hub|
|Antenna||PCB Antenna w/ uFL Connector|
* requires expansion dock
Onion Omega Out of the Box
The Omega is tiny, at just over an inch wide and an inch-and-a-half long. The mini-dock is the same length and width, but obviously a little taller with the headers that you need to plug the Omega into. Slot them together, plug in a USB cable from your PC, slide the itty bitty power switch to On, and you’re all set to get setup.
The Onion website has a decent set of directions for PC, Mac and Linux that get you up and running in a variety of ways, but there are a couple extra steps you might want to consider that I’ve included below – in particular, there’s no mention of choosing a different root password or setting up another user to use as default, which strike me as kinda important. I’m also not a fan of web-based setup in general, so I chose the “install a CP2102 driver and use PuTTY as a serial term” approach to get started.
Connection and Setup on Windows
You’ll need a CP2102 driver and PuTTY installed. If you don’t already have them, install them from here:
Check which COM port your Omega is connected to by typing Device Manager into the search box on your taskbar, starting Device Manager, and looking for the Silicon Labs driver under Ports – it’ll tell you which COM port the board’s connected to in brackets at the end of the line.
Onc you know the COM port, open up PuTTY and select Serial as you Connection type. Set you Speed to 115200, and your COM port in the “Serial line” box. Here’s how mine looked‘
While I was here, I also saved the terminal setup as “onion”. Whle I’ll be working with the Omega over WiFi in future, it’s handy to have the serial terminal settings saved. Press the
Open button and you’ll be greeted with the following terminal screen:
You’re in – time to crack on with the rest of setup, connecting to your WiFi network and updating the board to the latest firmware.
Connecting to your WiFi Network
Remarkably simple – type
1 to scan for wireless networks, select the number that corresponds to the network you want to connect to, and enter your password. Done!
Next, time to upgrade your OS – type the command
oupgrade and wait (and don’t unplug your board!!!) while it updates. Took me a couple mintes just long enough to grab a beer from the fridge and start to enjoy it.
Finding your IP address
From your PuTTY terminal, type
/sbin/ifconfig and you’ll be shown a large block of network details – your Omega’s WiFI IP address is in the one labelled
wlan0 – knowing that, you can use it either in your browser to display the Onion Console (see below for details) or make an SSH connection to your dev board.
Now, the step that the onion.io site doesn’t really tell you about. Logged in via a serial connection is pretty safe, but your Omega’s now connected to your home network, running OpenWRT Linux, with a root account and password that everyone and their uncle knows – root, and onioneer. You’re going to want to change that password immediately, and depending on your security preferences maybe disable the root account from ssh login and create a new account you can use to login and use sudo for any actions that need root priv’s.
To change root’s password, issue a
passwd command and change the password to something secure.
Next, set up a new account you can use to log in with.
The Onion Omega’s operating system
One of the selling points of the Omega per Onion’s marketing is that it “runs full Linux” – and true, OpenWRT is fine Linux distro. Couple of things to bear in mind: it’s designed for use in embedded systems with minimal resources, so probably won’t have all the bells and whistles that you’re used to if you’re coming from a Pi or PC-based system. There’s a bunch of subtle and not-so-subtle differences between distributions – for example, you’ll have to use the
opkg package manager instead of
APT that you might be more familiar with, and there are far fewer pre-compiled packages available for OpenWRT than some other distros.
Secondly, with a stock Omega you’re eventually going to feel the pinch of that 16Mb flash RAM. You can of course connect additional storage via the USB port, but it’d be really nice if you could expand on-board storage with an additional flash card. Unfortunately not. Let’s take a quick look at the package manager to see how you can fill up your flash.
Installing and managing packages
First, if you’ve used apt-get or it’s ilk, you’ll be pretty familiar with the concepts of the opkg package manager – with the key enhancement that it can be used to add kernel modules and drivers to the root filesystem.
opkg update to get the latest list of packages available, and take a look at what you have already with
opkg list-installed | more. Vastly more information on how to use opkg available on the openwrt.org site.
Let’s take a quick look at how to get a (very minimal) install of Python onto our Omega – enter the following commands:
</p> <p>opkg update</p> <p>opkg install python-light</p> <p>
And you’ll see output like this – wait while the Python packages get downloaded and installed, and then we’re off to the races. Takes about 7.2Mb of your previous flash,hence the “light” installation – no help docs etc, but presumably this is not going to be your main dev. box. Full Python needs ~50Mb, so no chance of installing that on the Omega I’m afraid.
You will want to review the docs on what is included and what is not – in order to get a simple
urllib2 request to work, I needed to install the
python-ssl modules, too. Take a look at the documentation at https://wiki.openwrt.org/doc/software/python for details, especially if you start to encounter failures loading modules that your program has dependencies on.
The Onion Console
Web based and running direclty on the Omega board, the Onion Omega console promises to deliver a set of utilities and an App Store that you can use to download , uh, apps for your Omega. As of writing, the App Store isn’t yet available (still in Beta, apparently) but I’m looking forward to trying it out. The utilites themselves provide a rudimentary set of apps for interacting with the board, some more or less useful than the others. Here’s the home screen, after you’ve logged in:
I kind of like the Status screen, which (surprise!) shows a status overview of your Omega:
And the Settings page provides a handy way to update your device name, timezone, password, WiFi settings and an option to do a factory reset, amongst others:
With the greatest respect to whoever built it, the Terminal app isn’t worth your time (super, super-slow – PuTTY is approx. 100 times faster) and I’ve yet to explore the GPIO and other apps in any depth.
If your appetite’s whetted, go get one at Onion’s online store – as of writing this, the Onion board’s available with the mini-dock immediately, and should be shipping with the expanded dock starting on January 1, 2016 (so – two days time. I guess I’ll order another ).
Check the Shipping Schedule & Status page for details on what’s expected to ship when, for the full dock and some of the expansion boards are not available yet and your order could be held until the latest part is ready… you might want to split your order up into a couple to work around that.