This is an AVR ATmega development report on a serial bootloader for ATmega1284P, ATmega328P and ATmega2560 based systems. The advantages of this bootloader are:

  • No (more) need for extra programming hardware
  • Using a standard communication link, often used anyway in normal operation
  • Using a standard programming protocol (AVR109)
  • Utilising the standard professional tool chain
  • Good integration / co-operation with system / application software
  • Available without fee, open source
  • Kind of ArduinoMega’s “jail break” – Free Arduino!

Development report on an AVR109 bootloader — Table of content

  1. Motivation
    1.1 Solution and targets
    1.2 Advantages
  2. Targets
    2.1 Modules
    2.2 Controllers
  3. Bootloader operation
    3.1 Entering and leaving
    3.2 Features and limitations
  4. Bootloader integration
    4.1 Initialisation and services
    4.2 Using bootloader functions and variables in the application
  5. Resume
  6. Abbreviations
  7. References

The report also gives some background on ATmega architecture, bootloader, avr-gcc, bootloader linking and on some common errors and problems. One of those problems, well known with Arduinos and serial bootloaders, is the dreaded:

avrdude: error: programmer did not respond to command: set addr

Read the report AVRserBootl.pdf (on… / pub/).