Bootloader that allows a file of code to be burned into program memory


I have been looking for a bootloader that allows to load new files of code into the arduino remotely and without humam interventio (IDE).

I have found a good hipotesis with a uMMC card ( The problem with this hipotesis is that the MMC card solution is not much up to date, the components are not easy to find.

I thought of the SDcard approach would be possible, but the author confirmed that if you are trying to port or using it with SDCard, the amount of memory available for the bootloader will be exceded (4k).

Does any one has any ideas or projects, where there is an external solution for remotely updating the code on your adruino.

Best regards

What do you mean by "remotely and without intervention" ? What would trigger a new bootload? How does an SDCard help if a user has to put the SD card in?

For example, you can make an arduino program another arduino in a otherwise stand-alone manner (no PC required) "optloader" does this, although currently only for bootloader-sized chunks of code via ISP. It could easily be updated to load a ~20k sketch via the serial port, or ISP. Yes, it requires at least a second AVR chip, but those aren't that expensive.

A bootloader that loads from a smallish EEPROM chip (SPI or I2C) would also be relatively easy to implement, and are widely available in reasonable sizes. (SDCards are awfully huge, compared to Arduino sketches. A 2G SDCard (which is small by today's standards) would have space for more than 60000 Arduino images.)

If you need a sketch to trigger the booting of a new sketch, that's an added complication.

You can also think about using an interpreter (like "bitlash"), which I believe can load its programs from SD cards.

How about a Fio type setup where the xbee is used as serial interface for downloading a sketch?

My solution was to include a 2nd atmega chip to program the main one, using a version of optiloader modified to read .HEX files directly off of an SD card. My devices uses an SD card already, so it was a natural choice. You could just as easily put a small chip directly on board to accomplish the same thing if you only want it to be fully automated, but it doesn't have quite as many benefits as a user accessible card.

Hi guys,

Forget what i said in my first post.

I committed a mistake while reading some explanations.

In fact the solution identified in rogue robotics is completely possible and equal to what extent suggested.


What would be nice is a target microcontroller that uses RAM for program storage so it can be "reloaded" very often.