CC1310: Bootloader programming not working using uniflash, while it does work when using flash programmer 2

Part Number: CC1310
Other Parts Discussed in Thread: UNIFLASH

Hi,

i need to use the cc1310 bootloader programming feature.

however no matter what i tried, trying to program using bootloader over uart, it won't work with UniFlash.

when doing the exact same procedure with the Flash programmer 2 it does function as expected.

issue is that i mostly work on linux, and i need uniflash for that to program the bootloader since Flash programmer 2 does not have a linux version.

output from uniflash.

[7/6/2026, 4:19:41 PM] [INFO] Cortex_M3_0: CC1310F128(Bootloader)  
[7/6/2026, 4:19:41 PM] [INFO] Cortex_M3_0: Auto baud detection is successful!
[7/6/2026, 4:19:41 PM] [INFO] Cortex_M3_0: Ping command is successfully received by target!
[7/6/2026, 4:19:42 PM] [ERROR] Cortex_M3_0: [ERROR_MESSAGE]Erase main is failed! NACK is returned!
[7/6/2026, 4:19:42 PM] [ERROR] Cortex_M3_0: [ERROR_MESSAGE]Process is failed!

 

in case flash erase is not selected:
[7/6/2026, 4:24:07 PM] [INFO] Cortex_M3_0: CC1310F128(Bootloader)
[7/6/2026, 4:24:07 PM] [INFO] Cortex_M3_0: Auto baud detection is successful!
[7/6/2026, 4:24:07 PM] [INFO] Cortex_M3_0: Ping command is successfully received by target!
[7/6/2026, 4:24:08 PM] [ERROR] Cortex_M3_0: [ERROR_MESSAGE]Download command to address: 0x0 with programming size : 0x1000 is failed! NACK is returned!
[7/6/2026, 4:24:08 PM] [ERROR] Cortex_M3_0: [ERROR_MESSAGE]Programming is failed!
[7/6/2026, 4:24:08 PM] [ERROR] Cortex_M3_0: [ERROR_MESSAGE]Process is failed!
  • Hi William,

    Flashing through the serial bootloader with UniFlash does not currently work and it is a known issue. Please follow these steps to use the serial bootloader on Linux:

    1. Make sure the serial bootloader and the backdoor are enabled, add these defines to the project ccfg.h to enable the backdoor on DIO13 (left button on a LaunchPad). Flash the device through JTAG

    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE            0xC5       // Enable ROM boot loader
    #define SET_CCFG_BL_CONFIG_BL_LEVEL                     0x0        // Active low to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER                0x0D       // DIO number for boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE                    0xC5       // Enabled boot loader backdoor

    2. Generate a .bin: In CCS, right click on the project > properties > Build > Steps > Post-build steps, add the following line

    "${CCS_INSTALL_DIR}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"

    3. Install cc1352-flasher (cc1352-flasher · PyPI) from BeaglePlay. It is the tool we use to flash the CC1352 on a BeaglePlay, but also works for CC1310

    pip install cc1352-flasher

    4. Get the device into bootloader mode (press BTN-1 while your power cycle it)

    5. Flash the .bin , example

    cc1352_flasher -e -w -v -p /dev/ttyACM0 empty_CC1310_LAUNCHXL_tirtos_ccs.bin

    Best regards,

    Daniel