Bootloader using a uMMC

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.

The source code is located here: RROSC Google Code

Discussion

Fabrizio , 2010/07/19 08:13

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.

http://www.adafruit.com/index.php?main_page=product_info&cPath=17_21&products_id=243

I have some more research to understand this will work in my situation.

Thanks

bhagman, 2010/10/19 04:23

Unfortunately, no, this code won't work with that shield.

The firmware to talk to the filesystem on the SD card has to be able to fit into the bootloader section of the controller that you're using. While it is possible to do, it is very limited.

The uMMC makes it a lot simpler to communicate with the SD card, and hence the amount of code needed is considerably less which means it can fit into the bootloader section.

Contact me at bhagman@roguerobotics.com and we can discuss your project further.

b

You could leave a comment if you were logged in.
  • Bookmark at
  • Bookmark "Bootloader using a uMMC" at del.icio.us
  • Bookmark "Bootloader using a uMMC" at Digg
  • Bookmark "Bootloader using a uMMC" at Google
  • Bookmark "Bootloader using a uMMC" at StumbleUpon
  • Bookmark "Bootloader using a uMMC" at Technorati
  • Bookmark "Bootloader using a uMMC" at Facebook
  • Bookmark "Bootloader using a uMMC" at Twitter
  • Bookmark "Bootloader using a uMMC" at Slashdot
  • Bookmark "Bootloader using a uMMC" at Yahoo! Bookmarks
  • Bookmark "Bootloader using a uMMC" at Furl
  • Bookmark "Bootloader using a uMMC" at Reddit
  • Bookmark "Bootloader using a uMMC" at Ask
  • Bookmark "Bootloader using a uMMC" at BlinkList
  • Bookmark "Bootloader using a uMMC" at blogmarks
  • Bookmark "Bootloader using a uMMC" at Ma.gnolia
  • Bookmark "Bootloader using a uMMC" at Netscape
  • Bookmark "Bootloader using a uMMC" at ppnow
  • Bookmark "Bootloader using a uMMC" at Rojo
  • Bookmark "Bootloader using a uMMC" at Shadows
  • Bookmark "Bootloader using a uMMC" at Simpy
  • Bookmark "Bootloader using a uMMC" at Socializer
  • Bookmark "Bootloader using a uMMC" at Spurl
  • Bookmark "Bootloader using a uMMC" at Tailrank
  • Bookmark "Bootloader using a uMMC" at Live Bookmarks
  • Bookmark "Bootloader using a uMMC" at Wists
  • Bookmark "Bootloader using a uMMC" at Yahoo! Myweb
  • Bookmark "Bootloader using a uMMC" at BobrDobr
  • Bookmark "Bootloader using a uMMC" at Memori
  • Bookmark "Bootloader using a uMMC" at Faves
  • Bookmark "Bootloader using a uMMC" at Favorites
  • Bookmark "Bootloader using a uMMC" at Newsvine
  • Bookmark "Bootloader using a uMMC" at myAOL
  • Bookmark "Bootloader using a uMMC" at Fark
  • Bookmark "Bootloader using a uMMC" at RawSugar
  • Bookmark "Bootloader using a uMMC" at LinkaGoGo
  • Bookmark "Bootloader using a uMMC" at Mister Wong
  • Bookmark "Bootloader using a uMMC" at Wink
  • Bookmark "Bootloader using a uMMC" at BackFlip
  • Bookmark "Bootloader using a uMMC" at Diigo
  • Bookmark "Bootloader using a uMMC" at Segnalo
  • Bookmark "Bootloader using a uMMC" at Netvouz
  • Bookmark "Bootloader using a uMMC" at DropJack
  • Bookmark "Bootloader using a uMMC" at Feed Me Links
  • Bookmark "Bootloader using a uMMC" at funP
  • Bookmark "Bootloader using a uMMC" at HEMiDEMi
code/bootloader_using_ummc.txt · Last modified: 2010/01/10 15:01 by bhagman
Valid CSS Recent changes RSS feed Valid XHTML 1.0