If you have a functioning bootloader on your board, you do not need to use the techniques described in this Guide to update the bootloader. Instead, refer to the Guide for your board about how to update.

Do you have a bricked Adafruit SAMD board that won't boot into CircuitPython, or show up as a boot volume? Are you building your own SAMD board and want to flash our UF2-SAMD bootloader onto it?

This guide will cover wiring a J-Link to a SAMD board, flashing the bootloader, and (optionally) installing the latest CircuitPython build.

This process does require extra hardware and some software installation time. It is unfortunate when a microcontroller's firmware is corrupted - it does not happen often. But, rather than buy a new board and have one sitting, this process will get your original board back to 100%.

About the SAMD UF2 Bootloader

You will need to program the Adafruit UF2-SAMD Bootloader onto the affected board. Adafruit SAMD21 (M0) and SAMD51 (M4) boards feature an improved bootloader that makes it easier than ever to flash different code onto the microcontroller. This bootloader makes it easy to switch between Microsoft MakeCode, CircuitPython and Arduino.

Instead of needing drivers or a separate program for flashing (say, bossacjlink or avrdude), one can simply drag a UF2 file onto a removable drive.


To flash the bootloader, you'll need a JTAG/SWD debugger. We suggest the J-Link EDU Mini. This version is smaller (the size of a USB drive) and less expensive than the full-sized J-Link EDU, BUT it is for non-commerical use only.

What does that mean?

Basically, if you're making money (or plan to make money) off your project, you'll need to order the full commercial version, or find a different debugger that suits your needs and budget better. But if you're working on personal, non-commercial projects, such as publishing some open source designs you're not selling yourself, you're good. You don't need to be a student, and you can even be a paid engineer during the week, using this on the weekend for personal non-commercial projects. As long are your intentions are non-commercial, the J-Link EDU is an excellent choice!

SEGGER J-Link Mini, compact JTAG/SWD Debugger
Doing some serious development on any ARM-based platform, and tired of 'printf' plus an LED to debug? A proper JTAG/SWD HW debugger can make debugging more of a pleasure and...

We also carry the full-sized J-Link EDU and the J-Link base (this model is for commercial use).

If you're a commercial user (not educational/home hobby) - you must use the commercial J-Link Base

SEGGER J-Link JTAG/SWD Debugger brick and JTAG cable
The SEGGER J-Link BASE is identical to the cheaper J-Link EDU model except for the terms of...

The process for using the J-LINK models is identical, only differing in the software you will install for the specific unit on the next page.

You'll also want to get a JTAG to SWD converter board and SWD cable (not needed for the JLink mini), and a SWD breadboard breakout

JTAG (2x10 2.54mm) to SWD (2x5 1.27mm) Cable Adapter Board
This adapter board is designed for adapting a 'classic' 2x10 (0.1"/2.54mm pitch) JTAG cable to a slimmer 2x5 (0.05"/1.27mm pitch) SWD Cable.  It's helpful...
10-pin 2x5 Socket-Socket 1.27mm IDC Cable
These little cables are handy when programming or debugging a tiny board that uses 10-pin 1.27mm (0.05") pitch SWD programming connectors. We see these connectors often on ARM...
Angled shot of SWD (2x5 1.27mm) Cable Breakout Board
This adapter board is designed to make it easier to use ARM dev boards that use slimmer 2x5 (0.05"/1.27mm pitch) SWD cables for programming.  It's helpful for using...

This guide was first published on Jan 25, 2019. It was last updated on Mar 08, 2024.

This page (Overview) was last updated on Mar 08, 2024.

Text editor powered by tinymce.