CTE Receiver (cte_receiver)

Commands and events in this class manage Constant Tone Extension (CTE) receiving.

CTE feature is only supported by specific devices. Commands from this class will return bg_err_not_supported on devices that do not support CTE.

cte_receiver commands

cte_receiver_clear_dtm_parameters

Clear CTE-related parameters that were previously set for LE receiver test. Default values will be restored for these parameters.

C API

/* Function */
struct gecko_msg_cte_receiver_clear_dtm_parameters_rsp_t *gecko_cmd_cte_receiver_clear_dtm_parameters();

/* Response id */
gecko_rsp_cte_receiver_clear_dtm_parameters_id

/* Response structure */
struct gecko_msg_cte_receiver_clear_dtm_parameters_rsp_t
{
  uint16 result;
}

Command does not have parameters (for BGAPI headers refer to link)

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

cte_receiver_disable_connection_cte

Stop the IQ sampling on a connection. CTEs will not be requested on the given connection.

C API

/* Function */
struct gecko_msg_cte_receiver_disable_connection_cte_rsp_t *gecko_cmd_cte_receiver_disable_connection_cte(uint8 connection);

/* Response id */
gecko_rsp_cte_receiver_disable_connection_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_disable_connection_cte_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 connection Connection handle

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

cte_receiver_disable_connectionless_cte

Stop IQ sampling on a periodic advertising synchronization.

C API

/* Function */
struct gecko_msg_cte_receiver_disable_connectionless_cte_rsp_t *gecko_cmd_cte_receiver_disable_connectionless_cte(uint8 sync);

/* Response id */
gecko_rsp_cte_receiver_disable_connectionless_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_disable_connectionless_cte_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 sync Periodic advertising synchronization handle

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

cte_receiver_disable_silabs_cte

Disable IQ sampling of Silicon Labs CTE.

C API

/* Function */
struct gecko_msg_cte_receiver_disable_silabs_cte_rsp_t *gecko_cmd_cte_receiver_disable_silabs_cte();

/* Response id */
gecko_rsp_cte_receiver_disable_silabs_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_disable_silabs_cte_rsp_t
{
  uint16 result;
}

Command does not have parameters (for BGAPI headers refer to link)

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

cte_receiver_enable_connection_cte

Start IQ samplings on a connection. A CTE requests will be initiated periodically on the given connection and IQ sampling will be made on the received CTE responses.

C API

