I was wondering what does a boot-loader do, there is one USB Bootloader for the PIC micro-controller and I was wondering as to what its purpose is. How is it different from creating some HID device from the PIC for example? Surely there is no OS running on the PIC than whats the whole point of this "bootloader"?


1 Answer 1


The bootloader lets you reprogram the PIC from the USB port, taking advantage of the ability of the controller to write into its own program memory. Usually, it checks to see if some criteria is met, like some bit being set high, before entering the programming mode. It will shift your program into higher memory space to accommodate the boot loading protocol at the normal start vector.

This is the way to go if you see a need for something like an end-user updating the firmware on your device without special programming hardware.

Serial port boot loaders are a bit easier to learn, as you don't have to deal with the USB stack.

  • \$\begingroup\$ On the other hand, there's a standard USB protocol for firmware updates (DFU). Too bad most bootloaders ignore it (for instance TI use HID) or get it subtly different (Atmel). \$\endgroup\$ Mar 26, 2013 at 7:09
  • \$\begingroup\$ Can you point us to a stack for this firmware update standard on the PIC? That would be a great resource. \$\endgroup\$ Mar 26, 2013 at 10:40
  • \$\begingroup\$ usb.org/developers/devclass_docs/usbdfu10.pdf -- found the USB class for DFU. \$\endgroup\$ Mar 26, 2013 at 12:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.