Getting Started with Onion Omega2+ LEDE WiFi IoT Board and Expansion Dock

Onion Omega2 LEDE (OpenWrt fork) WiFi board is powered by Mediatek MT7688 MIPS SoC, targets IoT projects, and sells for as low as $5. There are actually two versions: Omega2 with 64MB RAM, 16MB flash, and Omega2+ with 128MB RAM, 32MB flash and a micro SD slot. Onion sent me the latter for review, together with an expansion dock that allows powering up the board though USB , and adds a USB host port, an RGB LED, buttons, and access to GPIO via a female header. In this quick start guide, I’ll start by taking some unboxing pictures, and then report my experience following the documentation to configure the board, blink the RGB LED, and control a LED on a breadboard using a GPIO from the header.

Onion Omega2+ Unboxing

I received the two boards in their respective package, and which are both stored in anti-static bags.

Click to Enlarge
Click to Enlarge

Let’s check Onion Omega2+ board first. The top includes a chip antenna and an u.FL connector for an external antenna, as well as the main components covered by a shield with some info like FCC ID, and the MAC address with the last four digits (hexits?) in bold since they are used to access the board. The bottom of the board are two rows of headers, and a micro SD card slot. There’s also a footprint for another header or connector, but I could not find out the details.

Click to Enlarge
Click to Enlarge

Next up is the dock. We have a 2x 15-pin female header with clear marking for the pins that include power signals, GPIOs, I2C, UART, and USB.

Click to Enlarge
Click to Enlarge

The button on the top is for power, the one at 45 angle is the reset button, and we also have a micro USB port for power, a USB port for storage, an RGB LED, and the header for Onion Omega2 board.

Click to Enlarge
Click to Enlarge

Plugging Omega2 into the dock is very easy, and the only thing you have to check is that it is inserted correctly.

Onion-Omega2-vs-LinkIt-Smart-7688Onion Omega2+ is not my first Mediatek MT7688 board, as I’ve reviewed LinkIt Smart 7688 too, and took side-by-side picture of both boards for comparison. Omega2+ is smaller, but LinkIt Smart board already include a micro USB port for power.

Initial Setup for Onion Omega2 and Expansion Dock

I normally test the documentation as much as I test the board, and after a web search, I ended up on that Getting Started page. However, it was for Onion Omega, the first version of the board introduced in 2015, and while the instructions are similar, they are not quite the same. Finally, I found the actual Omega2 Wiki, and could successful complete the setup with some efforts.

I’ll be using a computer running Ubuntu 16.04 to access the board, but it also works with Windows with Bonjour Service, and Mac OS X.

The Zeroconf services is needed to play with the board unless you access the board directly with its IP, but it’s normally already installed in Linux distriutions, so we are good to go. First we need to connect a micro USB to USB cable to a power source like the USB port of your computer, and turn on the board with the power switch.

Click to Enlarge
Click to Enlarge

At first both the RGB LED on the dock and Omega2+ LED will turn on for a short time, after which the RGB LED will turn off, and Omega2 LED will blink for a few seconds, and once the LED stops blinking and remains solid the boot is done.

Omega-Onion2-Access-Point

You should then see an new “Omega-XXXX” access point in your WiFi networks, where XXXX is the last digits of your MAC address shown on bold on the board. We now need to connect to the access point using password: 12345678

Omega2 Web Configuration

One it’s done, open a web browser and go ti http://192.168.3.1 or http://omega-XXXX.local/ to access Omega2 Setup Wizard.

Omega-Onion2-Setup-Wizard

Click Start to login with the default credentials (username: root ; password:onioneer), and the next page will let you connect the board to your WiFi router.Omega-Onion2-WiFi-Configuration

Selection you ESSID, input you WiFi password. and clikc on “Configure WiFi“. Omega-Onion2-Cloud

The wizard offers you to register your board to the cloud, but this is completely optional, and you could simply select Skip Step to go to the next step (firmware update). But I tried to registered the device to the cloud for this review.Onion-Cloud-RegistrationYou’ll need to provide your name, an email address and a password to register an account first.Onion-Omega2-Cloud-NameYou’ll then be asked for a device name and a description to confirm the registration.Onion-Cloud-Connection-failedSadly this step failed and I got the window above. Clicking on the red cross button did nothing. If I login to the cloud service, I can see the board listed, but detected as offline. I’m not the only one to have this issue, and Onion developers are looking into it.

Onion-Omega2+-Firmware-Update-ConsoleSo instead I went to the next step to upgrade the firmware and install Console web-based virtual desktop.Onion-Omega2-Firmware-Download-StuckThis also failed as the progress bar did not move at all, and I waited for around 20 minutes. I could also see my router’s DHCP server gave an IP address to the board, so it should have been able to connect to the Internet.

Omega2 Command Line Configuration

So I used to backup configuration method, using the command line as explained in the documentation. You just need to SSH the board as root with the same password as in the web configuration (onioneer):


Note Ω-ware firmware version is 0.1.5 b130.

wifisetup allows you to scan the network, and connect the board to your router:


Good. Firmware update failed in the web setup wizard, but we can retry it with oupgrade command line:


The firmware could be downloaded, and it looked like the system rebooted as I lost access to SSH terminal. The LED was still on for a while after it happened, then the LED went off (forever), at least longer than the 15 seconds listed in the documentation, and in that case they explain you need to power cycle the board. I used the power switch on the expansion dock to do so.

The board LED blinked for a pretty long time (maybe 2 minutes), but eventually it stopped and remained solid, and I could login to the board:


The firmware was updated to version 0.1.7 b139, so all good even though the whole setup did not go 100% smoothly. In case something goes really wrong and you can’t access the board at all, you could try to do a Factory Restore by pressing and holding the reset button for 10 seconds then releasing it.

Omega2 LEDE System Info

Since we’re done with the configuration, let’s quickly check some system info:


So we have a relatively recent kernel (Linux 4.4), 24.4MB space available to the user, 125664 KB total memory, and a MIPS 24KEc processor…

Controlling Omega2’s Dock RGB LED (via PWM)

We can start playing with the GPIO on the board starting with the RGB LED on the dock  that should be connected to pin 15, 16 and 17. The documentation explains expled sample can be used for this and we can see the R, G, B hexadecimal values. I want to show red color only, and I set blue and green to zero:


Oops, segfault. Let’s try something else like a pinkish color:


It runs, but the RGB LED remains off. It’s not an hardware problem since the RGB LED turns on at boot time. expled is actually a bash script that can be found in /usr/bin/expled and calls “fast-gpio“program which access GPIOs directly without using sysfs. Maybe it’s another firmware issue.

Controlling Omega2 GPIOs – LED example

In order to play with the expansion header, I connected a 5V LED to a breadboard together with two resistors and a transistor (for 3.3 to 5V conversion), and connected it to pin 1 on the header.

Click to Enlarge

We’ve already seen fast-gpio tools in expled script, but I used another GPIO tools for the LED, namely gpioctl that relies on sysfs.

We first need to set the GPIO pin as an output pin using the dirout command (dirin would set it as an input):


We can now turn the LED on by setting GPIO 1 to HIGH with dirout-high option:


The get command above will check the value of the pin. The LED did turn on as it should, and we can turn it off with dirout-low option:


Success.

If you want to use multiplexed pin with I2C, SPI, UART, PWM, I2S… you’ll need to check out omega2-ctrl program. I have not tried it for this guide to keep it short.

Onion Omega2 and BreadBoards

Many similar small IoT board are designed to fit on a breadboard, but Onion Omega2 board’s header pins are using 2 mm pitch, not 2.5 mm pitch, so they can’t be used with a breadboard directly. Instead, you’d have run wires from the board to the breadboard or purchase a BreadBoard Dock as pictured below.

If you do not have a dock, or breadboard expansion board, you can still power the Omega2 module/board using a 3.3V power source for example with a regulator such as LD1117, or something like YwRobot MB102 breadboard power supply.

If you are interested in getting a board, you may have to wait as while Omega Expansion Dock sells for $14.99 on Onion store, Omega2 boards are not listed yet. For reference, Omega2 board went for $5, and Omega2+ board for $9 on Kickstarter. [Update: While the Kickstarter campaign is now finished, you can still get on Indiegogo for the same price, and that includes shipping].

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Advertisements
Subscribe
Notify of
guest
55 Comments
oldest
newest most voted
Advertisements