Skip navigation
Home > All Places > Software Forums > WICED Studio Bluetooth > WICED Studio Bluetooth Forums > Blog > Authors SheetalJ_96

Objective: This blog provides information about Bluetooth RF power class in Cypress Bluetooth devices and related certification queries.


WICED version: WICED SDK 6.2.1 or 6.4


Supported WICED device: CYW920706WCDEVAL, CYW20706 based modules


Details: Bluetooth devices may have different RF power classes depending on the Tx power and operating range of device. Following table shows the details about the classification:


ClassMaximum Tx powerOperating range
class 120 dBm~100 meters
class 24 dBm~10 meters
class 30 dBm~1 meter


      For CYW20706 devices, by default, firmware supports class 1 with maximum Tx power +12 dBm for BR/EDR applications and +9dBm for BLE applications. There are two ways to change the Tx power, i.e. RF power class-

1. Using API to set tx power: wiced_bt_dev_set_adv_tx_power() to set the maximum Tx power for BLE advertisement and wiced_bt_dev_set_tx_power() to set maximum Tx power for connection. Please refer Configuring Transmit (Tx) Power on CYW20706 Chip - KBA228573 for more details.

2. Modifying the default CGS file. However, this method is not recommended unless customer wants to do RF test for regulatory certification.


Q. Can the certification available here RF Regulatory Certifications for CYBT-343026-01, CYBT-343029-01, CYBT-143038-01 and CYBT-343151-02 EZ-BT™ Modules - KBA220396 be used for class 2 as well?

Ans: This certification is tested under the maximum output power for class 1. Still, it can be used for class 2 as long as the configured Tx power does not extend the maximum Tx power.


Q. Is CYBT-343026-01 module NCC certified?

Ans. Yes, the module is NCC certified with NCC ID - CCAH20LP2550T0. Please find the certificate attached.

Objective: This blog provides steps to test app available in WICED SDK for CYW20706 and CYW20719 devices.


WICED version: WICED SDK 6.2.1 or 6.4


Supported WICED device: CYW920706WCDEVAL, CYW20706 based modules, CYW920719Q40EVB_01, CYW20719 based modules

(Here CYW20706 based CYBT-343026 module is used for testing.)


Implementation details:

The watch demo example available in WICED SDK allows the device to demonstrate as Bluetooth A2DP source, AVRCP controller/target and some Apple services. By default, device is configured to send a sine wave to the A2DP sink, for example Bluetooth speaker, Bluetooth earphones/headphones. There are two ways to test this app:

i. Using default sine wave in firmware - When HCI_CONTROL_AUDIO_ROUTE_SINWAVE macro is set, firmware won’t send data request to the transport. It will provide the sine wave internally itself.

ii. Transport case - In UART mode, device will send the audio request to ClientControl. ClientControl will provide the data ( sine wave by default) to the sink device. In SPI mode, ClientControl is connected using PUART with 115200 Baudrate. PCM data cannot be sent over this baudrate so we can't provide the data from ClientControl. Therefore, in this case, hci_uart_spi_bridge app is used to provide the stored sine wave data. Here hci_uart_spi_bridge app acts as SPI master and watch app acts as SPI slave. The connections for the same are given in app comments.

     By default, sine wave in the firmware is used to send to the sink device. The macro HCI_CONTROL_AUDIO_ROUTE_SINWAVE is defined in hci_control_audio.h file.


Code flow:

     Following flowchart shows the code flow of the watch application. Events in the flowchart are as follows:






Testing steps:

1. Program the CYBT-343026 eval board with watch app using following Make Target: download UART=COM39

where COM39 is HCI COM port.

2. Open ClientContol.exe from /apps/host/client_control/Windows. Select HCI COM port from the list, Select Baudrate as 115200 and click on Open Port.

3. Press reset button on eval board, you should be able to see ClientControl tabs getting enabled.Check the attached snapshot for reference.

4. Click Start under BR/EDR Discovery section. Select your A2DP sink device from the list.

5. Select AV Source tab, click on Connect to connect to your sink device.

6. After successful connection, click on Start Streaming and you should be able to hear a sine-wave (continuous beep sound) in your Bluetooth speaker/ headphones.

Please refer attached snapshot.

     Similarly if you want to test the AVRCP functionality, then connect to your phone via Bluetooth and select AVRC TG/ AVRC CT options in ClientControl.

This blog gives detailed steps on how to use chipload.exe to program Cypress Bluetooth chips CYW207xx.

Chipload (/<BTdevice_workspace>/wiced_tools/ChipLoad) is a tool provided by Cypress to program the device without using WICED SDK or ClientControl utility. To program to device using Chipload, first run the ChipLoad.exe from the folder location: C:\Users\shjl\Documents\WICED-Studio-6.2\wiced_tools\ChipLoad\Win32


