So..my laptop cannot recognize MKR 1000 board

Used once last year and it worked.

Tried to use today, but it seems like it cannot recognize the board.

I checked device manager and could not find Arduino board, double tapped reset button and did not work,

updated libraries to the latest version, tried to connect to different laptop, tried to use different cable, tried both USB 2.0 and 3.0, and none of those worked.

I probably have tried every other method I could find on the internet.

When I plug in I can see the light is on, but somehow it is not being recognized.

I have uploaded something simple last year and that still works somehow.

Is there any other method I could try?

Thanks in the advance

whsosgnsgns:
double tapped reset button and did not work

After you did that, did the "L" LED start pulsing?

pert:
After you did that, did the "L" LED start pulsing?

No, it does not. In fact, I just realized "L" LED does not lit up. Maybe this is related?

If the "L" LED doesn't pulse after a double reset, that indicates either something is wrong with the reset button circuit, or that somehow the bootloader has been corrupted or erased.

However, either of those problems would not cause the board to not be recognized while your program is running. Since the USB code runs on the same microcontroller as you sketch, it is fairly easy to break, but you can normally recover from this easily with the double reset trick.

So it seems strange that both issues would happen at the same time. I can't think of a single event that could cause that.

The only thing I can suggest is that you try burning the bootloader. Due to the additional symptoms, I am a bit less confident this will solve your problem, and unfortunately it may require you to purchase something to make the connection to the SWD header (unless you are fortunate enough to already have something on hand that will allow you to make the necessary connections to the 0.05" pitch header).

You'll need:

  • An extra Arduino board that runs at 3.3 V.
  • 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. On the MKR1000, it is a 0.05" pitch 2x5 male header on the top of the board, which you will need an adapter for.

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.


Instructions:

Connect an SD card to your computer.

Open this link in your browser: ArduinoCore-samd/bootloaders at master · arduino/ArduinoCore-samd · GitHub

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

Click the file that ends in .bin.

Click the "Download" button.

Rename the downloaded file to fw.bin

Move fw.bin to the SD card.

Eject the SD card from your computer.

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

(In the Arduino IDE) Sketch > Include Library > Manage Libraries

Wait for the download to finish.

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

Press "Enter".

Click on "Adafruit DAP library by Adafruit".

Click the "Install" button.

Wait for the installation to finish.

Click the "Close" button.

File > Examples > Adafruit DAP library > flash_from_SD

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)) {

to:

if (!SD.begin()) {

Select the correct board from the Tools > Board menu.

Select the correct port from the Tools > Port menu.

Sketch > Upload

Wait for the upload to finish successfully.

Unplug the programmer Arduino board from your computer.

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

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

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

MKR 1000 SWD header pinout:
MKR-1000-SWD.jpg

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

Tools > Serial Monitor. You should now see the target board detected, and the bootloader file flashed to it successfully.

Unplug the programmer Arduino board from your computer.

Disconnect the programmer Arduino board from the target Arduino board.


Note: another alternative is to use a J-Link debug probe (J-Link EDU Mini and J-Link clones are available for a low price) with the Adalink software:

The only thing I can suggest is that you try burning the bootloader. Due to the additional symptoms, I am a bit less confident this will solve your problem, and unfortunately it may require you to purchase something to make the connection to the SWD header

Oh no, that is not good. Whether it will fix or not, thank you for your help. I will give a shot either this weekend or next week since I don't have any tool to make this happen, but it might end up with buying a new one.

Thank you