SAMD51 Thing +

I have a SAMD51 thing plus want want to make the USB active when its not in boot loaders mode like a similar Feather M0. How do I this?

I have the the board connected to the ICE programmer and all is well. I just don’t know where to start to activate the software USB for this MCU.

Tom

Hi Tom,

I am not sure I understand your question here. Are you just trying to use the USB port on the SAMD51 Thing Plus to send serial data or something else? If you’re trying to send serial data via USB on this board, the standard “Serial.print()” function works just fine. No need to use SerialUSB or Serial1 to print over USB.

If you’re trying to do something different, can you please elaborate on what exactly you’re trying to do and where you’re stuck?

Thanks for the reply!

Ok here’s the deal. I bought the SAM51 Thing + to do some proto work.

  1. I connected it up and did all the normal setup.

  2. Double clicked the restart and loaded blink (it works)

Question:

  1. I don’t want to double click the restart to load a sketch.

  2. I want the USB active when the thing + is not in bootloader mode

Hi again Tom,

I’ll answer your questions as best I can below:

  1. I don’t want to double click the restart to load a sketch.
I am afraid in order to get the SAMD51 Thing Plus into bootloader mode, reset must be triggered twice. There is not really an option around this without overwriting and installing a different bootloader to the board. It's not ideal but if you wanted to avoid pressing the RESET button each time, you could ground the RESET pin twice instead.
  1. I want the USB active when the thing + is not in bootloader mode
I am not really sure what you mean by this. The USB port (not bootloader port) for the SAMD51 Thing Plus is active outside of bootloader mode to send or receive data through a terminal program or something else. It just depends on the code that is on the SAMD51 at the time. If you are trying to do something specific via USB outside of bootloader mode can you please explain what you are trying to do in more detail?

Let me put this another way.

So I connect my Thing + to the PC. The USB activates. But to program the board I need to click the reset button twice… why?

Why can I not connect to the USB and program the board with IDE direct? Is this because of the UF2 booloader?

Hi again Tom,

The SAMD51 Thing Plus does not automatically enter the bootloader with Arduino. You need to double-tap reset to put the board into bootloader mode to upload new code. Unfortunately, there is not a way to work around that as it seems to be related to how the UF2 Bootloader interacts with the SAMD51 specifically.

We use the same bootloader on the [RedBoard Turbo and double-tapping reset is not necessary to activate the bootloader for that board but the Turbo uses the SAMD21, not the SAMD51. I am going to try to do some more digging to see if we can identify the specific reason why but unfortunately, I do not have a great answer for that question at the moment. My initial guess is somehow the RESET pin is not toggled automatically by Arduino like it is with other boards that have a built-in USB interface so that makes it necessary to manually enter it. If you would like to do some digging to, I would recommend starting at Microsoft’s GitHub repository for the [UF2 SAMDx1 Bootloader.](GitHub - microsoft/uf2-samdx1: USB Mass Storage bootloader (based on UF2) for SAMD21 and SAMD51)](https://www.sparkfun.com/products/14812)

Ok , Great. I’m going to look at the Redboard and also dig around to see if I can figure this our. Thanks for the help and let me know if you find out something.

Are you sure the Redboard does not need the Double tap? Im not sure… I might have one of your SAMD21 boards here… If so I will test. But the Redboard is also a UF2 type. It should require a Tap Tap…

Hi again Tom,

If you’re referring to any of the AVR-based RedBoards like the [RedBoard Programmed with Arduino or the [RedBoard Qwiic, the bootloader is automatically entered when uploading code in Arduino. The [RedBoard Turbo has the UF2 bootloader on it but does not need to be manually placed in bootloader prior to uploading. You can force it into the bootloader by double-tapping the Reset button, though. That works to recover the board from unexpected states.

If a board needs to have the bootloader manually activated, it will explicitly state that in its Hookup Guide.](https://www.sparkfun.com/products/14812)](SparkFun RedBoard Qwiic - DEV-15123 - SparkFun Electronics)](https://www.sparkfun.com/products/13975)