Sunday, 27 December 2020

Strange serial port issue with Arduino nano 33 sense ble

Serial port problems with Arduino nano 33 sense

Can't upload sketch / Can't connect via Putty or serial monitor

I gave myself a nano Christmas present: A brand new Arduino Nano 33 Sense BLE. Mainly because I wanted to try out machine learning with TinyML, but the book from O'Reilly is still in the mail.

Tiny, but with lots of sensors

So I started exploring Bluetooth LE, trying to master that skill first. It was a slightly bumpy ride because from time to time the Arduino IDE switched the serial port to COM5, while the Arduino clearly was on COM7 (these will very likely be different on your PC)

The nano 33 on COM7

I reset the arduino a couple of times, but I couldn't get it to communicate via COM7, although the port was clearly present in Windows.

Double click the reset button

More or less by chance I double-clicked the reset button. And - whatdoyouknow - I had the Nano on COM5. - How strange!

The nano 33 on COM5
Now I could upload sketches again. - Ok. But COM port assignments in Windows don't change without a good reason. Let's dig deeper.

USB device tree viewer

Uwe Sieber has published a great, free tool "USB tree viewer", that shows all the details of all attached USB devices. I can then copy both (the COM7 and COM5) configurations to Notepad++ and run the Compare-Plugin.

As expected, the double click on the reset button lets the nano 33 appear as a very different device:

While the Vendor ID is alwaysd 0x2341 (Arduino SA), the product ID changes from 0x805A to 0x005A. The device ID, revision number and sleep modes also change.

The device descriptor string 2 changes from "Nano 33 BLE" to "Arduino Nano 33 BLE" string descriptor 3 is the same, but padded with leading "0"s.

Looks like two different devices

No wonder Windows sees that as a new device. I have no idea what the point in all that is.

Please leave a comment if you have more info.


EDIT 20210107:
The behavior is actually documented in the documentation:

If the board does not enter the upload mode, please do a double press on the reset button before the upload process is initiated; the orange LED should slowly fade in and out to show that the board is waiting for the upload.

I still find the "nano 33 ble sense" rather unpleasant to work with because of that.

No comments:

Post a comment