Porting product over from Raspberry Pi Zero W to the Omega2/Omega2s



  • Hello

    We sell a product which is based on the raspberry pi zero w, It basically just needs to run nodejs and a spi driven OLED display and a little 1w speaker. The raspberry pi zero's are becoming as total pain to get hold of in volume these days so we really need to think about jumping ship to a new platform.

    We also need a bit of storage for audio files so would probably go down the booting from SD card route.

    We need bluetooth to connect to bluetooth speakers but think we can add this via a usb bluetooth adapter?

    Our node firmware mainly uses bluetoothctl to control the bluetooth device and scan/connect to speakers.

    I think the omega2/omega2s has all the features we need and will fit inside our product. We are just trying to gauge the amount of work needed to port over to this system.

    At the moment we have our own way for the user to setup up the wifi via a nodejs server they connect to, which creates the wpa_supplicant file etc.. But I think the omega has its own dash board for configuring all of this built in to the os already?

    We sell around 200 boards a year but want to really grow this, so what ever we do would need to be setup once and then flashed to multiple sd cards.

    Any advice on porting over or issues you guys have faced would be fantastic?



  • @Russell-Pirie Omega can run NodeJS, and there is an OLED expansion available so it's not difficult to build a POC. Omega doesn't have bluetooth however take a look at this project that explains how to use BLE on Omega devices:

    https://docs.onion.io/omega2-project-book-vol1/bluetooth-audio-speaker.html

    You probably don't need to boot from SD Card, my own Omega2S+ based devices use SD Card for data storage and SQLite3 database.

    I think the main factor you will need to consider is if the Omega2S+ has sufficient computing power to meet your needs.

    Omega devices run OpenWrt which is basically a cut down verison of Linux so porting is not typically a huge challenge. Configuration of items such as WiFi can be achieved using "UCI" and "UBUS" interfaces that you can intereact with using JSON, my own device configuration interface is based on PHP and utilises the CURL API to interact with UBUS and configure the WiFi, TimeZone etc. for user setup.


  • Banned

    This post is deleted!


  • @crispyoz

    Thanks for the reply,

    Yeah if we can boot from the built in flash and have the nodejs / all the other bluetooth packages we require (will they all fit??) that would be fantastic then just use the sd card for our audio files (or can it talk to other external flash I could add to our custom pcb? (need at least 500mb - 1gb for these so internal flash is deffo out of the question.

    I don't really want to rewrite my bluetooth scan/connect driver but if its all easy enough should not be a problem.

    lets say I have this ported over and I am happy with my .img how easy is it to clone and then flash other devices. If I had say 250 devices to flash can i flash multiple units at once? (at the moment i flash multiple sd cards at once for the pi to speed things up)



  • @Russell-Pirie "...will they all fit??...." You'd need to be specific as to what they are and how they are configured in order to answer that.

    I'm not sure you need to rewrite a bluetooth driver, most users would utilise "Bluez" package for bluetooth, perhaps take a look at that package and see if it meets your requirements, here's a link to the package:

    https://openwrt.org/docs/guide-user/hardware/bluetooth/usb.bluetooth

    I flash my devices using a bash script (well ash), it just connects to the device(s) using ipv6, uploads the firmware and then ssh's into the device and execute the firmware upgrade. You could tweak my script a bit to make it handle multiple devices at once. I did about 40 of them today using my exiting script, one by one while I was eating lunch and watching the news.

    My script is here:

    https://community.onion.io/topic/4483/script-to-deploy-firmware-to-device-using-ethernet-ipv6

    The other option is to boot into u-boot and flash from USB.


  • Banned

    This post is deleted!


Looks like your connection to Community was lost, please wait while we try to reconnect.