XEBOOT – tiny Amega8 xmodem bootloader


Few years ago I was working on some commercial device based on Atmega8. One of features was to deliver device with some software, but it should’ve been ready for further firmware updates by customer as well.

Burning some ready-made bootloader with STK or other proprietary protocol was not an option. Customer had only serial port adapter and that’s all. Operating system also could vary.

There was also another problem – device was quite simple, most of it’s power was in software. So, new firmware released to customer shouldn’t work with 3rd party hardware.
That way encryption was another ‘must be’ option for bootloader.

And last requirement – size. Program had some quite large tables burned in, so spending 2kB or more on bootloader was a waste of precious flash space.

So, I wrote bootloader myself 🙂

Last days I decided to release this code to public as after all these years there is still no small xmodem bootloader available and now I could do it.


  • small size (less than 512B)
  • supported protocol: xmodem
  • pure serial operation (no other hardware or wiring than rx/tx is required)
  • support some kind of encryption (not strong, but it’s enough to prevent unexperienced user to just burn it into clone)
  • it’s free (GPL v3) 🙂


You can download code from Github: https://github.com/majekw/xeboot
Technical details are also available in README on repository.


Yes, project evolved 🙂
It was forked to support Atmega88/168/328. I had to sacrifice encryption to fit it in 0.5KB, so it’s no longer xEboot.
Fork is currently part of my other project LCD88 (diy r/c transmitter) and sources are also available on Github repository: https://github.com/majekw/lcd88

This entry was posted in Electronics and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *