Bootloader (BSL) for MSP low-power microcontrollers
Below are the steps needed in order to both understand and use the MSPBSL effectively across the MSP portfolio. For the most up to date information on what features the BSL on your device supports or which interface methods are needed to communicate with the BSL, please see “TABLE 1. Overview of BSL Features” which is contained within the BSL User Guides linked to in STEP 1.
- STEP 1: Understanding the MSP Bootloader (BSL)
- STEP 2: Updating Application Firmware with the MSP BSL
- STEP 3: Customizing the MSP BSL
STEP 1: Understanding the MSP Bootloader (BSL)
Some applications require a customized bootloader to meet requirements outside of the BSL provided. Additionally, some MSP MCUs, such as the MSP430F5xxx, MSP430F6xxx and SimpleLink MSP432 MCU families, allow the user to customize the factory programmed BSL; however, most devices have a BSL in ROM that cannot be changed. For these devices an alternative BSL solution such as a main memory bootloader would need to be used to customize the boot loading process
- USER’S GUIDE: MSP430™ Flash Device Bootloader (BSL)
- USER’S GUIDE: MSP430 FRAM Device Bootloader (BSL)
- USER’S GUIDE: MSP432P4xxSimpleLink™ Microcontrollers Bootloader (BSL)
- USER’S GUIDE: MSP432E4 SimpleLink Microcontrollers Bootloader (BSL)
STEP 2: Updating Application Firmware with the MSP BSL
Once a basic understanding of the BSL is achieved, one will want to communicate and/or program a device using the BSL. This can be done in several ways outlined below.
Communication Bridge – Hardware for BSL to PC Connection
In order to connect the MSP430 MCU's BSL to a PC, some additional hardware may be needed. The following are a few options for connecting the MSP430 BSL to a PC.
The MSP430-BSL Programmer ("BSL Rocket") is a bridge between the MSP430 BSL and a USB connection to a PC. The MSP430-BSL Rocket is a collaboration between Olimex LTD and Texas Instruments. The MSP430-BSL Programmer’s PCB and firmware are open source, and it supports UART, I2C and SPI communication.
- ORDER BOARD FROM OLIMEX: MSP430-BSL PROGRAMMER ("BSL Rocket")
- GET SOFTWARE FROM TI: MSPBSL_Rocket_FW
The MSP-FET programmer and debugger also supports BSL interfaces for programming.
The MSP-GANG Production Programmer can program up to eight MCUs at the same time also supports the UART BSL interface.
A USB design on a custom board may also be used to access the USB BSL on MSP430 MCU devices that contain a USB peripheral. A Python-based GUI is also provided to help with USB BSL firmware upgrades on MSP430 devices. This software is part of the USB developer’s package linked below.
- APPLICATION NOTE: Starting a USB Design Using MSP430 MCUs
- APPLICATION NOTE: USB Field Firmware Updates on MSP430 MCUs
- GET SOFTWARE FROM TI: MSP430USBDEVPACK
BSL Scripter – PC Side Software
The BSL Scripter is a command line program used to communicate with the MSP430 MCU BSL on a PC operating Windows®, Linux® and macOS® X through a communication bridge. Supported communication bridges include the MSP-BSL programmer ("BSL Rocket"), the MSP-FET, and the USB BSL on certain MSP430 flash-based devices. See the BSL Scripter User Guide for more information on how to use this program. Within the BSL Scripter Software download, BSLDEMO2 (deprecated command line tool for BSL) is also included for older devices not supported by the BSL Scripter. BSLScipter is available standalone and integrated within UniFlash v4.6.0 or greater.
- GET SOFTWARE FROM TI: BSL-SCRIPTER
- USER’S GUIDE: BSL-Scripter User Guide
- GET SOFTWARE FROM TI: UniFlash
Embedded Programming Solutions
Some applications do not have access to a PC for programming an MSP430 MCU via BSL. A Host BSL driver can be easily written to use the MSP430 BSL protocol over UART, I2C, or USB. The following application notes demonstrate this capability. Custom solutions for a chosen embedded host should follow the BSL protocol found within the BSL User’s Guides in step 1.MSP430™ Bootloader With SimpleLink™ MCUs is the App note that provides the software to have embedded host for MSP430 bootloader. The project is based on the host being implemented using SimpleLink MSP432P4 MCU.
- GET SOFTWARE FROM TI: BSL-SIMPLELINK-HOST
- APPLICATION NOTE: MSP430™ Bootloader With SimpleLink™ MCUs
- GET SOFTWARE FROM TI: BSL-EMBEDDED-LINUX-HOST
- APPLICATION NOTE: Host BSL Driver for Sitara Embedded Linux Host
MSP430 ™ Firmware Updates Over I2C Using Linux ® is the App note that provides the software for an embedded host to I2C based MSP430 bootloader. The project is based the host being implemented using TI BeagleBone Black running stock Debian Linux distribution.
- GET SOFTWARE FROM TI: I2C_BSL_LINUX_TOOLS
- APPLICATION NOTE: MSP430 ™ Firmware Updates Over I2C Using Linux ®
STEP 3: Customizing the MSP BSL
Some applications require a customized bootloader to meet requirements outside of the BSL provided. Additionally, some MSP MCUs, such as the MSP430F5xxx, MSP430F6xxx and SimpleLink MSP432 MCU families, allow the user to customize the factory programmed BSL; however, most devices have a BSL in ROM that cannot be changed.
Custom BSL Documentation
On the flash based MSP430F5xxx and MSP430F6xxx MCU families, developers can change the BSL source code to add different peripheral interfaces, custom entry sequences, or other custom features to the standard BSL. Use the BSL source code linked below for reference when customizing the BSL. All available BSL firmware images and BSL source code are contained within the BSL430-SOURCE software package. BSL source code is only available for the most recent BSL version.
- APPLICATION NOTE: Creating a Custom Flash-Based Bootloader (BSL)
- GET SOFTWARE FROM TI: MSPBSL_CustomBSL430
A similar download for SimpleLink MSP432P4xx MCUs is available.
- GET SOFTWARE FROM TI: MSPBSL_CustomBSL432
Source code for MSP432E4 MCUs is available within the SimpleLink MSP432E4 SDK
- GET SOFTWARE FRM TI: SIMPLELINK-MSP432E4-SDK
Main Memory BSLs
MSP430 MCUs have two different main memory (application-side) BSLs that can be customized to an application's needs. These solutions do not replace the BSL that is included with the device, but sit on top of the application software in order to customize a BSL.
For flash-based MSP430 MCUs, MSPBOOT is offered:
- APPLICATION NOTE: MSPBoot – Main Memory Bootloader for MSP430 Microcontrollers
- GET SOFTWARE FROM TI: MSPBOOT
For FRAM-based MSP430 MCUs, MSPFRBOOT is the offered featuring an over-the-air update option:
- APPLICATION NOTE: MSP430FRBoot – Main Memory Bootloader and Over-the-Air Updates for MSP430 FRAM
- GET SOFTWARE FROM TI: MSPFRBOOT
Some applications are in need of secure firmware updates. The following has been made available for these situations.
- APPLICATION NOTE: Secure In-Field Firmware Updates for MSP MCUs
The Crypto-Bootloader (CryptoBSL) is a custom bootloader that was developed and implemented on MSP430FR59xx and MSP430FR69xx FRAM microcontrollers. This bootloader uses cryptographic functions to enable increased security for in-field firmware updates.
- APPLICATION NOTE: Crypto-Bootloader - Secure In-Field Firmware Updates for Ultra-Low Power MCUs
- USER’S GUIDE: Crypto-Bootloader (CryptoBSL) for MSP430FR59xx and MSP430FR69xx MCUs User Guide
- GET SOFTWARE FROM TI: Crypto_Bootloader