Free AVR ATmega Xmega Bootloader with Intel hex Support and Automatic Baudrate Adjustment Autobaud - chip45boot2

AVR ATmega Xmega Bootloader - chip45boot2

chip45boot2 is a professional bootloader for Atmel AVR ATmega Xmega microcontrollers with Intel hex file support and automatic baudrate adjustment:

The bootloader automatically adjusts at start to the hosts baudrate, so that it is not necessary to recompile the bootloader to a particular MCU clock. There exist precompiled hexfiles for different controller types and probably different UARTs, which work independently from MCU clock.

PC Software

The chip45boot2 GUI is a comfortable PC/Windows application with a graphical user interface for the bootloader, which simplifies flash and eeprom programming over a COM port. Similar to the precompiled bootloader hexfiles, the chip45boot2 GUI can be downloaded below for free.

If you want to use the PC software for a customer project, we can build a customized version for you (your company logo and name instead of chip45). Please contact us in case this is of interest for you.

Mac OS X Software

For Mac users a native Mac OS X user interface application is available at The page currently is available in german only, but the download link can be found easily and the actual application is in english. Thanks to Steffen Fuchs for programming this great application!

Linux Software

A nice command line frontend for Linux users was contributed by Torsten Martinsen and can be downloaded at


chip45boot2 provides the following functionality

  • directly reads Intel hex files
  • automatic baud rate adjustment
  • XON/XOFF protocol
  • programs Flash and/or EEPROM
  • new: support of RS485 half-duplex communication!!!
  • commands for byte wise reading and writeing of SRAM memory
  • commands for byte wise reading and writeing of EEPROM memory
  • 2kbyte boot block (8k with ATxmega devices)
  • graphical Windows user interface chip45boot2 GUI for comfortable target programming from PC!

Supported AVR Controller

Currently precompiled and ready to use hexfiles exist for the following controllers:

  • ATmega8, ATmega88, ATmega88P, ATmega8515, ATmega8535,
  • ATmega16, ATmega162, ATmega164P, ATmega168, ATmega168P,
  • ATmega32, ATmega324P, ATmega325, ATmega3250,
  • ATmega328P, ATmega3290P,
  • ATmega32U4,
  • ATmega64, ATmega640, ATmega645, ATmega644, ATmega644P
  • ATmega128, ATmega1280, ATmega1281, ATmega1284P
  • ATmega2560, ATmega2561
  • AT90CAN32, AT90CAN64, AT90CAN128
  • AT90PWM216, AT90PWM316
  • ATxmega64a1, ATxmega128A1, ATxmega128A1U
  • ATxmega64A3, 128A3, 128A3U, 192A3, 256A3 (including workaround for mask revision D)
  • ATxmega16A4, ATxmega16A3U, ATxmega32A4, ATxmega128A4U
  • ATxmega64D3, ATxmega128D3

In case your desired AVR controller is not listed, write us an Email and we will provide a new hexfile as soon as possible. This service so free of charge for you!


Further informations are available in the Infosheet.


The precompiled hexfiles may be used for either commercial or non-commercial projects and products without limitations.

In case you want to extend the bootloader by own functions or make changes to it, you can buy the sourcecode (for Atmel Studio with AVR GNU Toolchain) in the shop.


chip45boot2 Bootloader (precompiled hexfiles):

chip45boot2 GUI PC/Windows Program:

(requires chip45boot2 version V2.82 or newer!)

Version History

