To understand the download process and HCI commands flow in detail, see WICED User Guides section in Cypress WICED CYW20719 API Documentation. 

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


The ClientControl application for Windows, macOS and Linux can be found at wiced_btsdk\tools\btsdk-host-apps-bt-ble\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 wiced_btsdk\dev-kit\btsdk-tools\Windows\ChipLoad


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 wiced_btsdk\dev-kit\btsdk-tools\Windows\DetectAndId/IDFILE.txt.        

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