To understand the download process and HCI commands flow in detail, see \ModusToolbox_1.1\libraries\bt_sdk-1.1\docs\BT-SDK\WICED-HCI-Control-Protocol.pdf.

 

1. ClientControl

ClientControl is a WICED application that acts as a Bluetooth host on a PC. It connects to the Bluetooth device using HCI UART and communicates via the WICED HCI protocol. This application can be used to test the CYW20719 device by sending commands to start/stop advertisements, send connection request, test HID profile, etc. as well as download the firmware to the device SRAM. Note that because this tool downloads to the device SRAM, it doesn’t require any minidriver.

 

Figure 1. ClientControl Window

ClientCOntrol.JPG

The ClientControl application for Windows, macOS and Linux can be found at \ModusToolbox_1.1\libraries\bt_sdk-1.1\components\BT-SDK\common\client_control\.

 

2. ChipLoad

ChipLoad is a command-line utility used to download the firmware to the Bluetooth device. It takes inputs such as the .hex file and .btp file to get the download data and download configuration respectively. It can be found at \ModusToolbox_1.1\tools\wiced-tools-1.0\BT\ChipLoad\bin\.

 

Note: The ChipLoad tool supports the Intel hex format.

 

3. DetectAndId

The DetectAndIdDetectAndId tool performs two tasks: Detect and ID.

At first, this tool tries and detects the serial ports on which Cypress Bluetooth devices are present. This is done by sending an HCI_RESET command on available ports at various baud rates and waiting for appropriate response. In case the serial port is already given as an input to this tool, it skips the port detect part.

The second task is to ID the connected device. This is done by sending a WICED HCI command to read the chip ID. The received ID is then compared to the expected chip ID present in the chip specific ID file in this path <install>/libraries/bt_sdk-1.1/components/BT-SDK/<device>_Bluetooth/platforms/IDFILE.txt.        

This ensures that only the right device is programmed. This can be used by other tools to download the application code.