beautypg.com

The a-star 32u4 bootloader, Startup logic – Pololu A-Star 32U4 User Manual

Page 24

background image

7. The A-Star 32U4 Bootloader

The A-Star 32U4 boards come with a USB bootloader that can be used in conjunction with the Arduino IDE or
AVRDUDE to load new programs onto an A-Star. This section documents some technical details of the bootloader
for advanced users who want to better understand how it works. If you just want to get started using your A-Star, it is
fine to skip this section.

The A-Star 32U4 Bootloader, which is used on all A-Star 32U4 boards, is based on the

Caterina bootloader

[https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders/caterina]

, which is the bootloader used on the

Arduino Leonardo

[http://www.pololu.com/product/2192]

,

Arduino Micro

[http://www.pololu.com/product/2188]

and several

other ATmega32U4 boards. The bootloader is open source and its

source code

[https://github.com/pololu/a-star/tree/master/

bootloaders/caterina]

is available on GitHub. The bootloader occupies the upper four kilobytes of the ATmega32U4’s

program memory, leaving 28 KB for the user program. The bootloader’s USB interface consists of a single virtual
serial port that accepts the programming commands defined in

AVR109

[http://www.atmel.com/images/doc1644.pdf]

. The

bootloader always runs first immediately after the AVR is reset.

Startup logic

The main difference between the A-Star 32U4 Bootloader and Caterina is in the startup logic. This is the part of the
bootloader that runs immediately after the AVR is reset, and it decides whether to run the user program or run the rest
of the bootloader. The startup logic of the Caterina bootloader is designed so that when the RST line goes low, the
bootloader will run. This means that if you want to restart your program using the RST line, it will take 8 seconds
before the bootloader times out waiting for an upload and the sketch starts.

The A-Star 32U4 Bootloader has different startup logic that allows you to use the RST line to reset the board with
a smaller delay. If the RST line goes low once, the user program will run after a 750 ms delay. If the RST line goes
low twice within 750 ms, then the bootloader will run. (This behavior is the same as on boards like SparkFun’s Pro
Micro.)

The start-up logic of the A-Star 32U4 Bootloader is shown in the flowchart below:

Pololu A-Star 32U4 User’s Guide

© 2001–2014 Pololu Corporation

7. The A-Star 32U4 Bootloader

Page 24 of 30