Bootloader Page
This page is to explain the current situation with Arduino bootloaders
The latest Arduino IDE (0010) currently has two bootloader choices in
the "Tools" menu. The Diecimila bootloader and the NG/Mini Bootlaoder.
The behavior of the bootloaders is outlined below.
Diecimila Bootloader
- Software reset works with boards that have a capacitor between the
RTS or DTR line and the reset line. These boards include the BBB Rev.
C (with cap added), BBB Rev. D and the official Arduino Deicimila.
- Behavior: Appropriate boards automatically reset upon upload of a
sketch in Ardunino 0009 IDE
- Sketch starts immediately after download
- This bootloader cannot be used to upload sketches on older hardware
by pressing the reset switch.
- On board power-up, the board starts sketch almost instantly.
NG/Mini Bootloader
- No software reset
- Behavior: Board resets by pressing reset
button before upload in all versions of the Ardunino IDE. Reset
button and IDE upload click have to be pressed within about 4 seconds
of each other.
- After the upload process, the board takes about 10 seconds to start.
- On power-up the board takes 10 seconds to start the sketch.
- The NG bootloader is incompatible with hardware that has the reset
cap on the DTR line (when using the newer Arduino 0009 IDE).
Lady Ada's Universal Bootloader
Limor Fried of Adafruit Industries,
a talented MIT-trained engineer, has hacked the NG bootloader to give
it the best features of both bootloaders. The most important feature,
for people doing their own hardware development, is the "universal"
quality of the new bootloader. It can be used with any hardware and
doesn't depend on a particular hardware setup. It also eliminates
many of the irritating waits inherent in the NG bootloader.
Brian Riley of Wulfden.org further hacked Limor's bootloader to add
a pin 13 blink on sketch upload and a unique blink scheme on reset
so that it's easy to determine the bootloader version you are dealing
with.
- Not hardware dependent, can be software or manually reset for uploads.
- Behavior: Boards without "RTS/DTR" capacitors (unmodified
BBB rev C's and official Arduino NG's) reset by pressing reset button
before upload in all versions of the Ardunino IDE. Reset button
and upload have to be pressed within about 4 seconds of each other.
- After the upload process, the sketch starts immediately.
- On power-up the sketch starts immediately.
- Pin 13 flashes on upload for upload feedback.
In short, this bootloader solves the vast majority of the shortcomings
of the other two bootloaders in one piece of software. Hopefully the
Arduino people will include this bootloader (or its features) in the next version of
the IDE, as a menu item.
Modern Device is shipping this bootloader on RBBB kits and loose chips,
unless customers specifically ask for the Diecimila bootloader. There
is no reason to ever ask for the NG bootloader since Lady Ada's version
has all of the NG functionality while eliminating numerous 10 second
wait states.
You can download source and hex of the currently shipping version
of the "Adaboot" bootloader
here.
|
| bootloader |
NG |
Diecimila |
ADABOOT |
| power
up |
enter bootloader,10
second timeout to sketch |
direct to sketch |
direct to sketch |
| manual
or auto reset |
enter bootloader,
10 second timeout to sketch |
enter bootloader,
almost direct to sketch |
enter bootloader,
10 second timeout to sketch |
| on completion
of sketch upload |
enter bootloader,
10 second timeout to sketch |
direct to sketch |
direct to sketch
may not work on Windows platform
|
| abort
bootloader |
send "ZZZZZ" |
send "ZZZZZ" |
send any character
other than '0' |
| upload
progress |
hardware on TX/RX
lines |
hardware on TX/RX
lines |
put LED on Digital
13 |
| Digital
13 signature |
3 very fast blinks
at start of bootloader mode |
single blink every
two seconds |
pause, then 4 blinks,
pause, then blinks to indicate ADABOOT version, at start of bootloader
mode |
|