I'm thinking a project where I would like to be able to update the sketch in the Arduino board through the internet (wifi or ethernet). It should work in a similar fashion as for example the Apple TV, when it discovers a new update for the board it would download and update itself.
Is this possible to do?
I have done some google searching and found TFTP based bootloaders, but that is not exactly what I'm after. Please help if you have some ideas or some pointers to some similar implementations/projects.
Probably not.
It is only possible to write to the arduino's flash memory from the boot loader section of memory. So anything you run will have to be from that section. At the moment this is almost full with the normal boot loader.
However if you run your arduino under bitlash http://bitlash.net/wiki/start
Then you can keep code in an SD card and update that.
yes you can.. (:
there is a bootloader which load either from serial or SD card..
you can download the sketch from internet,save it on the SD,change some EEPROM cells and reset the arduino..
you can find it here http://seili.net/weblog/2010/07/14/avr2boots-dual-bootloader-released/..it may have some bugs..
Thanks for the replies.
I have some clue now where to begin with the experiment. I guess I need to figure out how to reset the arduino programatically after the sketch was successfully downloaded. Also I think the SD card could be replaced by some bigger EEPROM storage which could be read from the bootloader after the reset.
I just bought the Uno R3 and MEGA ADK R3 from radio shack a couple of days ago. Would they both have Optiboot and if not will it be easy to put it on those devices?
I also bough the SD card shield so would want to take advantage of this new script they put out to save larger sketches onto an SD card!!
The sketch on this page shows an MD5 sum of the bootloader on a chip:
The sketch on this page will install the Optiboot loader:
However you should be able to install the current bootloader through the IDE. See Tools menu -> Burn Bootloader. However you need a programming device. Your Uno can be used as a programmer (and the Mega too probably). See: