Nova with SARA-U201 unable to send SMS.

Hello! I am using a Nova Sara-U201, running Ubuntu 18.04.5 bionic, and python 3.7.5 on a Jetson Xavier NX. (The World’s Smallest AI Supercomputer)

I have been trying all day today to use the SDK to send an sms message from a python script, with no success.

Using the following command in the command line, I have successfully send an SMS message:

sudo hologram send --sms --destination +13********* “hey there!” --devicekey “********”

(ive replaced my phone number and device key with asterisks for privacy.)

So I know that the hardware at least is working to that extent. I actually receive this text message on my iphone.

However, the SDK has not worked a single time.

When i run the example script (via an ssh connection to my linux machine, using my mac to physically type in the command) using the following line:

sudo python3 example-sms-at-commands.py
and enter my device key and my destination number,

I get the following error pasted below, and also screenshotted.

Please please please please help! What is going on?


Thank you!!

Traceback (most recent call last):
File “/usr/local/lib/python3.7/dist-packages/serial/serialposix.py”, line 501, in read
'device reports readiness to read but returned no data ’
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “example-sms-at-commands.py”, line 34, in
hologram = HologramCloud(credentials, network=‘cellular’, authentication_type=‘csrpsk’)
File “/usr/local/lib/python3.7/dist-packages/Hologram/HologramCloud.py”, line 70, in init
network=network)
File “/usr/local/lib/python3.7/dist-packages/Hologram/CustomCloud.py”, line 35, in init
network=network)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Cloud.py”, line 36, in init
self.initializeNetwork(network)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Cloud.py”, line 50, in initializeNetwork
self._networkManager = NetworkManager.NetworkManager(self.event, network)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/NetworkManager.py”, line 37, in init
self.network = network
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/NetworkManager.py”, line 68, in network
self._network.autodetect_modem()
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Cellular.py”, line 51, in autodetect_modem
self.modem = dev_devices[0]
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Cellular.py”, line 224, in modem
self._modem = self._modemHandlersmodem
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Nova_U201.py”, line 26, in init
chatscript_file=chatscript_file, event=event)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Nova.py”, line 22, in init
chatscript_file=chatscript_file, event=event)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 77, in init
self._initialize_device_name(device_name)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 108, in _initialize_device_name
devices = self.detect_usable_serial_port()
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 212, in detect_usable_serial_port
include_all_ports=False)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 198, in __detect_all_serial_ports
res = self.command(‘’, timeout=1)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 752, in command
retries, seteq, read, prompt, data, hide)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 506, in __command_helper
self.result = self.process_response(cmd, timeout, hide=hide)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 432, in process_response
response = self._readline_from_serial_port(timeout, hide=hide)
File “/usr/local/lib/python3.7/dist-packages/Hologram/Network/Modem/Modem.py”, line 766, in _readline_from_serial_port
r = self.serial_port.readline()
File “/usr/local/lib/python3.7/dist-packages/serial/serialposix.py”, line 509, in read
raise SerialException(‘read failed: {}’.format(e))
serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

I have gone through the following ticket, is this comment relevant?

I have also gone through this successfully, and can send AT commands, and receive an “OK” back:

So from the error you can see above its erroring outside the SDK, in the serial library for python GitHub - pyserial/pyserial: Python serial port access library

I’m not sure why its not working with the script vs the CLI since the CLI is literally just a python script: hologram-python/scripts at develop · hologram-io/hologram-python · GitHub

The U201 has multiple serial ports and the way the SDK works is it gets available serial ports and sends AT commands to each one until it gets an OK back from one of them. This seems like we might not be catching the serial exception though I have never gotten that particular error message during my development.

Can you try increasing the verbosity on the CLI call and in the script you are running? to do it in the CLI you can just add the -vv flag so sudo hologram send --sms --destination +13********* “hey there!” --devicekey “********” -vv