<aside> 💡 Unless you've soldered on a new SAMD51 microcontroller, it's likely the bootloader is already programmed for you.
</aside>
Table of Contents
.uf2
and .bin
files from the SAM32 GitHubWith the requirements above satisfied, plug the JTAG programmer into your computer and open Atmel Studio 7.
Navigate to Tools → Device Programming, as shown:
Select the appropriate Tool and Device from the drop-down menus and click apply.
❗ make sure to choose the correct microcontroller part number. Visually check the part markings on the SAMD51 to confirm if it's theSAMD51x20.
Navigate to "Memories" on the left-hand side.
Uncheck the "Erase Flash before programming" box, and then click the "..." button, as shown:
Navigate to the directory you saved the GitHub firmware files, and change the file parameters from "Programming Files" to "Binary" and shown:
Select the .bin
file downloaded previously and click the "Open" button:
Now make the following connections to the SAM32 board.
Required Connections:
[ ] Main micro USB cable (to provide power)
Note: it's good practice to use a multimeter and confirm 3.3V is present when the USB connection is made to the SAM32 board. If the voltage doesn't read 3.3V between "3V3" and "GND" you need to troubleshoot that first.
[ ] VTref (connected to 3V3)
[ ] TMS (connected to SWDIO)
[ ] TCK (connected to SWCLK)
[ ] GND (connected to GND)
With the connections made, return to Atmel Studio 7 and click the "Read" button. A device signature should populate. If an error appears, check connections and troubleshoot the specific error message.
After receiving a device signature, click the "Program" button. Programming should only take a few moments.
Successful bootloader programming will trigger the SAM32 board to reboot. After a few moments, the board should mount to the computer as a SAM32BOOT
drive.
Drag the CircuitPython firmware .uf2
file downloaded previously to the SAM32BOOT
drive:
As soon as the file is done transferring, the board will reboot again and mount as CIRCUITPY
or and is now a functioning CircuitPython board. Congratulations! 🎉
Note: now is a good time to load the default libraries to the lib
folder as described in: Adding/Updating Libraries