Modern Device Logo

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.

 

Here's another attempt to encapsulate the feature sets
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