A specific command format is used to download the Hex file to the device, as follows:

./ChipLoad.exe -BLUETOOLMODE [-PORT COM port] [-BAUDRATE nnnn] [-NOVERIFY] [-CHECKCRC] [-MINIDRIVER minidriver file] [-CONFIG config data file] [-BTP btp file name] [-NODLMINIDRIVER] [-LOGTO[X} optional log file] [-DLMINIDRIVERCHUNKSIZE byte size]


Detailed information about every parameter is given below:

PORT              : UART COM port id (HCI UART)

BAUDRATE     : to specify the Baudrate of the device, typically 115200

NOVERIFY      : an optional parameter that prevents the verification of the bytes regardless of what is specified in BTP file

CHECKCRC    : an optional parameter that directs the ChipLoader to do CRC checks on loaded areas

MINIDRIVER    : to specify the minidriver hex file which is used to load the program Hex file to the device

BTP                : to load the BTP file which contains configuration data

CONFIG          : to specify the program .hex file

NODLMINIDRIVER : used if device has never been programmed or device is in recovery mode

LOGTO (or LOGTOX) : an optional parameter allowing to print the logs in a text file, LOGTOX prints more detailed information



ChipLoad.exe -BLUETOOLMODE -PORT COM23 -NOVERIFY -MINIDRIVER C:\Users\shjl\Documents\WICED-Studio-6.2\20719-B1_Bluetooth\platforms\minidriver-20739A0-uart.hex -BTP C:\Users\shjl\Documents\WICED-Studio-6.2\20719-B1_Bluetooth\platforms\20719_OCF.btp -CONFIG C:\Users\shjl\Documents\WICED-Studio-6.2\20719-B1_Bluetooth\build\gpio-CYW920719Q40EVB_01-rom-ram-Wiced-release\gpio-CYW920719Q40EVB_01-rom-ram-Wiced-release.hex


Executing above command downloads snip.gpio app to the CYW920719Q40EVB-01 EVAL board.


Note: You can include all the needed files into a single folder, so that it becomes more simpler to access the files and program the device.



Posted by SheetalJ_96 Moderator Mar 27, 2019

Disclaimer: This blog applies to following Cypress devices: CYW20706, CYW20719, CYW20735 and BT/BLE modules based on these devices.


Q. Using A2DP, how much is the expected minimum BT audio latency?

A. BT audio latency depends on many parameters like buffering on both source & sink sides, time required for PCM signals to playout, etc. The jitter buffer can be lowered to 4.1kB to give 50ms latency, but this comes with a cost of reduced audio quality. Therefore, in WICED, the jitter buffer is set to 116ms to avoid music interruptions caused by Wi-Fi and other radio sources. Setting it below 60ms will cause the buffer to overrun, a condition in which the buffer is fed with data at a slower rate than required, resulting in loss of audio.


Q. How to connect external host to Cypress BT chips?

A. Cypress BT chips can be used in host mode, where BT controller is controlled by an external host. We have a combo chip CYW943907WAE3 (check the workspace 43xxx_Wi-Fi), where CYW20707 gets programmed via 43907 MCU. In short, 43907 MCU acts as an external MCU for CYW20707. It takes the BT firmware from /43xxx_Wi-Fi/libraries/drivers/bluetooth/firmware/20706A2/40MHz/bt_firmware_controller.c and executes API bt_firmware_download().

To connect external MCU as host, host and controller should be connected via UART and then BT controller can be programmed by sending commands from Host. Cypress provides tools like ClientControl, CyBluetool for programming the device. Please refer <WICED workspace>/doc/WICED-HCI-Control-Protocol.pdf document for more details.

Note: CYW20707 is not a broad-market chip, but our module vendors like Murata use this chip to integrate it in a SiP along with other Wi-Fi chips. You can use CYW20706 to achieve similar functionalities.


Q. Do Cypress supports AT commands?

A. Cypress devices do not support AT commands. But we have EZ-Serial support for BT/BLE modules like CYBT-343026, CYBLE-022001 and more. Please refer following link for further details:


Q. How can I perform RF testing on Cypress BT devices/modules?

A. You can use mbt (<WICED workspace>/wiced_tools/mbt) or wmbt (<WICED workspace>/wiced_tools/wmbt) tools available in WICED SDK for RF testing. You can also use CyBluetool to allow DUT to enter different modes for regulatory test. Please refer attached pdf for more details.


  1. For BLE, you need to put device in HCI mode to accept commands through UART interface. For classic BT, put the device in Test mode to accept the commands through RF interface. Please refer section “Test Mode Setup” in attached pdf.
  2. MBT uses standard HCI commands and WMBT uses WICED HCI commands defined by Cypress.

Filter Blog

By date:
By tag: