• AVR Freaks

USB MSD Bootloader

Author
scene
New Member
  • Total Posts : 11
  • Reward points : 0
  • Joined: 2003/11/07 12:46:12
  • Status: offline
2008/07/11 07:49:20 (permalink)
3 (2)

USB MSD Bootloader

In some of our newer products we have included a facility to upgrade firmware via USB. However, we went one step further and got rid of the need to install any application - making upgrades OS independent and simpler for the user.

I think this is a useful project and have decided to release a cut-down version into the public domain. Hopefully it can be improved by the community!

The Bootloader has the following features:
  • Emulates a USB Mass Storage Device (MSD) i.e. a flash drive
  • Enables drag and drop firmware upgrades (using pre-formatted files) on any OS
  • Facility to save/restore application data
Download From Here

Ray Gordon.
#1

10 Replies Related Threads

    scene
    New Member
    • Total Posts : 11
    • Reward points : 0
    • Joined: 2003/11/07 12:46:12
    • Status: offline
    RE: USB MSD Bootloader 2008/07/17 04:02:26 (permalink)
    0 (2)
    Documentation for this project has now been improved!

    Ray.
    #2
    gip_mad
    Starting Member
    • Total Posts : 45
    • Reward points : 0
    • Joined: 2005/05/12 08:51:48
    • Location: Venice, Italy
    • Status: offline
    RE: USB MSD Bootloader 2008/07/20 05:30:58 (permalink)
    0
    Hi Ray, thank you very much for the code, it is VERY interesting! I'm going to try to implement some encryption for my application
    #3
    KTy
    Junior Member
    • Total Posts : 93
    • Reward points : 0
    • Joined: 2007/04/03 03:48:16
    • Location: 0
    • Status: offline
    RE: USB MSD Bootloader 2008/07/22 08:04:05 (permalink)
    -2 (2)
    This is exactly what I wanted to do ! Great attitude for sharing! this project !!
    #4
    DarioG
    Allmächtig.
    • Total Posts : 54081
    • Reward points : 0
    • Joined: 2006/02/25 08:58:22
    • Location: Oesterreich
    • Status: offline
    RE: USB MSD Bootloader 2008/08/28 02:00:39 (permalink)
    0
    ORIGINAL: scene

    The Bootloader has the following features:
    • Emulates a USB Mass Storage Device (MSD) i.e. a flash drive
    • Enables drag and drop firmware upgrades (using pre-formatted files) on any OS
    • Facility to save/restore application data


    Hey! that sounds nice, Ray!
    Thanks for this, I will try it...


    GENOVA :D :D ! GODO
    #5
    Ze
    Starting Member
    • Total Posts : 35
    • Reward points : 0
    • Joined: 2008/07/24 04:11:56
    • Location: 0
    • Status: offline
    RE: USB MSD Bootloader 2008/08/29 16:42:31 (permalink)
    0
    This sounds very neat
    #6
    JohannES
    New Member
    • Total Posts : 2
    • Reward points : 0
    • Joined: 2012/01/22 23:43:51
    • Location: 0
    • Status: offline
    Re:USB MSD Bootloader 2012/01/23 00:04:49 (permalink)
    0
    Hi Ray,
    I managed to adapt my application, so it works to load the bootloader into the PIC and it's recognized by PC if connected to USB-port.
    The next step is now difficult for me, because I'm working with the CCS-Compiler only. Perhaps you (or somebody else) can help me how I can prepare my application file (hex-file created by CCS-Compiler) for using it with HEXStream? I tried to import the hex-file created by the CCS-compiler into MPBLAB and then export it as  descirbed, but it didn't work. HEXStream shows no error, but inserting it in the LOADER-drive does not work (after refreshing the window, there is still the FW_BAD file inside).
    Thanks a lot!
     
    Johann
    #7
    scene
    New Member
    • Total Posts : 11
    • Reward points : 0
    • Joined: 2003/11/07 12:46:12
    • Status: offline
    Re:USB MSD Bootloader 2012/01/23 05:51:12 (permalink)
    0
    Hi Johann,

    Glad to see that a few people have used this tool!

    Unfortunately I have no experience of the CCS compiler. However, the bootloader is independent of the application code, so it should not matter how it is generated.

    1. You need to ensure that the code generated is located at the correct addresses required by the loader and that your vectors are right too. This is all clearly documented in the sample application's header files.

    2. You may have an issue with the hex file generated by CCS and the HEXStream formatting program. In the documentation I describe how you need a full hex file without gaps (for unused areas), and to do this you have to export from MPLAB. I think the only way you will crack this is by comparing what CCS generates with MPLAB.

    3. Why not get the limited version of the Microchip compiler and have a play until you are comfortable you understand it all prior to going back to CCS?

    Regards, Ray.
    post edited by scene - 2012/01/23 06:04:07
    #8
    JohannES
    New Member
    • Total Posts : 2
    • Reward points : 0
    • Joined: 2012/01/22 23:43:51
    • Location: 0
    • Status: offline
    Re:USB MSD Bootloader 2012/01/23 12:37:52 (permalink)
    0
    Hi Ray,

    thanks a lot, will try it.

    Regards,
    Johann
    #9
    pchidley
    Super Member
    • Total Posts : 117
    • Reward points : 0
    • Joined: 2009/11/24 13:23:55
    • Location: Calgary, Alberta, Canada
    • Status: offline
    Re:USB MSD Bootloader 2015/04/21 09:34:05 (permalink)
    0
    Hi Ray,
     
    Would love to give this project a try but the download link no longer works.
    Can you (OR ANYONE) still provide this project?
     
    Thanks,
     
    Paul C.
    #10
    scene
    New Member
    • Total Posts : 11
    • Reward points : 0
    • Joined: 2003/11/07 12:46:12
    • Status: offline
    Re:USB MSD Bootloader 2015/04/22 04:46:45 (permalink)
    +1 (2)
    Hello Paul,
     
    Glad you're interested in the project. 
    The original files are available here: bit.ly/1HtkUO5
    Even though the code is old it still works 100%.
    We continue to use this in commercial products but with some added features...
     
    Hope you find it useful.
     
    Ray.
     
    post edited by scene - 2015/04/22 04:51:00
    #11
    Jump to:
    © 2019 APG vNext Commercial Version 4.5