NANO 33 IoT stopped work

Hello everyone,
I have a NANO 33 IoT since 2018 that now suddenly stopped work. When is connected on energy (computer or external) the Led green is on, but can't make an upload because don't be recognized. Someone can help me, please!

The tricky thing about the boards with native USB functionality like your board is that the USB code that creates the CDC serial port is running on the same microcontroller as your sketch. This means your sketch code can break the USB code, or stop it from running.

Fortunately, there is an easy way to recover from this situation:

  • Press and release the reset button on your board quickly twice. You should now see the LED on the board pulsing, which means the bootloader is running. The double press causes the bootloader to run indefinitely (until the board is reset, powered off, or an upload is done), which means you don’t need to get the timing of the reset just right.
  • Select the port of your board from the Tools > Port menu. The port number may be different when the bootloader is running so don’t assume you already have the correct port selected.
  • Start an upload in the Arduino IDE.

The upload should now finish successfully. After this, you should be able to go back to doing normal uploads without needing to press the reset button. If you still need to do the reset trick to do uploads after this, the problem may be caused by your code. You can verify this by uploading a simple sketch like File > Examples > 01.Basics > BareMinimum.


Unfortunately do not worked "press and release" the reset button quickly. The issues continue the same.
When I provide energy the green Led on, but when I try make upload found the message that "cold not find a card on he selected port."
Do you have another suggestion?



Hi everyone,
I got have Arduino Nano 33 IoT that, when energized, put on green led, but can't be recognized any port. I tried using some examples pressing reset during upload, but don't work.
Would someone be a suggestion to fix these issues?

When you do the double reset, does the "L" LED start pulsing?

When you do the double reset, does the "L" LED start pulsing?

Not, happens nothing,

Hi Wilroberto.

I use the double tap reset frequently since I have my new 33 IOT. And first time it wasn't recognize by PC (win 10), I felt world crumble around me.

Quick search on web and I get familiar with double-tap reset and reloading. Note I may have to repeat it several times, sometimes need to upload the blink example to ensure proper core loading, and once, re-install Arduino IDE.
But it works.

My old clone-NANO has the same behavior you described: power led is ON but nothing else happened and I can't put new code on it. But I do know what happened as while setting up breabord a battery wire slightly touched the USB port. Sparkle light that came up from the USB port allows few hope for the future...

wish your 33 well.

Note: alternative methods are described at the end of the post.

Using an Arduino board as the programmer

