The Arduino IDE makes programming AVR-based microcontrollers so easy that many quite simple concepts get lost in the fog. I confess to having been hazy for the longest time concerning the role of the bootloader and what exactly was going on when you click the “Upload Sketch” button. There are actually some great resources around the net and on YouTube, but they can also mislead a little because they might focus on just one aspect, so I decided to try and pull together a comprehensive soup-to-nuts story. It covers:
- How to check what bootloader (if any) is on a chip
- What bootloaders are available?
- How to burn a bootloader with the Arduino IDE
- How to burn a bootloader with Nick Gammon’s incredibly useful Arduino utility sketches
- Breadboard Setup for Programming over USB-Serial (FTDI and CH340 veriants)
- Programming over USB-Serial with the Arduino IDE
- Programming over USB-Serial with avrdude and gcc toolchain