AVR bootloader using USB flash drive - mass storage mode

I have an application where I need to allow users to download a firmware image (.hex) to a usb flash drive and plug it into our board then have our AVR use that hex file for a firmware update. Has anyone ever done this? I’ve looked around but there aren’t many examples other than an olimex programmer that I found.

I haven’t seen a particular case of that. SparkFun has something similar with the LPC2148 ARM which acts as a USB Mass Storage device with an SD card, uses a FAT16 driver, and reflashes its self that way.

A USB drive is much more challenging than say a SD/microSD card, as you need to implement a USB master.

rummage around avrfreaks.net, projects section, or ask the gang there.

Search for In Application Flash Programming.