Go Down

Topic: [REQUEST/SUGGESTION] Bootloader auto-upgrader (Read 1 time) previous topic - next topic


Hi, since the new Arduino Uno uses a new bootloader which is compatible with older boards too will be great to give the ability to upgrade to non advanced users too.
I already did succesfully the upgrade by my self however I'd like to suggest a "total software" procedure for the upgrade.
I have also a Bus Pirate which is based around a pic and uses a bootloader too. For this particular piece of hardware the upgrade to a new bootloader can be done via a transitional firmware which is normally uploaded with the bootloader and then a serial console is made available by that.
In this console the user is asked to confirm the bootloader upgrade and when responded affirmatively it proceeds to overwrite the old bootloader with the new one.
At this time new firmware (sketches for us) can be uploaded with new bootloader.

As can be noted no programmer is involved, only serial communications (which surely can be handled with a GUI).
I'm assuming that a similar procedure can be implemented on atmegas too, so maybe someone can implement such a upgrader.


you can use an arduino as a programmer, upload a sketch, hook 4 wires up and your good to go


You mean *another* Arduino with MegaISP firmware. I knew about this possibility, what I asked is completely different: a way to upgrade the arduino by itself with just an intermediate firmware which carries the new bootloader and the ability to write it "from the inside".


It is SUPPOSED to be impossible.  The fuse bits are set so that the bootload area may not be overwritten by programs (either boot programs or non-boot programs.)  The theory is that nothing the novice Arduino programmer does in their sketch should end up "breaking" their board.

There are some signs that it might be possible anyway; people seem to manage to corrupt their bootloaders relatively frequently.  This is under investigation.


The new bootloader might be compatible with older boards but there are question marks over its compatibility with old sketches.  I've had issues and resorted back to the old bootloader and I'm not the only one on here to have reported problems.


The new bootloader mis-configures one of the timers and that error is not correct by the code that is inside the arduino init core.

Go Up