Bootloader (BSL) for MSP low-power microcontrollers




The bootloader (BSL) on MSP430™ microcontrollers (MCUs) lets users communicate with embedded memory in the MSP MCUs during the prototyping phase, final production, and in service. This is done through standard interfaces such as UART, I2C, SPI, and USB. Both the programmable memory (Flash/FRAM) and the data memory (RAM) can be modified as required.

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)

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



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.

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.

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.

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.

MSP430™ Bootloader With Sitara™ Embedded Linux Host is the Apps note that provides the software to have embedded host for UART based MSP430 bootloader. The project is based on the host being implemented using 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.




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.

Source code for MSP432E4 MCUs is available within the 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:

For FRAM-based MSP430 MCUs, MSPFRBOOT is the offered featuring an over-the-air update option:


Secure Firmware Updates


Some applications are in need of secure firmware updates. The following has been made available for these situations.

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.


Supported products & hardware

Hardware programming tool
MSP-FET MSP MCU Programmer and Debugger MSP-GANG MSP-GANG production programmer

Technical documentation

No results found. Please clear your search and try again.
View all 16
Type Title Date
User guide MSP430 FRAM Devices Bootloader (BSL) User's Guide (Rev. AB) PDF | HTML Sep. 22, 2022
User guide MSP430™ Flash Devices Bootloader (BSL) User's Guide (Rev. AF) PDF | HTML Sep. 22, 2022
Application note MSP430FRBoot – Main Memory Bootloader and Over-the-Air Updates for MSP430 FRAM (Rev. E) PDF | HTML Jul. 08, 2020
Application note Creating a Custom Flash-Based Bootloader (BSL) (Rev. G) PDF | HTML Apr. 02, 2020
User guide Bootloader (BSL) Scripter User's Guide (Rev. G) Feb. 28, 2020
User guide MSP-BSL Bootloader (BSL) Programmer for MSP430™ and SimpleLink™ MSP432™ MCUs (Rev. C) PDF | HTML Oct. 04, 2019
Application note MSPBoot – Main Memory Bootloader for MSP430 Microcontrollers (Rev. D) Feb. 28, 2018
Application note MSP430 Bootloader With SimpleLink MCUs Aug. 15, 2017
Application note MSP430 Bootloader With Sitara Embedded Linux Host Aug. 15, 2017
Technical article Learn how to apply wireless firmware upgrades for MSP430 microcontrollers May 05, 2016
Technical article How to securely update firmware in the field Dec. 09, 2015
Application note Secure In-Field Firmware Updates for MSP MCUs Nov. 17, 2015
User guide Crypto-Bootloader (CryptoBSL) for MSP430FR59xx and MSP430FR69xx MCUs Nov. 17, 2015
White paper Crypto-Bootloader - Secure In-Field Firmware Updates for Ultra-Low Power MCUs Aug. 19, 2015
Technical article Exploring the MSP430 tool chain: Part 3 – Programming with the MSP430 Bootstrap Loader (BSL) Feb. 19, 2015
Technical article MSP430 BSL Goes Open Source Jul. 24, 2012

Related design resources

Software development

MSPWARE MSP430Ware for MSP Microcontrollers SIMPLELINK-MSP432-SDK SimpleLink MSP432 Software Development Kit (SDK)
MSP430USBDEVPACK MSP430 USB Developers Package
CCSTUDIO Code Composer Studio™ integrated development environment (IDE)

Support & training

TI E2E™ forums with technical support from TI engineers

View all forum topics

Content is provided "as is" by TI and community contributors and does not constitute TI specifications. See terms of use.

If you have questions about quality, packaging or ordering TI products, see TI support.