Onion Omega: First impressions and first steps

Nestled in my mailbox today, a(nother) package from China – a nice surprise, because I’d totally forgotten that I ordered an Onion Omega and a mini-dock on December 1st following their highly successful Kickstarter campaign. Billed as the “Invention platform for the Internet of Things”, the Omega promises “built-in WiFi, Arduino-compatible and it runs full Linux. It lets you prototype hardware devices using familiar tools such as Git, pip, npm, and using high level programming languages such as Python, Javascript, PHP. The Onion Omega is fully integrated with the Onion Cloud, making it a breeze to connect physical devices to the Web to create Internet of Things applications. It’s also open source”, and has host of available and planned expansion boards ready for you to try out.

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
Flash 16MB
WiFi 802.11b/g/n 150Mbps
Ethernet* 100Mbps
USB USB 2.0, Supports additional USB Hub
Power 3.3V
Antenna PCB Antenna w/ uFL Connector
Power Consumption 0.6W

* requires expansion dock

Onion Omega Pinout Diagram
Onion Omega Pinout Diagram

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‘

onion putty

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:

onion first connect

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 wifisetup, choose 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.

onion upgrade


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.

onion omega ip

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.

Run 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-logging and 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:

onion console 1

I kind of like the Status screen, which (surprise!) shows a status overview of your Omega:

onion console 2

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: 

onion console 3

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.

Want one?

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 Smile).

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Read previous post:
Black Raven Grandfather Raven
A taste of Black Raven’s mighty Grandfather Raven

"Raven?", he asks. "Sure!" I reply - a pretty standard conversation where I work, for fortune has smiled upon us and...