I recently started using a nano 33 BLE board, and initially everything worked fine until one sketch failed to upload as the USB cable got disconnected in the middle of the upload. After this the nano did not get recognized by the IDE anymore.
I found a supposed solution here on the forum, which is to doubbleclick the reset button and the orange LED is supposed to start fading in and out indicating the recovery bootloader. This works well with my nano, the LED fades correctly and the IDE recognizes the board. However I still cannot upload any sketches and I get following error with V2.1.0 of the IDE:
Sketch uses 84504 bytes (8%) of program storage space. Maximum is 983040 bytes.
Global variables use 44560 bytes (16%) of dynamic memory, leaving 217584 bytes for local variables. Maximum is 262144 bytes.
Performing 1200-bps touch reset on serial port /dev/ttyACM0
Waiting for upload port...
No upload port found, using /dev/ttyACM0 as fallback
"/home/lars/.arduino15/packages/arduino/tools/bossac/1.9.1-arduino2/bossac" -d --port=ttyACM0 -U -i -e -w "/tmp/arduino/sketches/6894DD034AAAFA8363B01A6E5B91C002/Blink.ino.bin" -R
Set binary mode
Send auto-baud
Set binary mode
No device found on ttyACM0
Failed uploading: uploading error: exit status 1
And this with the online IDE:
/usr/local/bin/arduino-cli compile --fqbn arduino:mbed_nano:nano33ble --libraries /home/builder/opt/libraries/latest --build-cache-path /tmp --output-dir /tmp/401327536/build --build-path /tmp/arduino-build-347A774E2A6F05363784644301619224 /tmp/401327536/Blink
Sketch uses 84512 bytes (8%) of program storage space. Maximum is 983040 bytes.
Global variables use 44560 bytes (16%) of dynamic memory, leaving 217584 bytes for local variables. Maximum is 262144 bytes.
Upload started
Programming with: Serial
Restarting in bootloader mode
Flashing with command:/home/lars/.arduino-create/arduino/bossac/1.9.1-arduino2/bossac -d --port=ttyACM0 -U -i -e -w /tmp/arduino-create-agent744222775/Blink.bin -R
No device found on ttyACM0
Set binary mode
Send auto-baud
Set binary mode
I know that everything apart from the nano 33 BLE works as I have a second nano 33 BLE that works flawlessly with exactly the same setup.
As the double push on the reset button works you have to get the timing corrected. The state of the blinking yellow LED works only for a few seconds. So you have to start the upload process, wait for the compiler to almost finish it's job, hit the reset button twice and try again if you didn't get the right time slot.
This is not correct for the Nano 33 BLE. Doubled tapping the reset button will switch the device to programming mode, and the yellow/orange led will slowly pulse without a time out. A new Serial port should show up different from the usb port seen when not programming, and just connected to the device for serial input/out put from the monitor.
In a normal code download, there is a 1200 bps pulse which triggers this programming mode so you don't have to double tap the reset button.
When the Nano 33 BLE is just plugged into USB, what Port is shown?
When the yellow programming mode light is slowly pulsing, what Port is shown?
When plugging in normally it does not show up in the IDE at all. After doubblecklicking the reset (yellow light is fading in and out) it shows up as ttyACM0 and is recognized as a nano 33 ble. Just before uploading the port always seems to disappear.
(I'm not at home now, so can't test anything, but will on sunday evening.)
It appears that there are two issues going on. They may be related.
First, there is the failure of the computer to recognize the base usb port of the device. Have you tried all the usual tricks of power cycles of the computer and the Nano33BLE?
I found a supposed solution here on the forum, which is to double click the reset button and the orange LED is supposed to start fading in and out indicating the recovery bootloader.
That procedure will certainly enter the programming mode and you should be able to download "blink". If you could successfully download that code, I'm not certain that the base usb port would be recovered.
Second, the manual double tap procedure to enter the programming port and the online ide both think the programming/bootloader is at /dev/ttyACM0 but can't find a device there and won't down load.
I have no idea why the device can't be found at /dev/ttyACM0?
I have seen a posting where Linux did not handle the 1200 bps touch correctly with a Nano Every which is very different from the Nano33BLE so perhaps trying Windows would be helpful.
Regarding reburning the bootloader, there are several references online like these, and I'm certain it can be done with a programmer.
Here a link to a post with an issue that looks somewhat like yours. There does appear to be some upload port switch starting the upload to ttyACM0 and then with good timing set it into bootloader mode.
I tried on Windows today, but it behaves exactly as on Linux.
Then I started to play around with the timing of the doubbleklick of the reset button. After about 30 tries it suddenly worked and the nano flashed successfully. (For me it worked with doubblepress of the reset to be able to connect to the nano, then starting the upload, and then just after it shows "UPLOAD STARTED" doubbleclicking the reset)
Now the nano 33 ble also shows up normally when plugging in and the upload also works without any problems (without going into the recovery bootloader mode).