Device Not Configured during Dev guide 3: Update the Firmware on the Dev Kit from the Spotter

Hi everyone,

I’m having trouble uploading firmware to a board through a spotter buoy. I’m using the MacBooks terminal. When I attempt to upload the firmware on step 3 of Update the Firmware on the Dev Kit from the Spotter, I receive the following error on the console of the Dev board.

Exception in thread rx:
Traceback (most recent call last):
File “/Users/swordfish/Library/Python/3.9/lib/python/site-packages/serial/serialposix.py”, line 575, in read

— exit —
buf = os.read(self.fd, size - len(read))
OSError: [Errno 6] Device not configured

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/threading.py”, line 973, in _bootstrap_inner
self.run()
File “/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/threading.py”, line 910, in run
self._target(*self._args, **self._kwargs)
File “/Users/swordfish/Library/Python/3.9/lib/python/site-packages/serial/tools/miniterm.py”, line 499, in reader
data = self.serial.read(self.serial.in_waiting or 1)
File “/Users/swordfish/Library/Python/3.9/lib/python/site-packages/serial/serialposix.py”, line 581, in read
raise SerialException(‘read failed: {}’.format(e))
serial.serialutil.SerialException: read failed: [Errno 6] Device not configured

Then the Dev board stops blinking. This occurs as soon as I see this on the Spotters console.

File transferred, entering update phase.
Opening v0.3.0_hello_world_RED.elf.dfu.bin

Everything seems to be functioning correctly until this point. I’ve checked my connections, verified the serial port, and ensured I have the necessary permissions. I also tried reinstalling the pyserial library.

Any help or suggestions would be greatly appreciated!

Thank you.

Thanks for the question.

Can you post the following information:

  1. Connect the dev kit to the Spotter buoy as described in Guide 3.

  2. Turn on the Spotter and wait about a minute.

  3. Connect the dev kit to the computer via USB and CLI in.

  4. enter bm topo and post the results.

  5. Next connect the Spotter to the computer via USB and CLI in. Post the command that you use to flash the firmware and the output (it might look the same as above, but it’s helpful to see it again).

Thanks!

Hello,

I have been OFO due to covid. However the steps you have outlined is how I ended up with the errors above. When I enter the bm topo command I receive the node ID of the Dev kit and the Spotter.

I will post the results when I am back in the office this Friday. My concern is there is something wrong with my version of python.

Hello,

When I run the command bm_topo I receive the connection information to the spotter buoy and ID for the dev kit.

(root)f60605e502e024f4:1 | 1:cc24083fe5a57a0e

Once the file opens on the spotter side I receive this.
“Opening v0.3.0_hello_world_RED.elf.dfu.bin
FFT begin.
FFT complete.
sample analysis complete
Node cc24083fe5a57a0e update timed out”

Instantly the connection between the buoy and the board is cut and I receive this information on the board console.

"Exception in thread rx:
Traceback (most recent call last):
File “/Users/swordfish/miniconda3/lib/python3.12/site-packages/serial/serialposix.py”, line 575, in read

— exit —
buf = os.read(self.fd, size - len(read))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 6] Device not configured

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Users/swordfish/miniconda3/lib/python3.12/threading.py”, line 1073, in _bootstrap_inner
self.run()
File “/Users/swordfish/miniconda3/lib/python3.12/threading.py”, line 1010, in run
self._target(*self._args, **self._kwargs)
File “/Users/swordfish/miniconda3/lib/python3.12/site-packages/serial/tools/miniterm.py”, line 499, in reader
data = self.serial.read(self.serial.in_waiting or 1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/swordfish/miniconda3/lib/python3.12/site-packages/serial/serialposix.py”, line 581, in read
raise SerialException(‘read failed: {}’.format(e))
serial.serialutil.SerialException: read failed: [Errno 6] Device not configured"

Thanks, can you paste the command you are sending so we can confirm we are troubleshooting the right thing?

Thanks!

Zack

Yes, I am sending this command.

“bridge dfu v0.3.0_hello_world_RED.elf.dfu.bin 0xcc24083fe5a57a0e 120000 force”

Okay got it.

Maybe I’m missing something but I think the problem is that we’re sending the dfu update the BM ID of the Spotter’s Bridge (the BM enabled module in the Spotter) and not the dev kit mote.

From the dev kit terminal, the bm topo command returns the value of itself as the (root) which in this case is f60605e502e024f4.

From the Spotter terminal we should enter the command as such:
bridge dfu v0.3.0_hello_world_RED.elf.dfu.bin 0xf60605e502e024f4 120000 force

Give that a try…(I hope I’m not missing something)

PS- if it doesn’t work the first time, try it a second time. There’s occasionally a bug where it doesn’t finish the transfer as intended. I think this has been patched or will be soon but I sometimes have to try things 2 times.

~Z

I see now I was typing the wrong ID. I will type the correct ID and hopefully this will work.

Thank you so much!

Awesome! Good luck, let me know if that fixes it.

Yes, that fixed it. Thank you so much