The tricky bit is getting the bootloader to fit into less than 4KB - but it's not that hard if you use the uMMC. Actually, the bootloader will work with the uMMC, the uMP3 or the rMP3 (MP3 Shield).

The demonstration uses an Arduino Duemilanove and a Rogue Robotics uMMC. The uMMC is connected to the hardware serial port on the Duemilanove - uMMC “R” to Duemilanove “TX”, uMMC “T” to Duemilanove “RX”.

The only way to control whether the uMMC is read on reset is through a digital input. Digital input 4 was arbitrarily chosen - this could be changed in the bootloader code.

When the input is pulled low (i.e. connected to ground), and the Duemilanove is reset, the uMMC is checked if there is a card inserted, and that it contains a file named “sketch.hex”. If so, the file is parsed and SPM'd into the flash memory on the controller.

Once the hex file has been programmed, the bootloader waits until digital input 4 goes high again (i.e. removed from ground), then starts the newly loaded code.

Hello. And 'possible to write individual bytes in flash memory by specifying the address?.
Searching for a function similar to eeprom_write_byte. With the function boot_program_page I had difficulty writing the word (05 E0) in the address you want. I used the instructions assemly SPM, nothing to do .

I await your news. Thanks

PS: I currently have a mega Arduino and program avrstudio.

Ray Madigan, 2010/10/19 03:18

I am very interested in what you have done. I have a project that will deployed in the field and the people servicing the project will not want to haul their laptops out to upload new sketches to the project.

I need to keep the cost of the project down, is it possible that this data logging shield will work with your code.