Onion Omega

From aoxoaWiki
Jump to navigationJump to search

I will organize these at some point, but right now I just want to store these somewhere....

Online Documentation

Onion Omega2 Documentation - Online

Connecting Externally

There needs to be some setup (will document later), but once that is done:

  ssh root@omega4e2f

Initial Setup

I tried to register for the OnionCloud as part if the initial setup - it just hung. Reading some other user experiences, it seems it is better to update firmware, etc, first, before trying. So i just went back to the browser to and restarted the setup...

Changing IP Address

(from online manual)

For example, if we wanted to change the Omega’s IP Address to we would enter the following:

  uci set network.wlan.ipaddr=

Now once we have set our IP address, we’ll want to save this. The generic command to save a setting is the following:

  uci commit <CONFIG>

The config we’re changing is network, so we’ll enter the following to save our changes:

  uci commit network

Now once you’ve saved your settings, you’ll need to restart the network to apply the changes with this command:

  /etc/init.d/network restart

Upgrading the OS

Connect through ssh to the onion

  oupgrade --latest

Note that this is the latest, not necessarily the --stable release

WiFi Setup

Use the wifisetup command line tool

  wifisetup help
  wifisetup list
  wifisetup remove -ssid network_ssid

To run a simple command line setup:


Reference information on wifisetup can be found here.

Setting up a Cross-Compiler

The Omega2 is pretty space limited, and apparently compiling a non-trivial program can take a while. The solution is to cross compile the program on a laptop, and then download the program to the Omega. There are a couple of different tutorials on doing this, but some of them do not work. I eventually found this tutorial that does (caveta: "hopefully will" as i write this). I fired up an Ubuntu 18.04 instance in VirtualBox and set up the cross compiler stuff there.

Cross Compiling Programs (Tutorial)

Setting up this environment was a bit harder than expected, but it is working nicely now....

Error: conflicting types for copy_file_range

Got it working (finally). I used the instructions from the Onion documentation (not docker). Need to apply the above patch. (Base system was Ubuntu 18.04)

Onion's Instructions for Setting up Cross Compile Environment


- need to compile libugpio through the LEDE system (menuconfih, pick in Libraries, then make)

to build the example gpioRead program

  sh xCompile.sh -buildroot ~/onion/source -lib ugpio

Another option for the libraries is to edit the makefile, and add -lugpio to the list of libraries...

copy file to omega

 rsync -a ./gpioRead root@omega-4e2f.local:~/


By default, the Omega (OpenWRT operating system) runs in GMT. setting the time zone is controlled in the /etc/TZ file. TZ codes are documented HERE. Information on this process was found HERE - How to change timezone.

Suggested value (for PST/PDT)


New Notes

I need to organize these notes.

I tried to create a new up-to-date LEDE environment and had no end of issues. There might be versioning issues related to which version of the LEDE environment will work with the Onion Firmware. see this link: https://github.com/OnionIoT/source/tree/lede-17.01

latest cross-compile environment documentation: https://github.com/OnionIoT/source

I also investigated using docker to build the cross compiling environment.

Info on installing Docker on Ubuntu 18.04: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04

Onion also had some instructions on using Docker:



Docker experience was less than satisfactory....

Builtin LEDs

There are three GPIOs connected directly to the LED (active LOW)

GPIO 15 – Blue GPIO 16 – Green GPIO 17 – Red

Powering Omega2 with an Expansion Dock

I was wondering if it was possible to power an Omega2 with the expansion dock via pins, rather than using the traditional micro-USB power. I could not find this documented anywhere, but i did find the pinouts for the Omega2 itself. Using an Ohm-meter, i found that VIN on the Omega is directly connected to the 3.3V pins on the expansion dock. So I was able to power up without using the mico-usb, and instead, applying power to the 3.3V on the dock (and hooking up GND of course). Be really careful that you only supply 3.3V - I don't know what the tolerance of the Omega2 itself is and i really did not want to fry it...


Onion's Blog Posts

examples using MQTT: http://www.kevinboone.net/mosquitto-test.html

adafruit cloud and MQTT: https://learn.adafruit.com/adafruit-io/mqtt-api

Back to Main Page