Downloading into the CYBLE-013025-00 module – KBA222505

Version: **



How can I program my application code to the CYBLE-013025-00 module?



The HCI-UART interface is used to download your application code to our modules in development or for production. To download your application, you need to follow the hardware setup and software procedure shown below. A recovery procedure may be required to download the application successfully if errors are encountered during programming.

Hardware Setup The HCI-UART interface available on the CYBLE-013025-00 does not support hardware flow control, so only the HCI-UART Tx/Rx signals need to be connected to allow for programming of the module. Ensure that the HCI-UART Tx/Rx signal connections are accessible during the programming step (access can be on the host board, or as part of a customer developed manufacturing programmer). The programming steps will differ depending on your use-case (evaluation kit versus module only).

I. To program a stand-alone CYBLE-013025-00 module on a host board

     a. A USB-to-UART bridge, such as the FT232 (shown to the right), can be used for USB-to-UART conversion.
     b. Connect the module’s VCC/GND/UP_Tx/UP_Rx connections to the VCC/GND/Rx/Tx connections on the USB-toUART bridge
     c. Ensure that the VCC voltage of the USB-to-UART bridge is 3.3V.
     d. Assert UP_RX to HIGH and then power on or reset the module. This process will put the module into HCI mode and ready for programming.1.png

Tips: The Tx signal on most USB-to-UART bridges is HIGH after power-on. Power cycling (off then on) the USB-to-UART bridge can put the module into HCI mode if the default Tx signal level is HIGH on initial power up.

II. Program the CYBLE-013025-00 module on the CYBLE-013025-EVAL evaluation kit

The CYBLE-013025-EVAL kit includes a USB-to-UART chip integrated on the kit. Customers can connect the evaluation board directly to a PC via USB. In order to enable HCI-UART communication on the evaluation board, following the steps and configurations below:

a. Ensure that the SW1 configuration is properly set on the evaluation board.

     I. SW1 positions 1, 2, 3, and 4 should be set to OFF.
     II. SW1 positions 5 and 6 should be set to ON.

b. Press the SW2 button (RESET) after the SW1 positions are correctly set. This process will put the module into HCI mode and ready for programming.


Programming Procedure

1. Programming using WICED Smart
     a) Download WICED Smart SDK 2.2.3 from and install.

     b) Create a Make Target as follows:


                    I. Replace the “hello_client” with your project’s name.

                    II. Replace “124” of the port number of the USB-to-UART the bridge, which can be found in Device Manager on PC.

                    III. “PLATFORM_NV=SFLASH” is required for downloading the application code to SFLASH.

     c) Place the module into HCI-Mode as described in the Hardware Setup section above.

     d) Double click the Make Target. e) After a brief compile process, the Console output in the WICED Smart SDK should indicate success, as shown in the below screenshot.


2. Programming using command line

     a) Download WICED Smart SDK v2.2.3 from and install.

     b) Open the Command Prompt (cmd.exe) on your PC and navigate to the WICED Smart SDK folder, (e.g.”…\WICED\WICED-Smart-SDK-2.2.3\WICED-Smart-SDK”).

     c) Run the following commands to program the target .hex file to the CYBLE-013025-00 module:


  “Tools\ChipLoad\Win32\ChipLoad.exe -BLUETOOLMODE -PORT COM52 -BAUDRATE 115200 -MINIDRIVER Platforms/BCM920737TAG_Q32/uart_DISABLE_EEPROM_WP_PIN1.hex -BTP Platforms/BCM920737TAG_Q32/20737_SFLASH.btp -CONFIG build/ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release/ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release.hex -CHECKCRC -NOVERIFY -DLMINIDRIVERCHUNKSIZE 251”


Notes on the colored items above:

        • /ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release/ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release.hex

    This should be replaced by the name of the target .hex file desired to be programmed to the module, along with its folder name.

        • COM52

    This is the COM port number assigned by the PC.

        • uart_DISABLE_EEPROM_WP_PIN1.hex

This is the minidriver .hex file. The minidriver is a set of code and data that replaces the download code in the ROM of the CYW20737 chipset used on the CYBLE-013025-00 module.

        • 20737_SFLASH.btp

This is the Serial Flash configuration file for the CYW20737 chipset.


     Refer to Figure 1 and Figure 2 below for screenshots of the command line implementation used for programming.


                                                            Figure 1: Screen Shot When Downloading Starts


                                                       Figure 2: Screen Shot When Programming Completes


3. Performing a Recovery Procedure

     In some cases, the firmware download procedure does not succeed even though all connections and switch configurations are correct. This may occur as a result of      SFLASH corruption due to incorrect application design, attempting to load too-large of a firmware image (application size should not exceed ~26 KB), or power loss during      a firmware download process. If any of these issues occur, you will need to recover the module. To do this, follow the steps below:


  1. a) To recover the CYBLE-013025-00 module with a USB-to-UART bridge:
      • Power cycling (off then on) the USB-to-UART bridge should put the module back into HCI mode if the previous download fails.
  1. b) To recover the CYBLE-013025-EVAL board using WICED Smart:
      • Copy and paste the original make target to a new entry.
      • Change the name of the new target in the following ways:

                              a. Replace 'download' with ’recover'

                            b. Add UART=COMxx as an additional argument. The COMxx value should be the host serial port number assigned by the PC which is connected to the HCI-UART programming interface on the evaluation board.

                              c. The final make target name should be similar to the name shown below:

                                                                 find_me-CYBLE_013025_EVAL recover UART=COM17

      • On the CYBLE-013025-00_EVAL board, while holding the Recover button (SW4), press and release the Reset button. Release the Recover button shortly after the Reset button has been released. This process will cause the module to boot into recovery mode.
      • Double-click on the new make target to perform a recovery download.
      • The application should now boot properly on the module.