This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP-EXP430FR2433: Can not download firmware using BSL uart

Part Number: MSP-EXP430FR2433
Other Parts Discussed in Thread: MSP430FR2433, MSP-FET

Hardware: MSP-EXP430FR2433, connect all jumpers from mainboard to FET board

Software: BSL scripter


-Connect the board to the PC using a USB cable

-Download firmware using CSS. In this firmware, I inserted the instruction to jump to BSL

    __disable_interrupt(); // disable interrupts
    ((void ( * )())0x1000)(); // jump to BSL

-Within 10s from powering the board, I started BSL scripter to download the firmware but it failed. I set the correct  MSP Application COM port in the script file

The error was shown in the picture below. I searched all the related problems in the forum but could not find the solution. Please help/

//Script example FRxx UART BSL
//Device : MSP430FR6989
//Comm Bridge: MSP-BSL Rocket
//Download blink application through
//UART BSL in FRAM device
//gives wrong password to do mass erase
RX_PASSWORD pass32_wrong.txt
//add delay after giving wrong password
//because the device does not give
//any response after wrong password applied
DELAY 2000
RX_PASSWORD pass32_default.txt
//RX_DATA_BLOCK blinkLED_FR6989.txt
RX_DATA_BLOCK test.txt
//CRC_CHECK 0x4400 0x0020
SET_PC 0xC400
21 83 B2 40 80 5A CC 01 92 C3 30 01 D2 D3 04 02 
D2 E3 02 02 B1 40 10 27 00 00 91 83 00 00 81 93 
00 00 F6 27 FA 3F 03 43 31 40 00 30 B0 13 4A C4 
0C 43 B0 13 00 C4 1C 43 B0 13 44 C4 32 D0 10 00 
FD 3F 03 43 03 43 FF 3F 03 43 1C 43 10 01 
3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 
3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 3C C4 
3C C4 3C C4 28 C4 

  • Hi Quyen,

    You are using the ez-FET debug probe that is onboard the MSP430FR2433 launchpad correct?

    As shown in Table 1 of the MSP Debuggers User's Guide (SLAU647), the ez-FET Debugger does not support BSL. You could alternatively try a solution such as MSP-FET. 

    Best Regards,
    Brandon Fisher

  • Yes, I used the ez-FET debug probe. I don't have MPS-FET now. Can I just connect directly UART TX RX pin(P1.4 P1.5) to the PC USB serial cable(FT232), load a firmware that jump to BSL(software invocation) then start the BSL scripter to download new firmware? Actually, I tried this method but it was not successful. Is there something that I missing from the BSL user guide when performing BSL software invocation?

  • Hi Quyen,

    You are on the right track if you are looking for an alternative. Once you have the device in BSL mode, you can program it using basically any UART capable device if you follow the correct protocol, but the FT232 would not be a compatible communication bridge for the BSL-Scripter Tool based on the user's guide.

    You would either need a compatible communication bridge (I'd recommend MSP-BSL Rocket or MSP-FET), or you would need to manually provide the instructions to your FT232 based bridge to properly flash your MSP430FR2433.

    Best Regards,
    Brandon Fisher

  • Seem likes there is something that I missing from the document. From my understanding, the communication bridges is only need when we need to perform harware invocation to put MSP430 MCU to BSL. So if I already put the MCU to BSL by software invocation, I can communicate with BSL using UART communication without any bridge device like MSP-BSL or MSP-FET?

  • Hi Quyen,

    Yes, once you are in BSL mode you can use any UART capable host to send the actual data, but BSL-Scripter itself may not be compatible with your chosen host (i.e. your FT232). The official version of BSL-Scripter does not list compatibility with generic USB-UART adapters like the FT232, so you would either have to operate at your own risk, or write a different script to transmit the correct UART commands once you are in BSL mode. 

    Either way, I would also ensure you've enabled parity mode, since the MSP430FRxxx devices typically use even parity (See 3.1.1. of SLAU550). You can do this by changing your script's line 11 to:


    If that doesn't fix the incorrect header result, I'd recommend hooking TXD and RXD to a logic analyzer or oscilloscope, and confirming that the UART header (0x80) is being correctly sent and is at the right voltage level.

    I should also point out that there is a solution from the E2E community with a custom version of BSL Scripter modified for compatibility with FT232 and other generic USB-UART adapters that is described in this e2e thread. It looks like that solution should even solves the hardware invocation issue, so you wouldn't have to worry about dealing with software invocation. That solution would not be supported by TI though, so again it would be use at your own risk.

    Let me know if any of those solutions work for you. 

    Best Regards,
    Brandon Fisher

**Attention** This is a public forum