What is a Bootloader?

If you take a bare microcontroller chip fresh from the factory and apply power to it, the internal system clock will start ticking away.  But nothing else will happen.  Without a program to run, the chip will just sit there doing nothing.

So, how do you load a program onto a brand-new microcontroller?

Most microcontroller chips have a special programming interface such as JTAG or AVRISP that allows you to burn programs into Flash memory.  Unfortunately, these programming interfaces generally require specialized tools like a USBTinyISP or a Segger J-Link.

What if you don't have one of those devices?

Most of the processor boards we carry have a pre-loaded program called a 'Bootloader'.  A Bootloader is a program that allows you to load other programs via a more convenient interface like a standard USB cable.  When you power-up or reset your microcontroller board, the bootloader checks to see if there is an upload request.  If there is, it will upload the new program and burn it into Flash memory.  If not, it will start running the last program that you loaded.

So where do bootloaders come from?

Here at the Adafruit factory, we use custom-built programming fixtures to burn a bootloader onto each board as it comes off the manufacturing line.  So when you get your processor board, you can just plug it into your PC and upload your own programs via a USB cable.

Temporarily unable to load embedded content:
This guide was first published on Jun 19, 2019. It was last updated on Jun 19, 2019.
This page (Overview) was last updated on Oct 15, 2020.