Hologram Cellular Expansion Docs?
So it looks like the Cellular Expansion is essentially the Nova -- they share the same Ublox SARA-U201 modem.
I wrote everything below before I hit another brick wall. We need the psutil python package cross-compiled, it won't install via pip, and it's the last package needed before hologram-python will install.So you have to install GCC and Make following the guide here: https://docs.onion.io/omega2-docs/c-compiler-on-omega.html. I've revised the below instructions.
To install the Hologram Python SDK, you have to:
opkg install python python-dev python-distutils python-crypto python-pip
pip install --upgrade pip
pip install --upgrade setuptools
pip install python-sdk-auth
- Install GCC and Make (https://docs.onion.io/omega2-docs/c-compiler-on-omega.html)
pip install hologram-python
Make sure you have a USB or SD card mounted and setup as the main storage, or you won't have enough room for everything.
You can then use the SDK as described here:
While this allows you to install and run the python SDK, it doens't actually work. I get an error relating no no available usb backend (see code). Bummer.
root@Omega-32CB:~# hologram modem signal Traceback (most recent call last): File "/usr/bin/hologram", line 167, in <module> if __name__ == '__main__': main() File "/usr/bin/hologram", line 163, in main _command_handlers[command_selected_prefix](args) File "/usr/lib/python2.7/site-packages/scripts/hologram_modem.py", line 147, in run_hologram_modem _run_handlers[args['command_selected']](args) File "/usr/lib/python2.7/site-packages/scripts/hologram_modem.py", line 60, in run_modem_signal cloud = CustomCloud(None, enable_inbound=False, network='cellular') File "/usr/lib/python2.7/site-packages/Hologram/CustomCloud.py", line 35, in __init__ network=network) File "/usr/lib/python2.7/site-packages/Hologram/Cloud.py", line 36, in __init__ self.initializeNetwork(network) File "/usr/lib/python2.7/site-packages/Hologram/Cloud.py", line 50, in initializeNetwork self._networkManager = NetworkManager.NetworkManager(self.event, network) File "/usr/lib/python2.7/site-packages/Hologram/Network/NetworkManager.py", line 40, in __init__ self.network = network File "/usr/lib/python2.7/site-packages/Hologram/Network/NetworkManager.py", line 70, in network self._network.autodetect_modem() File "/usr/lib/python2.7/site-packages/Hologram/Network/Cellular.py", line 47, in autodetect_modem dev_devices = self._scan_for_modems() File "/usr/lib/python2.7/site-packages/Hologram/Network/Cellular.py", line 114, in _scan_for_modems if self._scan_for_modem(modemHandler): File "/usr/lib/python2.7/site-packages/Hologram/Network/Cellular.py", line 128, in _scan_for_modem dev = usb.core.find(idVendor=vid, idProduct=pid) File "/usr/lib/python2.7/site-packages/usb/core.py", line 1263, in find raise NoBackendError('No backend available') usb.core.NoBackendError: No backend available
@Joseph-Goldin good job on taking this subject [cellular expansion] to the next level. i hope you can get it to work. hologram has a user forum that might have some answers. but the forum isn't very active. good luck.
@Douglas-Kryder Thanks, yeah, hopefully Onion or Hologram can respond with some more info. At this point it seems like all that's missing is the piece that lets the Omega2 communicate with the Hologram board. I posted on the Hologram forums at this thread: https://community.hologram.io/t/onion-omega-cellular-expansion-documentation/1026
Thanks for reminding me to take a closer look at the Nova, I'd written it's Python SDK off before as un-usable without actually trying to install it.
At this point, if I decide I really need a cell modem for this project I'll probably just get a Nova and use a RasPi or something. Or try Hologram's Dash board.
I had an email a couple of weeks ago saying that Onion were working on some documentation and it would be ready "in a couple of weeks". So hopefully there will be something official along shortly.
Ohh - I have mine going but haven't installed the SDK yet, so I'll do you a trade.. :-)
As with any USB device, they have a VID (Vendor ID) and PID (Product ID). The linux device will see the VID and PID but you will have to tell it what hardware this is.. Is it a keyboard? Mouse? How can it communicate with the Cellphone modem? Looking at the docs for the UBlox Sara-201, it says that it has a few connections but one of them is an AT command set interface. Historically (if you are old enough to remember the 9600 baud modems we used to access the internet with in the early 90's...) modems with an AT command set are based on serial links. So in this case I took a guess and just said that the device is a serial device.
To get the PID and VID, you need to do the following:
root@Omega-F5C5:/usr/bin# lsusb Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 1546:1102 U-Blox AG Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@Omega-F5C5:/usr/bin#
So, device 3 is the U-Blox cell phone module. The ID 1546:1102 id the VID and PID. CD to /etc/modules.d and edit the file usb-serial with the contents, "usbserial vendor=0x1546 product=0x1102 maxSize=2048"
This includes the VID and PID from the command, "lsusb" above and tells the omega that there is a serial port.
root@Omega-F5C5:/etc/modules.d# cd /etc/modules.d root@Omega-F5C5:/etc/modules.d# cat usb-serial usbserial vendor=0x1546 product=0x1102 maxSize=2048 root@Omega-F5C5:/etc/modules.d#
Install screen with opkg install screen
then cd to the /dev directory and ttyACM1 should be there
pipe the port to screen
screen ttyACM1 <enter>
and then you are connected to the modem. Try AT <enter> and it should say OK.
Very cool! I'll have to mess around with it. I finally got the SIM card the other day (didn't realize that was coming separately), but still no info on how to activate it.
@TheLion Woo! Thanks so much! I made the changes to my usb-serial file as you mentioned, rebooted, and I'm able to use the serial AT terminal.
I still get a
usb.core.NoBackendError: No backend available replyerror when trying to use the python SDK, and I've troubleshooted that for hours to no avail. Has anyone else had any luck? Hopefully Omega does release docs soon.
In the meantime, the AT command reference for Ublox modems is located here:
Using that you can directly interact with the modem from
Has anyone had any luck using this expansion with the Battery Dock? I cannot get mine to turn on when the Hologram Expansion is installed. When the expansion isn't in place, the Omega2+ boots up fine. With it in place, the LEDs flash for a split second then nothing. The dock doesn't haven a LiPo connected at this moment, but I feel that even if it did have a battery, it still wouldn't boot. Do you think I have a defective Hologram Board?
@Daniel-OBrien what are you using to power the combination omega2 & hologram?
@Douglas-Kryder I have a 5v 2.4A USB wall wart. It has powered the same dock, with a battery attached and the OLED expansion without issue. I don't think it's a power problem. I'm more inclined to believe there is a short somewhere. Or the power dock isn't compatible with the expansion board, which would be weird.
I figured it out. I need the battery plugged in in order for it to work. If the battery isn't there, the battery dock doesn't seem to power the hologram board or the Omega2+. When the battery is plugged in, USB power works fine and charges the battery. There must be something on the hologram board that checks for the battery and if it doesn't find it, it doesn't power up?
Maybe it has more integration with the battery doc than I thought. Which is neat. Now I need more batteries.
@Daniel-OBrien I've had really weird issues with the power dock. I can't get it to boot with battery only, most of the time, which I think is a current-draw issue. The Omega will begin to boot and expansions will be powered but then the Omega shuts off mid-boot. I can't run from USB-only unless I'm using a 2.4amp charger, and even that's not guaranteed. I usually NEED a small lipo AND usb for power to work.