Means for updating firmware over USB, like DFU?

General discussions about V-USB, our firmware-only implementation of a low speed USB device on Atmel's AVR microcontrollers
Post Reply
bigtex
Posts: 1
Joined: Sun Mar 16, 2008 10:42 pm

Means for updating firmware over USB, like DFU?

Post by bigtex » Sun Mar 16, 2008 10:58 pm

Hello,

I'm currently planning out my first project using AVR-USB. There's something I haven't been able to figure out yet from reading (skimming) through the documentation and these forums. I would like to use the same USB connection that the device will operate on it to also apply future firmware updates, as is done on devices with a DFU bootloader. Is that currently supported by AVR-USB or any of the related tools?

My project will be a little three-color status light for code build and test systems. It will talk to a launch daemon based on the example code in the PowerSwitch project. I'll be making about 100 to 200 of these, so I want them to be as small and cheap as possible. I want to be able to apply future firmware updates over the same USB connection that is being used to drive the device. Any input on implementing that would be really helpful.

Thanks!

christian
Objective Development
Objective Development
Posts: 1443
Joined: Thu Nov 09, 2006 11:46 am

Post by christian » Mon Mar 17, 2008 12:28 am

You want a boot loader. See http://www.obdev.at/products/avrusb/prjprog.html for examples.

Guest

Post by Guest » Mon Mar 17, 2008 2:04 am

So I take it the boot loader must be a separate device that programs my AVR, and not code resident on the device itself? It sure would be nice if I could have the AVR update itself, but perhaps that is not possible.

Thanks for the help so far. I'll look into the boot loaders listed on that page.

christian
Objective Development
Objective Development
Posts: 1443
Joined: Thu Nov 09, 2006 11:46 am

Post by christian » Mon Mar 17, 2008 10:33 am

The boot loader is a firmware resident in the AVR, together with your application. Not a separate device. The boot loader is in the upper most 2k of flash memory, the rest is available for your application.

Post Reply