API for Regulatory testing on the 20719-B1

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
BoCo_1857246
Level 4
Level 4
10 replies posted 5 replies posted 10 questions asked

To conduct regulatory testing on a device containing a WICED chip I've used two different methods in the past

1. Expose the HCI UART outside the device and use CyBlueTool

2. Make API calls to blecm_StartTransmitterTest(). I then have the device's normal external pushbuttons cycle through the tests.

For my latest project I'm using a 20719-B1 based CYBT-413034-02.

From my reading of Putting 2073x, 2070x, and 20719 Based Devices or Modules in HCI Mode – KBA225450  it appears the only way to put the device into HCI mode is to erase the bluetooth code and put in some non-bluetooth code. This defeats the purpose of testing, as the device also needs to be able to operate normally (with bluetooth code). Is there any way to put the 20719-B1 in HCI mode without erasing the bluetooth code?

This leads me to want to call regulatory tests from the API, and control them from within the device, but I can't find blecm_StartTransmitterTest() or equivalents in WICED 6.2. What are the regulatory API calls in WICED 6.2?

0 Likes
1 Solution

For others who are wondering the same thing, I have code that initiates regulatory testing programmatically.

Combining the test strings in wiced_tools\wmbt\wmbt.cpp and the function calls from the apps\demo\watch example, the following code works within the CYBT-413034-02 module to trigger the desired tests.

void regulatoryTxTest(uint16_t tx_frequency, uint8_t length, uint8_t pattern)

{

    UINT8 tx_channel = (tx_frequency - 2402) / 2;

    UINT8 hci_le_transmitter_test[] = { 0x01, 0x1E, 0x20, 0x03, 0x00, 0x00, 0x00 };

    UINT8 hci_le_transmitter_test_cmd_complete_event[] = { 0x04, 0x0e, 0x04, 0x01, 0x1E, 0x20, 0x00 };

    UINT8 hci_reset[] = {0x01, 0x03, 0x0c, 0x00};

    hci_le_transmitter_test[4] = tx_channel;

    hci_le_transmitter_test[5] = length;

    hci_le_transmitter_test[6] = pattern;

    hci_control_test_handle_command(HCI_CONTROL_TEST_COMMAND_ENCAPSULATED_HCI_COMMAND,hci_reset,4);

    hci_control_test_handle_command(HCI_CONTROL_TEST_COMMAND_ENCAPSULATED_HCI_COMMAND,hci_le_transmitter_test,7);

}

View solution in original post

4 Replies