chip45boot2 Bootloader:

  • V2.9Q: changed calculation of baud rate register for Xmegas (more precise now) and changed all variable types from e.g. unsigned short to uint16_t (same for 8 and 32 bit types)
  • V2.9P: changed app_start(); call for start of application, since latest avr-gcc (Studio 6.1) doesn't generate a proper jmp to address zero.
  • V2.9N: moved variable definitions from inside main() to outside, made them globally (this fixes a problem with ATxmega128A3 programming just few bytes, due to some compiler issue, maybe a heap vs. stack issue, unclear)
  • V2.9M: added EIND=0; for devices with >128k flash, due to GCC not handling EIND correctly before app_start();
  • V2.9L: fix to avoid a page write in case an end-of-file recorde is being received right after the previous page write
  • V2.9K: setting RS485 direction pin to input before starting application after command 'g' from GUI
  • V2.9J: changed application start from goto *0; to app_start(); (goto *0 won't work anymore with the latest GCC version!)
  • V2.9I: changed myUSART.CTRLC register reset from 0x06 to 0x03 (the Xmega A Manual has the wrong reset default!)
  • V2.9H: added eeprom_busy_wait() before eeprom_write_block(...), added URSEL to reset of USART registers before application start
  • V2.9G: corrected order of arguments in eeprom_write_block(...), added clearing of USART registers before application start, added disabling RXD and TXD pull-ups before application start
  • V2.9F: added clearing of TCC0.CNT or TCNT1 register before application start, corrected clearing of TCC0.CTRLA and CTRLB registers (there was a typo TCC1...)
  • V2.9E: added clearing of WDRF bit in MCUSR before disabling the watchdog (does not apply for Xmegas)
  • V2.9D: added support for Xmega A3 devices with errata workaround
  • V2.9C: changed Xmega usart initialization with BSCALE=-5 to BSCALE=-4 for better support for low baudrates with Xmega controllers
  • V2.9B: improved RS485 direction control
  • V2.9A: watchdog is now being disabled on all devices on bootloader (if not set fixed by fusebit)
  • V2.99: added RS485 support, restructured the batch files for building the targets in the source code distribution
  • V2.98: added PLL factor reset before application start with Xmega targets, added support for ATmega162
  • V2.97: added support for ATxmega16A4 and ATxmega32A4, added baud rate check after baud rate calculation at startup
  • V2.96: added support for Xmega devices, first one is ATxmega128A1 (mask revision H required, see bottom of device)
  • V2.95: complete rewrite of the startup code, now the timeout covers the full measurement of the U's, hence it is more reliable against disturbances on RXD
  • V2.94: added cli(); at bootloader start, in case bootloader was called from an application and not due to a reset; added TXD pullup at bootloader start to avoid reading of wrong bootloader version by chip45boot2 GUI due to floating pin
  • V2.93: added short delay before jump to the application (command 'g') to avoid loss of XON transmission due to possible uart init in user application
  • V2.90: renamed many variables and functions to indicate the data type and related module/header file, fixed a bug in command line reception
  • V2.89: added internal RXD pin pullup activation to make it less sensitive against disturbances of a probably floating pin in the final application accidental high->low transitions after reset could activate the bootloader instead of the application
  • V2.83: Changed welcome message, version number is printed now. New controllers.
  • V2.82: Changed line ending from '\r' (0x0a) to '\n' (0x0d) and several new microcontrollers.
  • V2.53: First officially released version

chip45boot2 GUI PC/Windows Program:

  • V1.13: application is started now on any exit of the GUI, not only start application button
  • V1.12: bug fix for small hex file for eeprom programming
  • V1.11: changed handshake between hex records to avoid XON / XOFF timeout
  • V1.10: changed receive routine for bootloader ident string, more reliable against preceding null characters, which happen sometimes
  • V1.9: fixed a bug when pre-string was entered in hex representation
  • V1.7: added RS485 support
  • V1.6: added a pre string, which can be sent before bootloader connection and fixed an XOFF handshake issue on certain OS / UART UART driver combinations
  • V1.5: rearranged buttons slightly, smaller window, progress bar, longer and interruptable connect timeout
  • V1.4: fixed a bug in eeprom hexfile upload, added a help text window
  • V1.2: added non-standard baudrates to the list (helps with certain target clock frequencies) and a help window
  • V1.1: added more detailed output in the communication log window
  • V1.0: first official release of the chip45boot2 GUI PC/Windows application




We ship world wide with German Post and DHL.

Shipment with Deutsche Post and DHL.

Free shipping above €100 order value (only Germany).
More information.


PayPal, Wire Transfer. Companies / Institutions in Germany also Invoice. More on this.

Logo 'PayPal empfohlen'


Wir sind Mitglied im Händlerbund. Erfahren Sie hier mehr darüber.

Mitglied im Händlerbund