/* Function */
struct gecko_msg_cte_receiver_enable_connection_cte_rsp_t *gecko_cmd_cte_receiver_enable_connection_cte(uint8 connection, uint16 interval, uint8 cte_length, uint8 cte_type, uint8 slot_durations, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_enable_connection_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_enable_connection_cte_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 connection Connection handle
uint16 interval Measurement interval
  • 0: No interval. The request is initiated only once.
  • Other values N: Initiate the request every N-th connection events
uint8 cte_length Minimum CTE length requested in 8 us units.
  • Range: 0x02 to 0x14
  • Time Range: 16 us to 160 us
uint8 cte_type Requested CTE type
  • 0: AoA CTE
  • 1: AoD CTE with 1 us slots
  • 2: AoD CTE with 2 us slots
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint8 switching_pattern_len Array length.
uint8array switching_pattern_data Antenna switching pattern. Antennas will be switched in this order with the antenna switch pins during CTE. If the CTE is longer than the switching pattern, the pattern starts over.

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

Events generated

Event Description
cte_receiver_connection_iq_report Triggered when IQ samples have been received.

cte_receiver_enable_connectionless_cte

Start IQ sampling on a periodic advertising synchronization. IQ samples are taken on each CTE found in the periodic advertisements.

C API

/* Function */
struct gecko_msg_cte_receiver_enable_connectionless_cte_rsp_t *gecko_cmd_cte_receiver_enable_connectionless_cte(uint8 sync, uint8 slot_durations, uint8 cte_count, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_enable_connectionless_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_enable_connectionless_cte_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 sync Periodic advertising synchronization handle
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint8 cte_count
  • 0: Sample and report all available CTEs
  • Other values: Maximum number of sampled CTEs in each periodic advertising interval
uint8 switching_pattern_len Array length.
uint8array switching_pattern_data Antenna switching pattern. Antennas will be switched in this order with the antenna switch pins during CTE. If the CTE is longer than the switching pattern, the pattern starts over.

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

Events generated

Event Description
cte_receiver_connectionless_iq_report Triggered when IQ samples have been received.

cte_receiver_enable_silabs_cte

Enable IQ sampling of Silicon Labs CTE found in extended advertisements.

C API

/* Function */
struct gecko_msg_cte_receiver_enable_silabs_cte_rsp_t *gecko_cmd_cte_receiver_enable_silabs_cte(uint8 slot_durations, uint8 cte_count, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_enable_silabs_cte_id

/* Response structure */
struct gecko_msg_cte_receiver_enable_silabs_cte_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint8 cte_count
  • 0: Sample and report all available CTEs
  • Other values: Maximum number of sampled CTEs in each extended advertising interval
uint8 switching_pattern_len Array length.
uint8array switching_pattern_data Antenna switching pattern. Antennas will be switched in this order with the antenna switch pins during CTE. If the CTE is longer than the switching pattern, the pattern starts over.

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

Events generated

Event Description
cte_receiver_silabs_iq_report Triggered when IQ samples of Silicon Labs CTE have been received.

cte_receiver_set_dtm_parameters

Set CTE-related parameters of LE receiver test.

C API

/* Function */
struct gecko_msg_cte_receiver_set_dtm_parameters_rsp_t *gecko_cmd_cte_receiver_set_dtm_parameters(uint8 cte_length, uint8 cte_type, uint8 slot_durations, uint8 switching_pattern_len, const uint8 *switching_pattern_data);

/* Response id */
gecko_rsp_cte_receiver_set_dtm_parameters_id

/* Response structure */
struct gecko_msg_cte_receiver_set_dtm_parameters_rsp_t
{
  uint16 result;
}

Command Parameters (for BGAPI headers refer to link)

Type Name Description
uint8 cte_length Expected CTE length in 8 us units
  • 0: No CTE
  • 0x02 to 0x14: Expected CTE length
Default: 0 (no CTE)
uint8 cte_type Expected CTE type
  • 0: Expect AoA CTE
  • 1: Expect AoD CTE with 1 us slots
  • 2: Expect AoD CTE with 2 us slots
Default: 0
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
Default: 1
uint8 switching_pattern_len Array length.
uint8array switching_pattern_data Antenna switching pattern. Antennas will be switched in this order with the antenna switch pins during CTE. If the CTE is longer than the switching pattern, the pattern starts over. Default: empty array

Response Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 result Result code
  • 0: success
  • Non-zero: an error has occurred
For other values see Error codes

Events generated

Event Description
cte_receiver_dtm_iq_report Triggered when IQ samples have been received.

cte_receiver events

cte_receiver_connection_iq_report

IQ sample report from connection CTE packets.

C API

/* event id*/
gecko_evt_cte_receiver_connection_iq_report_id

/* event structure*/
struct gecko_msg_cte_receiver_connection_iq_report_evt_t
{
  uint16 status;
  uint8 connection;
  uint8 phy;
  uint8 channel;
  int8 rssi;
  uint8 rssi_antenna_id;
  uint8 cte_type;
  uint8 slot_durations;
  uint16 event_counter;
  uint8array samples;
}

Event Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 status Status of CTE IQ sampling
uint8 connection Connection handle or periodic advertising synchronization handle
uint8 phy The PHY on which the packet is received.
  • 1: 1M PHY
  • 2: 2M PHY
uint8 channel The channel on which the CTE packet was received
int8 rssi RSSI in the received CTE packet. Unit: dBm
uint8 rssi_antenna_id The ID of the antenna on which RSSI was measured
uint8 cte_type The CTE type
  • 0: AoA CTE response
  • 1: AoD CTE response with 1us slots
  • 2: AoD CTE response with 2us slots
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint16 event_counter The event counter of the connection
uint8array samples IQ samples of the received CTE packet. I and Q samples follow each other alternately (I, Q, I, Q , ...)

cte_receiver_connectionless_iq_report

IQ sample report from connectionless CTE packets.

C API

/* event id*/
gecko_evt_cte_receiver_connectionless_iq_report_id

/* event structure*/
struct gecko_msg_cte_receiver_connectionless_iq_report_evt_t
{
  uint16 status;
  uint8 sync;
  uint8 channel;
  int8 rssi;
  uint8 rssi_antenna_id;
  uint8 cte_type;
  uint8 slot_durations;
  uint16 event_counter;
  uint8array samples;
}

Event Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 status Status of CTE IQ sampling
uint8 sync Periodic advertising synchronization handle
uint8 channel The channel on which the CTE packet was received
int8 rssi RSSI in the received CTE packet. Unit: dBm
uint8 rssi_antenna_id The ID of the antenna on which RSSI was measured
uint8 cte_type The CTE type
  • 0: AoA CTE response
  • 1: AoD CTE response with 1us slots
  • 2: AoD CTE response with 2us slots
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint16 event_counter The event counter of the periodic advertising train
uint8array samples IQ samples of the received CTE packet. I and Q samples follow each other alternately (I, Q, I, Q , ...)

cte_receiver_dtm_iq_report

IQ sample report from DTM CTE packets.

C API

/* event id*/
gecko_evt_cte_receiver_dtm_iq_report_id

/* event structure*/
struct gecko_msg_cte_receiver_dtm_iq_report_evt_t
{
  uint16 status;
  uint8 channel;
  int8 rssi;
  uint8 rssi_antenna_id;
  uint8 cte_type;
  uint8 slot_durations;
  uint16 event_counter;
  uint8array samples;
}

Event Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 status Status of CTE IQ sampling
uint8 channel The channel on which the CTE packet was received
int8 rssi RSSI in the received CTE packet. Unit: dBm
uint8 rssi_antenna_id The ID of the antenna on which RSSI was measured
uint8 cte_type The CTE type
  • 0: AoA CTE response
  • 1: AoD CTE response with 1us slots
  • 2: AoD CTE response with 2us slots
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint16 event_counter The event counter of the periodic advertising train or the connection
uint8array samples IQ samples of the received CTE packet. I and Q samples follow each other alternately (I, Q, I, Q , ...)

cte_receiver_silabs_iq_report

IQ samples report from Silicon Labs CTE packets.

C API

/* event id*/
gecko_evt_cte_receiver_silabs_iq_report_id

/* event structure*/
struct gecko_msg_cte_receiver_silabs_iq_report_evt_t
{
  uint16 status;
  bd_addr address;
  uint8 address_type;
  uint8 phy;
  uint8 channel;
  int8 rssi;
  uint8 rssi_antenna_id;
  uint8 cte_type;
  uint8 slot_durations;
  uint16 packet_counter;
  uint8array samples;
}

Event Parameters (for BGAPI headers refer to link)

Type Name Description
uint16 status Status of CTE IQ sampling
bd_addr address Bluetooth address of the remote device
uint8 address_type Advertiser address type. Values:
  • 0: Public address
  • 1: Random address
  • 255: No address provided (anonymous advertising)
uint8 phy The PHY on which the packet is received.
  • 1: 1M PHY
  • 2: 2M PHY
uint8 channel The channel on which the CTE packet was received
int8 rssi RSSI in the received CTE packet. Unit: dBm
uint8 rssi_antenna_id The ID of the antenna on which RSSI was measured
uint8 cte_type The CTE type
  • 0: AoA CTE response
  • 1: AoD CTE response with 1us slots
  • 2: AoD CTE response with 2us slots
uint8 slot_durations Slot durations
  • 1: Switching and sampling slots are 1 us each
  • 2: Switching and sampling slots are 2 us each
uint16 packet_counter The event counter of the periodic advertising train or the connection
uint8array samples IQ samples of the received CTE packet. I and Q samples follow each other alternately (I, Q, I, Q , ...)