Bootloaders for Microcontrollers

Bootloader Software for upgrading embedded system software in the field

A bootloader is an application that is installed on a micro-controller to enable the application software to be upgraded in the field without requiring a return to the service depot or factory. Companies that embed a bootloader into their products enable their field service personnel or end customers to be able to install new versions of the application software.

Note the bootloader and the  user’s application program are completely independent. This means the development tool-chains can, and typically are, also completely independent.

Brush Electronics has developed a family of bootloaders for the Microchip PIC18F, PIC24 and dsPIC33 families offering two classes of bootloaders, the encrypted bootloader and the standard (non-encrypted) bootloader.  Brush Electronics bootloaders are available for a diverse range of media types for bootloading the processor including RS232, RS485, RS422, I2C, SPI, Ethernet, SD and SDHC media.

Our bootloaders are incremental bootloaders, capable of modifying as little as a single byte making them ideal for updating not just the application in its entirety, but also to be able to update tables, such as sensor tables, without overwriting the application.

Our bootloaders are typically configured by our customers to their specific target hardware implementation. We make this possible by putting the user configurable section in a platform.h file included with the bootloader project. We provide example profiles in the platform.h file that can be copied and modified by the customer for their specific implementation. Some customers, especially when implementing their first bootloader, may find the configuration challenging or they simply want an off-the-shelf configuration. For these customers, we also offer a customization service for configuring the bootloaders to customer specific hardware platforms and processor variants. To put this in perspective, based on 15 years experience in selling bootloaders and supporting our bootloader customers, about 10-15%  of customers ask us to configure their first bootloader and, over the same period of time, we have only ever had one customer come back and ask us to perform the configuration of a subsequent platform for them.

Serial Booloaders

Brush Electronics offers Standard and Encrypted Serial Bootloaders for Microchip PIC18F, and PIC24/dsPIC33 families of Microcontrollers.

  • Variants for the PIC18F are available for the Microchip MPASM assembler and for the CCS PCH compiler. 
  • Variants for the PIC24/dsPIC33 are available for the Microchip XC16 and C30 compilers and the CCS PCD compiler. 

These serial bootloaders enable the downloading of new firmware to the respective Microchip family of microcontrollers via a serial interface. The package includes the following:

  • Serial Bootloader Source code
  • PC Bootloader Application binary image
  • PC Bootloader Application source code (Delphi)

The Encrypted version of the bootloader also includes:

  • PC XTEA Encryption Application binary image
  • PC XTEA Encryption Application source code (Visual C++ Express)

Ethernet Bootloaders

Brush Electronics offers Standard and Encrypted Ethernet Bootloaders for the Microchip PIC18F97J60 family (and variants) with embedded Ethernet controller, and PIC24/dsPIC33 families of Microcontrollers using the ENC28J60 or ENCx24J600 families of external Ethernet controllers.

  • Variants for the PIC18F97J60 family are available for the Microchip MPASM assembler.
  • Variants for the PIC24/dsPIC33 are available for the Microchip XC16 and C30 compilers.

These Ethernet bootloaders enable the downloading of new firmware to the respective Microchip family of microcontrollers via the network. The package includes the following:

  • Bootloader Source code
  • PC Bootloader Application binary image
  • PC Bootloader Application source code (Delphi)

The Encrypted version of the bootloader also includes:

  • PC XTEA Encryption Application binary image
  • PC XTEA Encryption Application source code (Visual C++ Express)

SD Card Bootloaders

Brush Electronics SD/MMC card Bootloaders for Microchip Microcontrollers support microSD, miniSD and standard SD form factors and SD/SDHC media densities.  These bootloaders enable the PIC firmware to be upgraded via an SD/MMC card and are ideal for sending new images to end customers at remote sites to upgrade firmware. Upgrading the software is as simple as inserting/exchanging the SD/MMC card and power cycling the target system. We offer both standard and encrypted versions of SD/MMC bootloaders.

The bootloader package contains the bootloader source code. The Encrypted version of the bootloader also includes:

  • PC XTEA Encryption Application binary image
  • PC XTEA Encryption Application source code (Visual C++ Express)

Custom Bootloader Development and Customization

In addition to offering a standard range of bootloaders, we develop and customize bootloaders to meet our customers’ specific application requirements.

An example of this is for the customer specific development of a cascadeable bootloader, either standard or encrypted versions. This form of bootloader is used in a multi microcontroller system. The primary or master microcontroller is typically bootloaded via an Ethernet or Serial interface. The bootloader in the primary microcontroller communicates with one or more secondary microcontroller bootloaders via a shared bus such as I2C, SPI, or RS485. There is no requirement for the microcontrollers in this system to be of the same family. This class of bootloader is developed specifically to meet the unique requirements of the customer’s architecture and implementation.

Please contact us via our contact page if you require a custom bootloader.

Consulting, Customization and Design Services