You'll need

  • An extra Arduino board that runs at 3.3 V to use as the programmer.
    • Note: certain Arduino boards can't be used with the sketch that converts it to a programmer.
      • Working: SAMD architecture boards (e.g., MKR boards, Nano 33 IoT, Zero).
      • Untested: AVR architecture boards (e.g., Uno), but the sketch does compile for them.
      • Not working: Nano 33 BLE
    • It is possible to use an Arduino board that runs at 5 V as the programmer, but you'll need to use level shifting circuitry on the programming lines to avoid exposing the target board to 5 V logic levels, which would damage it.
  • An SD slot. This could be built into your Arduino board (e.g., MKR Zero), a shield (e.g., MKR SD Proto Shield), or one of the common SD modules.
  • An SD card that fits your SD slot.
  • A way to connect the SD card to your computer.
  • A way to make the connections to the SWD pins on your target Arduino board. For the Nano 33 IoT and the MKR Boards other than MKR1000, I like to use a 0.1" pitch 2x3 POGO adapter. You could also solder wires to the test points if you prefer. On the MKR boards other than the MKR1000, the SWD header is on the bottom of the board and is the footprint for a 0.1" pitch 2x3 SMD header (e.g., On the MKR1000, it is a 0.05" pitch 2x5 male header on the top of the board, which you will need an adapter and cable for.


  1. Connect an SD card to your computer.

  2. Open this link in your browser:

  3. Click the folder that matches the name of your target board.

  4. Click the file that ends in .bin

  5. Click the Download button.

  6. Rename the downloaded file to fw.bin

  7. Move fw.bin to the SD card.

  8. Eject the SD card from your computer.

  9. Plug the USB cable of the Arduino board you will be using as a programmer into your computer.

  10. Select Sketch > Include Library > Manage Libraries... from the Arduino IDE's menus.

  11. Wait for the download to finish.

  12. In the "Filter your search..." field, type "Adafruit DAP library".

  13. Press Enter.

  14. Click on "Adafruit DAP library by Adafruit".

  15. Click the Install button.

  16. Wait for the installation to finish.

  17. Click the Close button.

  18. Select File > Examples > Adafruit DAP library > flash_from_SD from the Arduino IDE's menus.

  19. Change this line:

    #define SD_CS 4

    according to the Arduino pin connected to the SD CS pin. If your board has a built-in SD slot (e.g., MKR Zero), then you can change this line:

    if (!SD.begin(SD_CS)) {


    if (!SD.begin()) {
  20. Select the correct board from the Tools > Board from the Arduino IDE's menus.

  21. Select the correct port from the Tools > Port from the Arduino IDE's menus.

  22. Select Sketch > Upload from the Arduino IDE's menus.

  23. Wait for the upload to finish successfully.

  24. Unplug the programmer Arduino board from your computer.

  25. Plug the SD card into the SD slot connected to your Arduino board.

  26. Connect the programmer Arduino board to the target Arduino board as follows:

    Programmer Target
    VCC +3V3
    10 SWDIO
    9 SWCLK
    11 RESETN

    SWD pads on MKR boards other than MKR 1000):
    MKR1000 SWD header pinout:
    MKR1000 SWD
    Nano 33 IoT SWD pads:
    Nano 33 IoT SWD

  27. Plug the USB cable of the programmer Arduino board into your computer.

  28. Select Tools > Serial Monitor from the Arduino IDE's menus. You should now see the Serial Monitor output showing the target board detected, and the bootloader file flashed to it successfully.

  29. Unplug the programmer Arduino board from your computer.

  30. Disconnect the programmer Arduino board from the target Arduino board.


These are some alternatives to the "Adafruit DAP" method I described above.

Using a CMSIS-DAP debug probe as the programmer

If you have a CMSIS-DAP compliant debug probe, you can just do this instead:

  1. Connect the debug probe to your Arduino board.
  2. Select Tools > Programmer > Atmel EDBG from the Arduino IDE's menus.
  3. Select Tools > Burn Bootloader from the Arduino IDE's menus. - The "Burn Bootloader" process should now finish successfully.

I use this little open source debugger.

Using a J-Link as the programmer

Segger J-Link debug probes (e.g., J-Link EDU Mini) can be used with the Adalink software:

This is a fairly complex procedure, so I recommend against this option unless you already own a J-Link and don't have the supplies on hand for one of the other options.

There is also the possibility that the bootloader on the board was corrupted (the most common cause is trying to upload to the Nano 33 IoT with the Nano 33 BLE board selected in the Arduino IDE).

Oh boy. now considerating purchase a dedicated computer to each of my board!

Haha, that's one way to avoid that method of bricking your board for sure!

I learned of this thing by bricking my ~$100 MKR Vidor 4000 board. It would have been an expensive lesson if I hadn't managed to revive it!

Good to hear.

I unsuccessfully tried to override USB port with "headers pin" on my poor NANO after reading "boot loader last chance" topic, but Alas! the 3,5A/h LI-Ion battery pack I spared for driving DC motors had ruined any hope.
Now I put physical interrupt on my power lines...

Self-tricked me once, shame on me...

#error "Select a SAMD board"

I think that with your help, maybe I can rescue my device.
Thank you very much!

You're welcome. I'm glad if I was able to be of assistance. I'm sending you best wishes for a resurrection of your Arduino board!

Hello Everybody,

It seems like a lot of people have com issues with the 33 Iot. I purchased a genuine Nano 33 Iot to make a neat mood light project I found on line. The LED's are individually addressable using WS2812b protocol. I downloaded the SAMD core (Arduino SAMD 32-bits ARM cortex-mo+). I then selected Arduino board as Nano 33 Iot, com4 port, and did a board check. It responded with the board s/n and some other info I didn't understand. I then went to "FastLED" and downloaded the sketch's. I put the folder in "Libraries" and selected "Color Pallet" to upload to the Arduino. Every thing compiled and uploaded with out errors. I then powered the LED strip and Arduino with 5v and all my 152 LED's lit up with really cool color patterns. How cool!

I then tried to upload another sketch that came from FastLED . While it was working on the upload my win10 computer beeped and received an error, unrecognized com port. I unplugged the USB, plugged back in and get the same error in device manager. What happened?? I tried pushing the reset button twice on Arduino several times with no luck. I also tried three other USB cables.

I then installed Arduino IDE on my laptop and went through all the same setup. Plugged in USB and device manager in Windows 10 said "Arduino 33 Iot on Com3" Then I tried to upload Color Pallet again, Compiled fine, then errored out saying Com3 not responding. I'm Lost. I need some advice.

Thanks, Carl Chrzan

Does the same problem persist if you try connecting just the Nano 33 IoT alone to your computer, without any LEDs, etc. attached?

I tried pushing the reset button twice on Arduino several times with no luck.

I read this, but the details aren't clear to me. After you press and release the reset button twice quickly, do you see the "L" led on the Nano 33 IoT pulsing?

I’ve had the same issue. New Eng Kit R2 in December.

The board worked initially, then started developing a comms problem where it wasnt recognised. Now when connected the power light comes on but the board is not detected by the computer. Tried on multiple computers and have checked my uno still works (no problems there).

After a few weeks back and forth with tech support I’ve been told that my option is ‘buy a new one…’

Now when connected the power light comes on but the board is not detected by the computer.

After you press and release the reset button twice quickly, do you see the "L" led on the Nano 33 IoT pulsing?

Nope, nothing happens at all... Not detected, no L leds or anything else.

I've ordered another nano and won't be impressed if I get the same issue.

Nope, nothing happens at all... Not detected, no L leds or anything else.

I've ordered another nano and won't be impressed if I get the same issue.

did you upload with Nano 33 BLE selected in Tools menu?