categories:
ble:
commands:
SetBleModulationParams:
opcode: 608
description: Configure the modulation parameters for BLE packets
parameters:
- name: ble_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: BLE PHY mode selection
optional: false
enum:
LE_1MB: 0
LE_2MB: 1
LE_CODED_500K: 2
LE_CODED_125K: 3
- name: rx_bw
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Manually force an RX bandwidth (optional parameter)
optional: true
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
SetBleChannelParams:
opcode: 609
description: Sets the BLE channel/packet dependent parameters
parameters:
- name: crc_in_fifo
bit_width: 1
byte_positions:
- - 2
- '4'
description: Flag when CRC is handle manually by the host
optional: false
- name: channel_type
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: BLE channel type selection
optional: false
enum:
ADVERTISER: 0
DATA_16BIT_HEADER: 1
DATA_24BIT_HEADER: 2
- name: whit_init
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: 'Whitening init value. Example: 0x53 for channel 37. Can be set to 0 to deactivate whitening (test
mode)'
optional: false
- name: crc_init
bit_width: 24
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
description: 'CRC seed. Example: 0x555555 for advertising'
optional: false
- name: syncword
bit_width: 32
byte_positions:
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
- - 10
- '7:0'
description: 'Syncword. Example: 0x8e89bed6 for advertising'
optional: false
SetBleTx:
opcode: 610
description: Configure PDU length to transmit and send a BLE packet. This command is a concatenation of SetBlePduLen(pld_len)
and SetTx(0)
parameters:
- name: pld_len
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Length of the PDU (including the 16bit header), excluding the 3 byte CRC. The data to write into the
FIFO corresponds to this PDU, including the 16bit header
optional: false
GetBlePacketStatus:
opcode: 613
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: pkt_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 6
- '2'
description: Average over last packet received of RSSI. Actual signal power is –rssi_avg/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 6
- '0'
description: Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: lqi
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
GetBleRxStats:
opcode: 612
description: Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory
retention and the command ResetRxStats
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Total number of received packets
optional: false
- name: crc_error
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Number of received packets with a CRC error
optional: false
- name: len_error
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Number of packets with a length error
optional: false
SetBleTxPduLen:
opcode: 614
description: Sets PDU length for TX
parameters:
- name: pdu_len
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Length of the PDU (including the 16bit header), excluding the 3 byte CRC. The data to write into the
FIFO corresponds to this PDU, including the 16bit header
optional: false
bpsk:
commands:
SetBpskModulationParams:
opcode: 592
description: Sets the modulation parameters for BPSK packets. FW configures respective modem registers
parameters:
- name: bitrate
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Bitrate (same as bitrate in SetAdvancedModulationParams command)
optional: false
- name: pulse_shape
bit_width: 4
byte_positions:
- - 6
- '7:4'
description: Signal shape (same as shape_filter in the SetAdvancedModulationParams command)
optional: false
enum:
NONE: 0
CUSTOM: 1
BT_0_3: 4
BT_0_5: 5
BT_0_7: 6
BT_1_0: 7
BT_2_0: 2
RC_0_3: 8
RC_0_5: 9
RC_0_7: 10
RC_1_0: 11
RRC_0_3: 12
RRC_0_4: 3
RRC_0_5: 13
RRC_0_7: 14
RRC_1_0: 15
- name: diff_mode_en
bit_width: 1
byte_positions:
- - 6
- '2'
description: Enable Differential encoding
optional: false
enum:
DISABLED: 0
ENABLED: 1
- name: diff_mode_init
bit_width: 1
byte_positions:
- - 6
- '1'
description: Init value for differential encoding
optional: false
- name: diff_mode_parity
bit_width: 1
byte_positions:
- - 6
- '0'
description: Parity for differential encoding
optional: false
SetBpskPacketParams:
opcode: 593
description: Sets the packet parameters for BPSK packets. FW configures respective modem registers
parameters:
- name: pld_len
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Payload length in bits (raw encoded) or bytes (Sigfox PHY)
optional: false
- name: bpsk_mode
bit_width: 2
byte_positions:
- - 3
- '5:4'
description: BPSK mode selection
optional: false
enum:
RAW: 0
SIGFOX: 1
- name: sigfox_msg
bit_width: 1
byte_positions:
- - 3
- '1'
description: Sigfox message type (only valid in Sigfox PHY mode)
optional: false
enum:
APP: 0
CTRL: 1
- name: sigfox_rank
bit_width: 2
byte_positions:
- - 3
- '7:6'
description: Sigfox frame emission rank (only valid in Sigfox PHY mode)
optional: false
enum:
FIRST: 0
SECOND: 1
THIRD: 2
common:
commands:
SetRfFrequency:
opcode: 512
description: Sets the RF frequency for subsequent radio operations. Will not work with the chip in TX mode. All frequency
dependent parameters are automatically recomputed by the FW
parameters:
- name: rf_freq
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Frequency given in Hz
optional: false
SetRxPath:
opcode: 513
description: Sets the RX path and boost configuration. If rx_boost is changed, the SRC calibration (ADC offset) is
run again for G12 and G13 with the updated boost configuration
parameters:
- name: rx_path
bit_width: 1
byte_positions:
- - 2
- '0'
description: RX path selection
optional: false
enum:
LF_PATH: 0
HF_PATH: 1
- name: rx_boost
bit_width: 3
byte_positions:
- - 3
- '2:0'
description: RX boost configuration (0..7). Will keep previous value if not sent
optional: true
enum:
'OFF': 0
B1: 1
B2: 2
B3: 3
B4: 4
B5: 5
B6: 6
MAX: 7
SetPaConfig:
opcode: 514
description: Chooses which PA to use and sets the parameters of the PA
parameters:
- name: pa_sel
bit_width: 1
byte_positions:
- - 2
- '7'
description: Select which PA to use
optional: false
enum:
LF_PA: 0
HF_PA: 1
- name: pa_lf_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: PA LF mode (if unused set to 0)
optional: false
enum:
LF_PA_FSM: 0
LF_PA_FDM: 1
LF_PA_HSM_RFO1: 2
LF_PA_HSM_RFO2: 3
- name: pa_lf_duty_cycle
bit_width: 4
byte_positions:
- - 2
- '7:4'
description: PA LF duty cycle control (if unused set to 6). Controls the duty cycle and maximum output power of
the PA in LF mode
optional: false
- name: pa_lf_slices
bit_width: 4
byte_positions:
- - 3
- '3:0'
description: PA LF slices (if unused set to 7)
optional: false
- name: pa_hf_duty_cycle
bit_width: 5
byte_positions:
- - 4
- '4:0'
description: PA HF duty cycle control (default/unused=16). Controls the duty cycle and maximum output power of the
PA in HF mode
optional: true
default: 16
SetTxParams:
opcode: 515
description: Sets the TX power and ramp time of the PA. The FW configures the corresponding registers, including OCP/OVP
parameters:
- name: tx_power
bit_width: 8
signed: true
byte_positions:
- - 2
- '7:0'
description: 'Output power in 0.5dBm steps. PA LF: -19..44 (-9.5..22dBm), PA HF: -39..24 (-19.5..12dBm). Values
below minimum enable leakage mode (-22dBm)'
optional: false
- name: ramp_time
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: PA ramp time selection
optional: false
enum:
RAMP_2U: 0
RAMP_4U: 1
RAMP_8U: 2
RAMP_16U: 3
RAMP_32U: 4
RAMP_48U: 5
RAMP_64U: 6
RAMP_80U: 7
RAMP_96U: 8
RAMP_112U: 9
RAMP_128U: 10
RAMP_144U: 11
RAMP_160U: 12
RAMP_176U: 13
RAMP_192U: 14
RAMP_208U: 15
SetRssiCalibration:
opcode: 517
description: Sets the RSSI calibration table for the requested RX path(s). If both paths are set, values for both
tables must be provided
parameters:
- name: rx_path_lf
bit_width: 1
byte_positions:
- - 2
- '0'
description: Enable LF path calibration
optional: false
- name: rx_path_hf
bit_width: 1
byte_positions:
- - 2
- '1'
description: Enable HF path calibration
optional: false
- name: calibration_data
bit_width: 0
byte_positions: []
description: Variable length calibration data - 27 entries of [gain(15:0), nf(7:0)] for each enabled path
optional: false
SetRxTxFallbackMode:
opcode: 518
description: Configures the fallback mode after a RX or TX operation (after transmission/reception or timeout)
parameters:
- name: fallback_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: Fallback mode selection
optional: false
default: 1
enum:
STANDBY_RC: 1
STANDBY_XOSC: 2
FS: 3
SetPacketType:
opcode: 519
description: Sets the current packet type. This is the first command to be sent when configuring the radio for transceiver
operation. Will only work in Standby RC, Standby XOSC or FS mode
parameters:
- name: packet_type
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Packet type selection
optional: false
default: 0
enum:
LORA: 0
FSK_GENERIC: 1
FSK_LEGACY: 2
BLE: 3
RANGING: 4
FLRC: 5
BPSK: 6
LR_FHSS: 7
WMBUS: 8
WISUN: 9
OOK: 10
RAW: 11
ZWAVE: 12
ZIGBEE: 13
GetPacketType:
opcode: 520
description: Returns the current packet type of the radio
parameters: []
status_fields:
- name: packet_type
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Current packet type (see SetPacketType for values)
optional: false
SetStopTimeout:
opcode: 521
description: Defines if the RX timeout should be stopped on Syncword/Header detection or on Preamble detection
parameters:
- name: stop_on_preamble
bit_width: 1
byte_positions:
- - 2
- '0'
description: Timeout stop on preamble detection instead of syncword/header valid
optional: false
default: 0
ResetRxStats:
opcode: 522
parameters: []
description: Reset Rx Statistics
GetRssiInst:
opcode: 523
description: Gets the instantaneous RSSI value during reception of the packet. Returned value corresponds to -rssi/2 [dBm]
parameters: []
status_fields:
- name: rssi
bit_width: 9
byte_positions:
- - 2
- '7:0'
- - 3
- '0'
description: Instantaneous RSSI value. Actual signal power is -rssi/2 [dBm]. If only 1 dBm resolution is wanted, reading the fractional bit is optional
optional: false
SetRx:
opcode: 524
description: Sets the device into RX mode. The RTC is started with the given value. RxTimeout is in 1/32.768kHz steps, allowing a maximum of 512 seconds timeout. If image rejection calibration was not done for current RF frequency, error RXFREQ_NO_CAL_ERR is generated
parameters:
- name: rx_timeout
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: RX timeout. 0=single mode (no timeout), 0xFFFFFF=continuous mode. Optional parameter - if not sent, uses SetDefaultRxTxTimeout value
optional: true
SetTx:
opcode: 525
description: Sets the device into TX mode. The RTC is started with the given value. TxTimeout is in 1/32.768kHz steps,
allowing a maximum of 512 seconds timeout
parameters:
- name: tx_timeout
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: TX timeout. 0=no timeout. Optional parameter - if not sent, uses SetDefaultRxTxTimeout value
optional: true
SetTxTestMode:
opcode: 526
description: Sets the device into TX test mode
parameters:
- name: test_mode
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Test mode selection
optional: false
enum:
PACKET: 0
PREAMBLE: 1
TONE: 2
PRBS9: 3
SelPA:
opcode: 527
description: Select which PA to use. Configuration must have been provided beforehand using SetPaConfig. Selection
cannot be changed in TX mode
parameters:
- name: pa_sel
bit_width: 1
byte_positions:
- - 2
- '0'
description: PA selection
optional: false
enum:
LF_PA: 0
HF_PA: 1
SetRxDutyCycle:
opcode: 528
description: Start reception every cycle_time and listen for rx_max_time
parameters:
- name: rx_max_time
bit_width: 24
byte_positions: [[2, '7:0'], [3, '7:0'], [4, '7:0']]
description: Max Listen time
optional: false
- name: cycle_time
bit_width: 24
byte_positions: [[5, '7:0'], [6, '7:0'], [7, '7:0']]
description: Cycle time (period of RX in HF tick)
optional: false
- name: use_lora_cad
bit_width: 1
byte_positions: [[8, '4']]
description: Perform CAD instead of RX. Valid only for LoRa packet
optional: false
- name: dram_ret
bit_width: 3
byte_positions: [[8, '2:0']]
description: Bit mask for DRAM to keep in retention
optional: false
SetAutoRxTx:
opcode: 529
description: Activate or deactivate the auto TX/auto RX mode. In auto RX mode, chip automatically goes from TX to
RX after TxDone. In auto TX mode, chip automatically goes from RX to TX after RxDone
parameters:
- name: clear
bit_width: 1
byte_positions:
- - 2
- '7'
description: Auto mode configuration
optional: false
- name: auto_txrx_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: Auto mode configuration
optional: false
enum:
DISABLE: 0
ALWAYS: 1
RX_OK: 2
- name: timeout
bit_width: 24
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Timeout for the auto operation in 1/32.768kHz steps
optional: false
- name: delay
bit_width: 32
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: Delay before starting the auto operation in HF clock cycles
optional: false
GetRxPktLength:
opcode: 530
description: Get the length of the last received packet
parameters: []
status_fields:
- name: pkt_length
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes
optional: false
SetPowerOffset:
opcode: 532
description: Set the global value of the power offset
parameters:
- name: power_offset
bit_width: 6
byte_positions:
- - 2
- '5:0'
description: Global power offset value
optional: false
SetDefaultRxTxTimeout:
opcode: 533
description: Sets the default RX and TX timeouts to be used for DIO RX/TX triggers, or if the timeout parameters are
not sent in the SetRx and SetTx commands
parameters:
- name: rx_timeout
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: Default RX timeout in 1/32.768kHz steps
optional: false
- name: tx_timeout
bit_width: 24
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
description: Default TX timeout in 1/32.768kHz steps
optional: false
SetTimestampSource:
opcode: 534
description: Sets the source event for time-stamping different radio events. 3 sources can be configured in parallel
parameters:
- name: timestamp_index
bit_width: 2
byte_positions:
- - 2
- '5:4'
description: Index of the source to configure (0-2)
optional: false
enum:
TS0 : 0
TS1 : 1
TS2 : 2
- name: timestamp_source
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Event source selection
optional: false
enum:
NONE: 0
TX_DONE: 1
RX_DONE: 2
SYNC: 3
HEADER: 4
GetTimestampValue:
opcode: 535
description: Get the delay in HF clk tick between the event and the SPI NSS falling edge of the request. Will not
return a correct value if the event occurred before a sleep period
parameters:
- name: timestamp_index
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: Index of the timestamp source (0-2)
optional: false
enum:
TS0 : 0
TS1 : 1
TS2 : 2
status_fields:
- name: timestamp
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Timestamp value in HF clock ticks
optional: false
SetCca:
opcode: 536
description: Set the radio into RX mode for Clear Channel Assessment measurements. The radio measures the RSSI for
the given duration
parameters:
- name: duration
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: Duration of CCA measurement in HF clock cycles
optional: false
- name: gain
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: Manual gain setting for CCA. Optional parameter - if not provided, AGC is used
optional: true
GetCcaResult:
opcode: 537
description: Get the RSSI statistics for the CCA measurement
parameters: []
status_fields:
- name: rssi_min
bit_width: 9
byte_positions:
- - 2
- '7:0'
- - 5
- '2'
description: Minimum RSSI value measured during CCA. Actual value is -rssi_min/2 [dBm]
optional: false
- name: rssi_max
bit_width: 9
byte_positions:
- - 3
- '7:0'
- - 5
- '1'
description: Maximum RSSI value measured during CCA. Actual value is -rssi_max/2 [dBm]
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 5
- '0'
description: Average RSSI value measured during CCA. Actual value is -rssi_avg/2 [dBm]
optional: false
SetAgcGainManual:
opcode: 538
description: 'Set the manual gain of the AGC. A value of 0 enables the AGC: automatic gain'
parameters:
- name: gain_step
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Manual gain step. 0=enable AGC, 1-15=manual gain steps
optional: false
SetCadParams:
opcode: 539
description: Set the CAD parameters for the Channel Activity Detect for packet types other than LoRa. This CAD is
based on the measured RSSI
parameters:
- name: cad_timeout
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: The maximum time spent measuring RSSI, in HF (32MHz) clock ticks
optional: false
- name: threshold
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: Level of the RSSI to determine if a signal is present (in -dBm)
optional: false
- name: exit_mode
bit_width: 2
byte_positions:
- - 6
- '1:0'
description: Action taken after the CAD
optional: false
enum:
FALLBACK: 0
TX: 1
RX: 2
- name: trx_timeout
bit_width: 24
byte_positions:
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: Timeout used in case RX or TX is triggered, as specified in SetTx and SetRx commands
optional: false
SetCad:
opcode: 540
description: Set device into RX CAD mode (not LoRa). Parameters must have been previously set using SetCadParams command
parameters: []
flrc:
commands:
SetFlrcModulationParams:
opcode: 584
description: Sets the modulation parameters for FLRC packets. FW configures respective modem registers. Will return
CMD_FAIL in the status of the next command, if the packet type is not FLRC
parameters:
- name: flrc_bitrate
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: Bitrate and bandwidth combination
optional: false
enum:
BR_2600: 0
BR_2080: 1
BR_1300: 2
BR_1040: 3
BR_0650: 4
BR_0520: 5
BR_0325: 6
BR_0260: 7
- name: flrc_cr
bit_width: 4
byte_positions:
- - 3
- '7:4'
description: Coding rate selection
optional: false
enum:
CR_12: 0
CR_34: 1
NONE: 2
CR_23: 3
- name: pulse_shape
bit_width: 4
byte_positions:
- - 3
- '3:0'
description: Pulse shaping filter (same values as for FSK)
optional: false
enum:
NONE: 0
CUSTOM: 1
BT_0_3: 4
BT_0_5: 5
BT_0_7: 6
BT_1_0: 7
BT_2_0: 2
RC_0_3: 8
RC_0_5: 9
RC_0_7: 10
RC_1_0: 11
RRC_0_3: 12
RRC_0_4: 3
RRC_0_5: 13
RRC_0_7: 14
RRC_1_0: 15
SetFlrcPacketParams:
opcode: 585
description: Sets the packet parameters for FLRC packets. FW configures respective modem registers
parameters:
- name: agc_pbl_len
bit_width: 4
byte_positions:
- - 2
- '5:2'
description: AGC preamble length
optional: false
enum:
LEN_4_BITS: 0
LEN_8_BITS: 1
LEN_12_BITS: 2
LEN_16_BITS: 3
LEN_20_BITS: 4
LEN_24_BITS: 5
LEN_28_BITS: 6
LEN_32_BITS: 7
- name: sw_len
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: 'Length of syncword (unit is 2 bytes: 0/16/32 bits). Must be 0 if sync_match is OFF'
optional: false
enum:
SW_NONE: 0
SW_16B: 1
SW_32B: 2
- name: sw_tx
bit_width: 2
byte_positions:
- - 3
- '7:6'
description: Defines which syncword to use for TX operations
optional: false
enum:
SW_NONE: 0
SW1: 1
SW2: 2
SW3: 3
- name: sw_match
bit_width: 3
byte_positions:
- - 3
- '5:3'
description: Match syncword(s) configuration
optional: false
enum:
MATCH_NONE: 0
MATCH_1: 1
MATCH_2: 2
MATCH_12: 3
MATCH_3: 4
MATCH_13: 5
MATCH_23: 6
MATCH_123: 7
- name: pkt_format
bit_width: 1
byte_positions:
- - 3
- '2'
description: Packet format selection
optional: false
enum:
DYNAMIC: 0
FIXED: 1
- name: crc
bit_width: 2
byte_positions:
- - 3
- '1:0'
description: CRC configuration
optional: false
enum:
CRC_OFF: 0
CRC_16: 1
CRC_24: 2
CRC_32: 3
- name: pld_len
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Payload length. Valid values are [6..511]. Note that on the sx1280, valid values are only [6..127].
In Dynamic pkt_format, the device will output a LenError IRQ, but remain in RX mode
optional: false
GetFlrcRxStats:
opcode: 586
description: Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory
retention and the command ResetRxStats
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Total number of received packets
optional: false
- name: crc_error
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Number of received packets with a CRC error
optional: false
- name: len_error
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Number of packets with a length error
optional: false
GetFlrcPacketStatus:
opcode: 587
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: pkt_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 6
- '2'
description: Average over last packet received of RSSI. Actual signal power is –rssi_avg/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 6
- '0'
description: Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: sw_num
bit_width: 4
byte_positions:
- - 6
- '7:4'
description: Detected syncword number of latest received packet
optional: false
SetFlrcSyncword:
opcode: 588
description: Sets the syncword for FLRC packets. 16 or 32 bits can be sent for the syncword. Bytes 5 and 6 are optional
if only 16bit syncword is required
parameters:
- name: sw_num
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Syncword number (valid values are 1, 2, 3)
optional: false
- name: syncword
bit_width: 32
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
description: Syncword value (16 or 32 bits)
optional: false
fsk:
commands:
SetFskModulationParams:
opcode: 576
description: Sets the modulation parameters for FSK packets. FW configures respective modem registers. Will return
CMD_FAIL in the status of the next command, if the packet type is not FSK
parameters:
- name: bitrate
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: 'Bitrate interpretation depends on bit 31. If bit 31=0: bitrate in bits/s is bitrate(30:0). If bit
31=1: bitrate in bits/s is bitrate(30:0)/256'
optional: false
- name: pulse_shape
bit_width: 4
byte_positions:
- - 6
- '3:0'
description: Pulse shaping filter selection
optional: false
enum:
NONE: 0
CUSTOM: 1
BT_0_3: 4
BT_0_5: 5
BT_0_7: 6
BT_1_0: 7
BT_2_0: 2
RC_0_3: 8
RC_0_5: 9
RC_0_7: 10
RC_1_0: 11
RRC_0_3: 12
RRC_0_4: 3
RRC_0_5: 13
RRC_0_7: 14
RRC_1_0: 15
- name: rx_bw
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: RX bandwidth (same format as in the SetAdvancedModulationParams command)
optional: false
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
- name: fdev
bit_width: 24
byte_positions:
- - 8
- '7:0'
- - 9
- '7:0'
- - 10
- '7:0'
description: Frequency deviation in Hz
optional: false
SetFskPacketParams:
opcode: 577
description: Sets the packet parameters for FSK packets.. Command will fail
if packet type is not FSK
parameters:
- name: pbl_len_tx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Preamble length in bits
optional: false
- name: pbl_len_detect
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: Preamble detection length. 0=off (detection on syncword), others=length of preamble detection. Enables/disables
PreambleDetected IRQ
optional: false
enum:
NONE: 0
LEN_8_BITS: 8
LEN_16_BITS: 16
LEN_24_BITS: 24
LEN_32_BITS: 32
- name: pbl_long
bit_width: 1
byte_positions:
- - 5
- '4'
description: Enable long preamble mode (more than 2kb)
optional: false
- name: pld_len_unit
bit_width: 1
byte_positions:
- - 5
- '4'
description: Payload length unit
optional: false
enum:
BYTES: 0
BITS: 1
- name: addr_comp
bit_width: 2
byte_positions:
- - 5
- '3:2'
description: Address filtering mode. If address comparison fails, packet reception is aborted and addrErr flag is
set
optional: false
enum:
'OFF': 0
NODE: 1
NODE_BCAST: 2
- name: fsk_pkt_format
bit_width: 2
byte_positions:
- - 5
- '1:0'
description: Packet format selection (fixed or variable length)
optional: false
enum:
FIXED_LENGTH: 0
VARIABLE_8BIT: 1
VARIABLE_9BIT: 2
VARIABLE_16BIT: 3
- name: pld_len
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: 'Payload length in bytes. For fixed length: defines payload length. For variable length: defines max
packet length. If received packet > pld_len, LenError IRQ is raised with RXDone IRQ'
optional: false
- name: crc
bit_width: 4
byte_positions:
- - 8
- '7:4'
description: CRC mode selection
optional: false
enum:
CRC_OFF: 0
CRC_1_BYTE: 1
CRC_2_BYTE: 2
CRC_3_BYTE: 3
CRC_4_BYTE: 4
CRC_1_BYTE_INV: 9
CRC_2_BYTE_INV: 10
CRC_3_BYTE_INV: 11
CRC_4_BYTE_INV: 12
- name: dc_free
bit_width: 1
byte_positions:
- - 8
- '0'
description: Whitening enable
optional: false
SetFskWhiteningParams:
opcode: 578
description: Configure the whitening params for FSK packets, SX126x/LR11xx or SX128x compatible
parameters:
- name: whiten_type
bit_width: 1
byte_positions:
- - 2
- '4:4'
description: Whitening type compatibility
optional: false
enum:
SX126X_LR11XX: 0
SX128X: 1
- name: init
bit_width: 12
byte_positions:
- - 2
- '3:0'
- - 3
- '7:0'
description: Whitening seed value
optional: false
SetFskCrcParams:
opcode: 579
description: Configure the CRC params for FSK packets
parameters:
- name: polynom
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: LFSR polynomial
optional: false
- name: init
bit_width: 32
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: Initial LFSR value
optional: false
SetFskSyncWord:
opcode: 580
description: Configure the syncword for FSK packets
parameters:
- name: syncword
bit_width: 64
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: Syncword value. Always the LSBs of the 64bit syncword are sent if nb_bits<64, not depending on bit_order
optional: false
- name: bit_order
bit_width: 1
byte_positions:
- - 10
- '7'
description: Bit order for syncword transmission (over the air). Set MSB first for SX126x, LR11xx, SX1280 compatible
value
optional: false
enum:
LSB_FIRST: 0
MSB_FIRST: 1
- name: nb_bits
bit_width: 7
byte_positions:
- - 10
- '6:0'
description: Length of syncword in bits
optional: false
SetFskAddress:
opcode: 581
description: Configure the addresses for filtering for FSK packets
parameters:
- name: addr_node
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Node address
optional: false
- name: addr_bcast
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Broadcast address
optional: false
GetFskRxStats:
opcode: 582
description: Get FSK RX stats
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Total number of received packets
optional: false
- name: crc_error
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Number of received packets with a CRC error
optional: false
- name: len_error
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Number of packets with a length error
optional: false
- name: pbl_det
bit_width: 16
byte_positions:
- - 8
- '7:0'
- - 9
- '7:0'
description: Number of detections
optional: false
- name: sync_ok
bit_width: 16
byte_positions:
- - 10
- '7:0'
- - 11
- '7:0'
description: Number of good found syncword
optional: false
- name: sync_fail
bit_width: 16
byte_positions:
- - 12
- '7:0'
- - 13
- '7:0'
description: Number of failed syncword
optional: false
- name: timeout
bit_width: 16
byte_positions:
- - 14
- '7:0'
- - 15
- '7:0'
description: Number of RTC timeouts
optional: false
GetFskPacketStatus:
opcode: 583
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: pkt_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 6
- '2'
description: Average over last packet received of RSSI. Actual signal power is –rssi_avg/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 6
- '0'
description: Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: addr_match_bcast
bit_width: 1
byte_positions:
- - 6
- '5'
description: Indicates if the last packet received matched the broadcast address
optional: false
- name: addr_match_node
bit_width: 1
byte_positions:
- - 6
- '4'
description: Indicates if the last packet received matched the node address
optional: false
- name: lqi
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
lora:
commands:
SetLoraModulationParams:
opcode: 544
description: Sets the LoRa modulation parameters. FW configures respective modem registers. Will return CMD_FAIL in
the status of the next command, if the packet type is not LoRa
parameters:
- name: sf
bit_width: 4
byte_positions:
- - 2
- '7:4'
description: Spreading factor
optional: false
enum:
SF5: 5
SF6: 6
SF7: 7
SF8: 8
SF9: 9
SF10: 10
SF11: 11
SF12: 12
- name: lora_bw
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Bandwidth selection
optional: false
enum:
BW_7: 0
BW_15: 1
BW_31: 2
BW_62: 3
BW_125: 4
BW_250: 5
BW_500: 6
BW_1000: 7
BW_10: 8
BW_20: 9
BW_41: 10
BW_83: 11
BW_101: 12
BW_203: 13
BW_406: 14
BW_812: 15
- name: lora_cr
bit_width: 4
byte_positions:
- - 3
- '7:4'
description: Coding rate
optional: false
enum:
NO_CODING: 0
CR1_HAM_45_SI: 1
CR2_HAM_23_SI: 2
CR3_HAM_47_SI: 3
CR4_HAM_12_SI: 4
CR5_HAM_45_LI: 5
CR6_HAM_23_LI: 6
CR7_HAM_12_LI: 7
CR8_CC_23: 8
CR9_CC_12: 9
- name: ldro
bit_width: 2
byte_positions:
- - 3
- '1:0'
description: Low Data Rate Optimisation. Enable for high Spreading factor to increase tolerance to clock drift.
optional: false
enum:
'OFF': 0
'ON': 1
- name: lora_filter
bit_width: 2
byte_positions:
- - 3
- '3:2'
description: Configure extra filtering (for fractional bandwidth)
optional: false
enum:
'AUTO': 0
'CHF': 1
'DCC': 2
'DCC_F': 3
SetLoraPacketParams:
opcode: 545
description: Sets the packet parameters for the LoRa packets. FW configures according modem registers
parameters:
- name: pbl_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Preamble length in symbols
optional: false
- name: payload_len
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: 'Payload length in bytes. For explicit header mode: 0=accept any payload length, xx=accept only payload
length from 1 to xx. Payloads length of 0 or >xx are rejected and result in a header error irq'
optional: false
- name: header_type
bit_width: 1
byte_positions:
- - 5
- '2'
description: Header type selection
optional: false
enum:
EXPLICIT: 0
IMPLICIT: 1
- name: crc_en
bit_width: 1
byte_positions:
- - 5
- '1'
description: CRC enable
optional: false
- name: invert_iq
bit_width: 1
byte_positions:
- - 5
- '0'
description: 'IQ setup. Note: invert IQ for SX1280 bandwidths (800, 400, 200) are defined the other way round and will result in inverted chirps'
optional: false
SetLoraSynchTimeout:
opcode: 546
description: Configure LoRa modem to search for a detect for N symbols. N can be given as number, or as mantissa/exponent.
SymbolNum 0x00 means no timeout
parameters:
- name: symbols
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Number of symbols for timeout (format dependent)
optional: false
- name: timeout_format
bit_width: 1
byte_positions:
- - 3
- '0'
description: "Format selection for symbols parameter: either an integer number of symbol or a floating point representation (exponent on 3 MSB bits with mantissa on 5 LSB bits)
Exponent has a resolution of 2 with an offset meaning the mantisse is multiplied by 2^(n+1)"
optional: false
enum:
INTEGER: 0
FLOAT: 1
SetLoraSyncword:
opcode: 547
description: 'Sets the LoRa syncword. Default value is 0x12. Examples: Public Network: 0x34, Private Network: 0x12'
parameters:
- name: syncword
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: LoRa syncword
optional: false
ConfigLoraPreambleModulation:
opcode: 550
description: Configures the LoRa phase modulation demodulation during preamble feature. If enabled, for TX the preamble
will have a phase modulation overlayed to the LoRa modulation
parameters:
- name: pmod_en
bit_width: 1
byte_positions:
- - 2
- '7'
description: Enable preamble modulation
optional: false
- name: dram_ret
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: DRAM retention configuration
optional: false
- name: wakeup_time
bit_width: 16
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
description: Wakeup time
optional: false
- name: min_sleep_time
bit_width: 24
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
description: Minimum sleep time
optional: false
- name: err_thr
bit_width: 7
byte_positions:
- - 8
- '6:0'
description: Error threshold
optional: true
- name: min_sym
bit_width: 4
byte_positions:
- - 9
- '7:4'
description: Minimum symbols
optional: true
- name: detect_time_sym
bit_width: 4
byte_positions:
- - 9
- '3:0'
description: Detection time in symbols
optional: true
- name: start_offset
bit_width: 8
byte_positions:
- - 10
- '7:0'
description: Start offset
optional: true
- name: end_offset
bit_width: 8
byte_positions:
- - 11
- '7:0'
description: End offset
optional: true
SetLoraCadParams:
opcode: 551
description: Configure LoRa CAD mode parameters. Sets up Channel Activity Detection which searches for presence of
LoRa preamble symbols
parameters:
- name: nb_symbols
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: CAD length in symbols
optional: false
- name: pbl_any
bit_width: 1
byte_positions:
- - 3
- '4'
description: Detect any preamble length
optional: false
- name: pnr_delta
bit_width: 4
byte_positions:
- - 3
- '3:0'
description: Peak to noise ratio delta. Set to 8 for fast CAD reducing CAD time when there is no activity to detect.
optional: false
- name: exit_mode
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: Action taken after CAD
optional: false
enum:
CAD_ONLY: 0
CAD_RX: 1
CAD_LBT: 16
- name: timeout
bit_width: 24
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
description: Timeout for CAD operation
optional: false
- name: det_peak
bit_width: 8
byte_positions:
- - 8
- '7:0'
description: Detection peak threshold. Ratio between peak value and average, given in 3.4b fixed point format. Typical value are between 50 to 70.
optional: false
SetLoraCad:
opcode: 552
description: Set device into RX CAD mode (LoRa). The Channel Activity Detection searches for the presence of LoRa
preamble symbols. Parameters must be previously set using SetLoraCadParams
parameters: []
GetLoraRxStats:
opcode: 553
description: Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory
retention and the command ResetRxStats
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Total number of received packets
optional: false
- name: crc_error
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Number of received packets with a CRC error
optional: false
- name: header_error
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Number of received packets with a header error
optional: false
- name: detection
bit_width: 16
byte_positions:
- - 8
- '7:0'
- - 9
- '7:0'
description: Number of preamble detection
optional: false
- name: false_sync
bit_width: 16
byte_positions:
- - 10
- '7:0'
- - 11
- '7:0'
description: Number of false synchronizations
optional: false
GetLoraPacketStatus:
opcode: 554
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone or CadDone
irqs)
parameters: []
status_fields:
- name: crc
bit_width: 1
byte_positions:
- - 2
- '4'
description: CRC status from header (explicit mode) or configured setting (implicit mode). 1=CRC_ON, 0=CRC_OFF
optional: false
- name: coding_rate
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Coding rate from header (explicit mode) or configured setting (implicit mode)
optional: false
- name: pkt_length
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Length of the last packet received
optional: false
- name: snr_pkt
bit_width: 8
signed: true
byte_positions:
- - 4
- '7:0'
description: Estimation of SNR on last packet received. In two's complement format multiplied by 4. Actual SNR in
dB is snr_pkt/4
optional: false
- name: rssi_pkt
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 7
- '1'
description: Average over last packet received of RSSI. Actual signal power is –rssi_pkt/2 [dBm]
optional: false
- name: rssi_signal_pkt
bit_width: 9
byte_positions:
- - 6
- '7:0'
- - 7
- '0'
description: Estimation of RSSI of the LoRa signal (after despreading) on last packet received. Actual value is
-rssi_signal_pkt/2 [dBm]
optional: false
- name: detector
bit_width: 4
byte_positions:
- - 7
- '5:2'
description: Flags which detector(s) received the packet. 0001=main, 0010=side1, 0100=side2, 1000=side3. In normal
RX, only one flag is set. In CAD, all detector paths triggered are set
optional: false
SetLoraAddress:
opcode: 555
description: Sets the address for LoRa RX address filtering
parameters:
- name: addr_len
bit_width: 4
byte_positions:
- - 2
- '7:4'
description: Number of bytes (0..8) used in address filtering. 0=no address filtering
optional: false
enum:
ADDR_NONE: 0
ADDR_1_B: 1
ADDR_2_B: 2
ADDR_3_B: 3
ADDR_4_B: 4
ADDR_5_B: 5
ADDR_6_B: 6
ADDR_7_B: 7
ADDR_8_B: 8
- name: addr_pos
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Address position in byte in the frame (header not counted)
optional: false
- name: addr
bit_width: 64
le: true
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
- - 10
- '7:0'
description: Variable length address used to filter. 1-8 bytes can be sent, depending on addr_comp_len configured
optional: false
SetLoraSyncwordExtended:
opcode: 557
description: Extended version of the SetLoraSyncword command to set all 10bits of the syncword
parameters:
- name: sync1
bit_width: 5
byte_positions:
- - 2
- '4:0'
description: First 5 bits of syncword
optional: false
- name: sync2
bit_width: 5
byte_positions:
- - 3
- '4:0'
description: Second 5 bits of syncword
optional: false
SetLoraSideDetSyncwordExtended:
opcode: 558
description: Extended version of the SetLoraSideDetSyncword command to set all 10bits of the syncwords
parameters:
- name: sd1_sw1
bit_width: 5
byte_positions:
- - 2
- '4:0'
description: First 5 bits of side detector 1 syncword
optional: false
- name: sd1_sw2
bit_width: 5
byte_positions:
- - 3
- '4:0'
description: Second 5 bits of side detector 1 syncword
optional: false
- name: sd2_sw1
bit_width: 5
byte_positions:
- - 4
- '4:0'
description: First 5 bits of side detector 2 syncword
optional: false
- name: sd2_sw2
bit_width: 5
byte_positions:
- - 5
- '4:0'
description: Second 5 bits of side detector 2 syncword
optional: false
- name: sd3_sw1
bit_width: 5
byte_positions:
- - 6
- '4:0'
description: First 5 bits of side detector 3 syncword
optional: false
- name: sd3_sw2
bit_width: 5
byte_positions:
- - 7
- '4:0'
description: Second 5 bits of side detector 3 syncword
optional: false
SetLoraTxSync:
opcode: 541
description: Configures the LoRa Tx synchronization using dio
parameters:
- name: timing_sync_mode
bit_width: 2
byte_positions:
- - 2
- '7:6'
description: TX Sync function
optional: false
enum:
DISABLED: 0
INITIATOR: 1
RESPONDER: 2
- name: dio_num
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: DIO used to start the sync or output a sync (5 to 11)
optional: false
enum:
DIO5 : 5
DIO6 : 6
DIO7 : 7
DIO8 : 8
DIO9 : 9
DIO10 : 10
DIO11 : 11
SetLoraBlanking:
opcode: 0x021D
description: "Configures the LoRa Tx synchronization using dio"
parameters:
- name: thr_gain
bit_width: 2
byte_positions: [[2, "7:6"]]
description: "Symbol blanking gain"
optional: false
- name: thr
bit_width: 4
byte_positions: [[2, "5:2"]]
description: "Blocker threshold"
optional: false
- name: lvl_gain
bit_width: 2
byte_positions: [[2, "1:0"]]
description: "Blocker level gain"
optional: false
- name: detect
bit_width: 1
byte_positions: [[3, "4"]]
description: "Unable blanking during detection"
optional: false
- name: rssi_thr
bit_width: 4
byte_positions: [[3, "3:0"]]
description: "RSSI threshold for blocker detection"
optional: false
lrfhss:
commands:
LrFhssBuildFrame:
opcode: 598
description: Prepare LR-FHSS packet in the FIFO without sending it
parameters:
- name: sync_header_cnt
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: Number of sent sync headers (1, 2, 3, 4)
optional: false
- name: lrfhss_cr
bit_width: 4
byte_positions:
- - 2
- '7:4'
description: Coding rate selection
optional: false
enum:
CR5_6: 0
CR2_3: 1
CR1_2: 2
CR1_3: 3
- name: grid
bit_width: 4
byte_positions:
- - 3
- '7:4'
description: Frequency grid selection (25.39kHz or 3.91kHz)
optional: false
enum:
GRID_25: 0
GRID_4: 1
- name: hopping
bit_width: 4
byte_positions:
- - 4
- '3:0'
description: Hopping mode selection
optional: false
enum:
NO_HOPPING: 0
HOPPING: 1
TEST_PAYLOAD_ENCODED: 2
TEST_PA_RAMP: 3
- name: lrfhss_bw
bit_width: 4
byte_positions:
- - 4
- '7:4'
optional: false
description: 'Bandwidth occupied by hopping pattern'
enum:
BW_39_06: 0
BW_85_94: 1
BW_136_72: 2
BW_183_59: 3
BW_335_94: 4
BW_386_72: 5
BW_722_66: 6
BW_773_44: 7
BW_1523_4: 8
BW_1574_2: 9
- name: sequence
bit_width: 9
byte_positions:
- - 5
- '0'
- - 6
- '7:0'
description: Seed for hopping sequence (9 bits)
optional: false
- name: offset
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: Frequency offset. Allowed signed values [-26, 25] for Grid = 25.4KHz and [-4, 3] for Grid = 3.9KHz
signed: true
optional: false
SetLrFhssSyncWord:
opcode: 599
description: Sets the LR-FHSS syncword. Reset value is { 0x2C, 0x0F, 0x79, 0x95 }
parameters:
- name: syncword
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: LR-FHSS syncword
optional: false
default: 739211669
WriteLrFhssHoppingTable:
opcode: 0x0259
description: "Writes the LR-FHSS hopping table."
parameters:
- name: hop_en
bit_width: 1
byte_positions: [[2, "0"]]
description: "Enable hopping"
optional: false
- name: freq_hz
bit_width: 1
byte_positions: [[2, "7"]]
description: "Frequency provided in Hz instead of PLL step"
optional: false
- name: pkt_length
bit_width: 16
byte_positions: [[3, "7:0"], [4, "7:0"]]
description: "Packet length"
optional: false
- name: nb_used_freqs
bit_width: 8
byte_positions: [[5, "7:0"]]
description: "How many frequencies are used"
optional: false
- name: nb_hopping_blocks
bit_width: 8
byte_positions: [[6, "7:0"]]
description: "Number of hopping blocks"
optional: false
ook:
commands:
SetOokModulationParams:
opcode: 641
description: Sets the OOK modulation parameters
parameters:
- name: bitrate
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: 'Bit rate interpretation depends on bit 31. If bit 31=0: bit rate in bits/s is bitrate(30:0). If bit
31=1: bit rate in bits/s is bitrate(30:0)/256'
optional: false
- name: pulse_shape
bit_width: 4
byte_positions:
- - 6
- '3:0'
description: Pulse shaping filter (same as for FSK)
optional: false
enum:
NONE: 0
CUSTOM: 1
BT_0_3: 4
BT_0_5: 5
BT_0_7: 6
BT_1_0: 7
BT_2_0: 2
RC_0_3: 8
RC_0_5: 9
RC_0_7: 10
RC_1_0: 11
RRC_0_3: 12
RRC_0_4: 3
RRC_0_5: 13
RRC_0_7: 14
RRC_1_0: 15
- name: rx_bw
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: RX bandwidth (same as for FSK, but should not be larger than bitrate*5)
optional: false
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
- name: ook_depth
bit_width: 1
byte_positions:
- - 8
- '0'
description: Magnitude depth
optional: true
default: 0
enum:
FULL: 0
MAX_20_DB: 1
SetOokPacketParams:
opcode: 642
description: Sets the OOK packet parameters. It is recommended to have either whitening or manchester encoding enabled
for OOK
parameters:
- name: pre_len_tx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Preamble length for TX (same as FSK)
optional: false
- name: addr_comp
bit_width: 2
byte_positions:
- - 4
- '3:2'
description: Address comparison mode (same as for FSK)
optional: false
enum:
'OFF': 0
NODE: 1
NODE_BCAST: 2
- name: pkt_format
bit_width: 2
byte_positions:
- - 4
- '1:0'
description: Packet format
optional: false
enum:
FIXED_LENGTH: 0
VARIABLE_8BIT: 1
- name: pld_len
bit_width: 16
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
description: Payload length (same as for FSK)
optional: false
- name: crc
bit_width: 4
byte_positions:
- - 7
- '7:4'
description: CRC configuration (same as FSK)
optional: false
enum:
CRC_OFF: 0
CRC_1_BYTE: 1
CRC_2_BYTE: 2
CRC_3_BYTE: 3
CRC_4_BYTE: 4
CRC_1_BYTE_INV: 9
CRC_2_BYTE_INV: 10
CRC_3_BYTE_INV: 11
CRC_4_BYTE_INV: 12
- name: encoding
bit_width: 4
byte_positions:
- - 7
- '3:0'
description: Encoding configuration
optional: false
enum:
NONE: 0
MANCHESTER: 1
MANCHESTER_INV: 9
BIPHASE_MARK: 2
BIPHASE_MARK_INV: 10
SetOokCrcParams:
opcode: 643
description: Sets the OOK CRC parameters (same as for FSK)
parameters:
- name: polynom
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: CRC polynomial
optional: false
- name: init
bit_width: 32
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: CRC initialization value
optional: false
SetOokSyncWord:
opcode: 644
description: Sets the OOK syncword. Limited to 32bits max
parameters:
- name: syncword
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Syncword value (limited to 32 bits max)
optional: false
- name: bit_order
bit_width: 1
byte_positions:
- - 6
- '7'
description: Bit order for syncword transmission
optional: false
enum:
LSB_FIRST: 0
MSB_FIRST: 1
- name: nb_bits
bit_width: 7
byte_positions:
- - 6
- '6:0'
description: Number of bits in syncword
optional: false
SetOokAddress:
opcode: 645
description: Sets the OOK address (same as for FSK)
parameters:
- name: addr_node
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Node address
optional: false
- name: addr_bcast
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Broadcast address
optional: false
GetOokRxStats:
opcode: 0x0286
description: "Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory retention and the command ResetRxStats"
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions: [[2, "7:0"], [3, "7:0"]]
description: "Total number of received packets"
optional: false
- name: crc_error
bit_width: 16
byte_positions: [[4, "7:0"], [5, "7:0"]]
description: "Number of received packets with a CRC error"
optional: false
- name: len_error
bit_width: 16
byte_positions: [[6, "7:0"], [7, "7:0"]]
description: "Number of packets with a length error"
optional: false
- name: pbl_det
bit_width: 16
byte_positions: [[8, "7:0"], [9, "7:0"]]
description: "Number of detections"
optional: true
- name: sync_ok
bit_width: 16
byte_positions: [[10, "7:0"], [11, "7:0"]]
description: "Number of good found syncword"
optional: true
- name: sync_fail
bit_width: 16
byte_positions: [[12, "7:0"], [13, "7:0"]]
description: "Number of failed syncword"
optional: true
- name: timeout
bit_width: 16
byte_positions: [[14, "7:0"], [15, "7:0"]]
description: "Number of timeouts"
optional: true
GetOokPacketStatus:
opcode: 647
description: Gets the status of the last received OOK packet. Status is updated at the end of a reception (RxDone
irq), but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: pkt_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 6
- '2'
description: Average RSSI over the last packet received. Actual signal power is –rssi_avg/2 (dBm)
optional: false
- name: rssi_high
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 6
- '0'
description: RSSI value of high bits. Actual signal power is –rssi_high/2 (dBm)
optional: false
- name: addr_match_bcast
bit_width: 1
byte_positions:
- - 6
- '5'
description: Broadcast address match indication
optional: false
- name: addr_match_node
bit_width: 1
byte_positions:
- - 6
- '4'
description: Node address match indication
optional: false
- name: lqi
bit_width: 8
byte_positions:
- - 7
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
SetOokDetector:
opcode: 648
description: Configures the OOK detection. This API is for RX only. Detection pattern for TX has directly to be put
into the TX FIFO
parameters:
- name: preamble_pattern
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: 'The detection pattern. The LSBit is the first bit received. The pattern''s 2 least significant bits
must be either 01 or 10. Examples: ADS-B=0x0285, RTS=0x1E, INOVA=0x2A6D'
optional: false
- name: pattern_length
bit_width: 4
byte_positions:
- - 4
- '3:0'
description: 'Pattern length - 1 (i.e. for a pattern length of 2, set this to 1). The actual pattern length must
be of even length (i.e. the argument must be odd). Examples: ADS-B=15, RTS=7, INOVA=15'
optional: false
- name: pattern_num_repeats
bit_width: 5
byte_positions:
- - 5
- '4:0'
description: 'Number of repetitions of the preamble pattern. Used to control the timeout for SyncWord search. Max
value (31) disables the synchronization timeout. Examples: ADS-B=0, RTS=1, INOVA=18'
optional: false
- name: sw_is_raw
bit_width: 1
byte_positions:
- - 6
- '5'
description: 'Syncword encoding mode: 0=syncword is encoded same way as the payload, 1=syncword is not encoded'
optional: false
- name: sfd_kind
bit_width: 1
byte_positions:
- - 6
- '4'
description: Start of frame delimiter kind. Set to 0 for ADS-B, RTS and INOVA
optional: false
enum:
FALLING_EDGE: 0
RISING_EDGE: 1
- name: sfd_length
bit_width: 4
byte_positions:
- - 6
- '3:0'
description: 'Length in bits of the SFD. Examples: RTS=9, ADS-B=0, INOVA=0'
optional: false
SetOokWhiteningParams:
opcode: 649
description: Configure the whitening for OOK packets. Setting a polynomial of 0 will disable the whitening. It is
recommended to have either whitening or manchester encoding enabled for OOK
parameters:
- name: bit_idx
bit_width: 4
byte_positions:
- - 2
- '7:4'
description: Index of the LFSR bit used to whitened data
optional: false
- name: polynom
bit_width: 12
byte_positions:
- - 2
- '3:0'
- - 3
- '7:0'
description: 12-bit whitening polynomial
optional: false
- name: init
bit_width: 12
byte_positions:
- - 4
- '3:0'
- - 5
- '7:0'
description: 12-bit whitening init value
optional: false
ranging:
commands:
SetRangingAddr:
opcode: 632
description: Sets the ranging Id for this device (used by the responder)
parameters:
- name: addr
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: 32-bit ranging address for this device
optional: false
default: 25
- name: check_length
bit_width: 3
byte_positions:
- - 6
- '2:0'
description: Defines how many of the 4 bytes of the address are checked against the request address sent by the
initiator. Checked bytes are the LSB if check_length<4
enum:
ADDR_8B: 1
ADDR_16B: 2
ADDR_24B: 3
ADDR_32B: 4
SetRangingReqAddr:
opcode: 633
description: Sets the ranging Id for the requests (used by the initiator)
parameters:
- name: req_addr
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: 32-bit request address for ranging requests
optional: false
default: 25
GetRangingResult:
opcode: 634
description: Gets the ranging result (For Master or spy only). Based on type parameter, different results are returned.
The Distance [m] = rng1*150/(2^12*LoraBW), with LoraBW in MHz. For extended mode type=1 results, rng1 and rng2 values
should be averaged to get a distance estimation unaffected by Doppler effect
parameters:
- name: ranging_res_kind
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Type of ranging result to return
optional: false
enum:
LATEST_RAW: 0
EXTENDED_RAW: 1
GAIN_STEPS: 2
status_fields:
- name: rng
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: Ranging measurement value. Distance in meter is given by rng*150/(2^12*Bandwidth),
signed: true
optional: false
- name: rssi
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: RSSI value
optional: false
GetRangingExtResult:
opcode: -1
parameters: []
status_fields:
- name: rng1
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: First ranging measurement value
signed: true
optional: false
- name: rssi1
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: RSSI value for first ranging measurement
optional: false
- name: rng2
bit_width: 24
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
description: Second ranging measurement value
signed: true
optional: false
GetRangingGainStep:
opcode: -1
parameters: []
status_fields:
- name: gain1
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Radio gain used for first measurement
optional: false
- name: gain2
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Radio gain used for second measurement (if available)
optional: false
SetRangingTxRxDelay:
opcode: 635
description: Sets the Tx->Rx delay for the ranging calibration
parameters:
- name: delay
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Tx to Rx delay for ranging calibration
optional: false
SetRangingParams:
opcode: 636
description: Sets the ranging specific parameters
parameters:
- name: extended
bit_width: 1
byte_positions:
- - 2
- '7'
description: 'Enable extended mode (second exchange with inverted direction'
optional: false
- name: spy_mode
bit_width: 1
byte_positions:
- - 2
- '6'
description: 'Enable spy mode on the next set_rx. In this mode, the radio acts like
a normal device in responder mode and will send a response to any request for its address,
but will also listen to requests/responses pairs not addressed to it to measure time-of-flight between those two devices'
optional: false
- name: nb_symbols
bit_width: 6
byte_positions:
- - 2
- '5:0'
description: Sets the number of chirps sent in the responses
optional: false
GetRangingStats:
opcode: 637
description: 'Gets the ranging counters for ranging exchanges. Statistics are reset on a POR, sleep without memory
retention and the command ResetRxStats. Note: for extended ranging mode, the counters are incremented twice, once
for each request/response'
parameters: []
status_fields:
- name: exchange_valid
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Number of valid ranging exchanges
optional: false
- name: request_valid
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Number of valid ranging requests
optional: false
- name: response_done
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Number of completed responses
optional: false
- name: timeout
bit_width: 16
byte_positions:
- - 8
- '7:0'
- - 9
- '7:0'
description: 'Number of timeouts (For Initiator role: no response received from responder; For Responder role: no extended
request received in extended mode)'
optional: false
- name: request_discarded
bit_width: 16
byte_positions:
- - 10
- '7:0'
- - 11
- '7:0'
description: Number of discarded requests
optional: false
regmem:
commands:
WriteRegMem32:
opcode: 260
description: Writes a block of 32-bit words in register/memory space starting at a specific address. The address is
auto-incremented after each data word so that data is stored in contiguous register/memory locations. Address must
be 32-bit aligned and data length must be a multiple of 4. Maximum 32 words
parameters:
- name: addr
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: 24-bit starting address (must be 32-bit aligned)
optional: false
- name: data
bit_width: 32
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
description: Variable length array of 32-bit data words to write (1-64 words, each 4 bytes)
optional: false
WriteRegMemMask32:
opcode: 261
description: Read-Modify-Writes data at given register/memory address. Only the masked bits (Mask bits = 1) of a single
32-bit word are modified. Address must be 32-bit aligned
parameters:
- name: addr
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: 24-bit register/memory address (must be 32-bit aligned)
optional: false
- name: mask
bit_width: 32
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
description: 32-bit mask indicating which bits to modify (1=modify, 0=preserve)
optional: false
- name: data
bit_width: 32
byte_positions:
- - 9
- '7:0'
- - 10
- '7:0'
- - 11
- '7:0'
- - 12
- '7:0'
description: 32-bit data to write (only masked bits will be applied)
optional: false
ReadRegMem32:
opcode: 262
description: Reads a block of 32-bit words in register/memory space starting at a specific address. The address is
auto-incremented after each data word so that data is read from contiguous register locations. Address must be 32-bit
aligned. Maximum 64 words
parameters:
- name: addr
bit_width: 24
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
description: 24-bit starting address (must be 32-bit aligned)
optional: false
- name: len
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: Number of 32-bit words to read (maximum 64)
optional: false
status_fields:
- name: value
bit_width: 32
byte_positions: [[2, "7:0"], [3, "7:0"], [4, "7:0"], [5, "7:0"]]
description: Variable length array of 32-bit data words read from memory (len words, each 4 bytes)
optional: false
system:
commands:
GetStatus:
opcode: 256
description: Returns status of device. If the previous command was not a read command, returns the status register.
If previous transaction was a read command, returns the result of the read command. Also clears the reset status
returned in the Stat variable
parameters: []
status_fields:
- name: stat
bit_width: 16
byte_positions:
- - 0
- '7:0'
- - 1
- '7:0'
description: Status register with command status, interrupt status, reset source, and chip mode
optional: false
- name: intr
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: IRQ status register
optional: false
GetVersion:
opcode: 257
description: Returns version of firmware
parameters: []
status_fields:
- name: major
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Firmware major version
optional: false
- name: minor
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Firmware minor version
optional: false
GetErrors:
opcode: 272
description: Returns current pending errors that occurred since the last ClearErrors() call, or the startup of the
circuit. It is possible to generate an Irq on DIO when an error occurs
parameters: []
status_fields:
- name: hf_xosc_start
bit_width: 1
byte_positions:
- - 3
- '0'
description: High frequency xosc did not start correctly. This is most likely a hardware problem, which might be
resolved by doing a reset.
optional: false
- name: lf_xosc_start
bit_width: 1
byte_positions:
- - 3
- '1'
description: Low frequency xosc did not start correctly. This is either a hardware problem, which might be resolved
by doing a reset, or there is a TCXO instead which must be enabled through SetTcxoMode command.
optional: false
- name: pll_lock
bit_width: 1
byte_positions:
- - 3
- '2'
description: The pll did not lock. This can come from too high or too low a frequency, or if the pll was not calibrated.
To fix it try redoing a pll calibration, or using other frequencies
optional: false
- name: lf_rc_calib
bit_width: 1
byte_positions:
- - 3
- '3'
description: Error during calibration of the low frequency RC, thus no calibration is available. To fix it try redoing
a calibration. Might come from a hardware issue.
optional: false
- name: hf_rc_calib
bit_width: 1
byte_positions:
- - 3
- '4'
description: Error during calibration of the high frequency RC, thus no calibration is available. To fix it try
redoing a calibration. Might come from a hardware issue.
optional: false
- name: pll_calib
bit_width: 1
byte_positions:
- - 3
- '5'
description: Error during calibration of the PLL (max-min, bank estim, type2), thus no calibration is available.
To fix it redo the pll calibration. Might come from a hardware issue.
optional: false
- name: aaf_calib
bit_width: 1
byte_positions:
- - 3
- '6'
description: Error during calibration of the aaf (anti-aliasing filter), thus no calibration is available. To fix
it try redoing a calibration. Might come from a hardware issue.
optional: false
- name: img_calib
bit_width: 1
byte_positions:
- - 3
- '7'
description: Error during calibration of the image rejection (IQ comp), thus no calibration is available. To fix
it redo the image calibration.
optional: false
- name: chip_busy
bit_width: 1
byte_positions:
- - 2
- '0'
description: Error asserted when a DIO TX or RX trigger could not be executed because chip was busy changing mode.
optional: false
- name: rxfreq_no_fe_cal
bit_width: 1
byte_positions:
- - 2
- '1'
description: Front End (Image rejection, PPF, ADC offset) calibration was not available for rx operation with specified
rf frequency. To fix this do the front end calibration for specific rx rf frequency.
optional: false
- name: meas_unit_adc_calib
bit_width: 1
byte_positions:
- - 2
- '2'
description: Error during calibration of the measure unit adc, thus no calibration is available. To fix it try redoing
a calibration. Might come from a hardware issue.
optional: false
- name: pa_offset_calib
bit_width: 1
byte_positions:
- - 2
- '3'
description: Error during calibration of the PA offset, thus no calibration is available. To fix it try redoing
a calibration. Might come from a hardware issue.
optional: false
- name: ppf_calib
bit_width: 1
byte_positions:
- - 2
- '4'
description: Error during calibration of the PPF (Poly-Phase Filter), thus no calibration is available. To fix it
try redoing a calibration. Might come from a hardware issue.
optional: false
- name: src_calib
bit_width: 1
byte_positions:
- - 2
- '5'
description: Error during calibration of the SRC (Self Reception Cancelation), thus no calibration is available.
To fix it try redoing a calibration. Might come from a hardware issue.
ClearErrors:
opcode: 273
description: Clears all error flags in the status. The flags cannot be cleared individually. Calling ClearErrors will
not clear the Error IRQ - the IRQ has to be cleared explicitly with the ClearIrq command
parameters: []
SetDioFunction:
opcode: 274
description: Configure the functionality of the freely configurable DIOs, as well as the pull-up/down configuration
for sleep modes. On DIO5, only DIO_SLEEP_PULL_UP is accepted. DIO5/6 have pull-up by default
parameters:
- name: dio_num
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: DIO number (allowed values are 5-11)
optional: false
enum:
DIO5 : 5
DIO6 : 6
DIO7 : 7
DIO8 : 8
DIO9 : 9
DIO10 : 10
DIO11 : 11
- name: dio_func
bit_width: 4
byte_positions:
- - 3
- '7:4'
description: DIO function selection
optional: false
enum:
NONE: 0
IRQ: 1
RF_SWITCH: 2
GPIO_OUTPUT_LOW: 5
GPIO_OUTPUT_HIGH: 6
HF_CLK_OUT: 7
LF_CLK_OUT: 8
TX_TRIGGER: 9
RX_TRIGGER: 10
- name: pull_drive
bit_width: 4
byte_positions:
- - 3
- '3:0'
description: Pull-up/down configuration for sleep mode. DIO_PULL_AUTO means if DIO value in Standby was '1', it
will be pulled-up, if '0' it will be pulled-down
optional: false
enum:
PULL_NONE: 0
PULL_DOWN: 1
PULL_UP: 2
PULL_AUTO: 3
SetDioRfSwitchConfig:
opcode: 275
description: Configure the value of the specified DIO pin when configured as RF switch with the SetDioFunction command
parameters:
- name: dio_num
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: DIO number (allowed values are 5-11)
optional: false
enum:
DIO5 : 5
DIO6 : 6
DIO7 : 7
DIO8 : 8
DIO9 : 9
DIO10 : 10
DIO11 : 11
- name: tx_hf
bit_width: 1
byte_positions:
- - 3
- '4'
description: DIO value when in TX HF mode
optional: false
- name: rx_hf
bit_width: 1
byte_positions:
- - 3
- '3'
description: DIO value when in RX HF mode
optional: false
- name: tx_lf
bit_width: 1
byte_positions:
- - 3
- '2'
description: DIO value when in TX LF mode
optional: false
- name: rx_lf
bit_width: 1
byte_positions:
- - 3
- '1'
description: DIO value when in RX LF mode
optional: false
- name: standby
bit_width: 1
byte_positions:
- - 3
- '0'
description: DIO value when in standby mode
optional: false
ClearFifoIrqFlags:
opcode: 276
description: Clears specific fifo irq flags
parameters:
- name: rx_fifo_flags_to_clear
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: RX FIFO flags to clear
optional: false
- name: tx_fifo_flags_to_clear
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: TX FIFO flags to clear
optional: false
SetDioIrqConfig:
opcode: 277
description: Configure IRQs which assert DIO pin
parameters:
- name: dio_num
bit_width: 4
byte_positions:
- - 2
- '3:0'
description: DIO number (allowed values are 5-11)
optional: false
enum:
DIO5 : 5
DIO6 : 6
DIO7 : 7
DIO8 : 8
DIO9 : 9
DIO10 : 10
DIO11 : 11
- name: irqs
bit_width: 32
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
description: IRQ mask to enable on the specified DIO
optional: false
ClearIrq:
opcode: 278
description: Clear pending irqs
parameters:
- name: irqs
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: IRQs to clear
optional: false
GetAndClearIrq:
opcode: 279
description: Read out the pending IRQs and clear all pending IRQs
parameters: []
status_fields:
- name: intr
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Current pending IRQ status (cleared after reading)
optional: false
ConfigLfClock:
opcode: 280
description: Configures the used Low Frequency clock
parameters:
- name: lf_clock
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: LF clock source selection
optional: false
enum:
RC: 0
XTAL: 1
DIO11: 2
ConfigClkOutputs:
opcode: 281
description: Configure LF and HF clock configuration for DIO output
parameters:
- name: clk_scaling
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: 32Mhz clock division factor
optional: false
enum:
DIV_1: 0
DIV_2: 1
DIV_4: 2
DIV_8: 3
DIV_16: 4
DIV_32: 5
DIV_64: 6
DIV_128: 7
DIV_256: 8
DIV_512: 9
DIV_1024: 10
DIV_2048: 11
DIV_4096: 12
DIV_8192: 13
DIV_16384: 14
DIV_32768: 15
ConfigFifoIrq:
opcode: 282
description: Configure which FIFO status flags generate FIFO IRQs as well as the threshold levels
parameters:
- name: rx_fifo_irq_enable
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: RX FIFO IRQ enable flags (bit0=FifoEmpty, bit1=FifoLow, bit2=FifoHigh, bit3=FifoFull, bit4=FifoOverflow,
bit5=FifoUnderflow)
optional: false
- name: tx_fifo_irq_enable
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: TX FIFO IRQ enable flags (same bit mapping as RX)
optional: false
- name: rx_high_threshold
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Threshold level for RX FIFO high flag
optional: true
- name: tx_low_threshold
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Threshold level for TX FIFO low flag
optional: true
- name: rx_low_threshold
bit_width: 16
byte_positions:
- - 8
- '7:0'
- - 9
- '7:0'
description: Threshold level for RX FIFO low flag
optional: true
- name: tx_high_threshold
bit_width: 16
byte_positions:
- - 10
- '7:0'
- - 11
- '7:0'
description: Threshold level for TX FIFO high flag
optional: true
GetFifoIrqFlags:
opcode: 283
description: Returns all FIFO flags that have been triggered since the last flags clear. It does not depend on enabled
flags for the IRQs
parameters: []
status_fields:
- name: rx_fifo_flags
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: RX FIFO flags status
optional: false
- name: tx_fifo_flags
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: TX FIFO flags status
optional: false
GetRxFifoLevel:
opcode: 284
description: Read out the RX FIFO level in bytes
parameters: []
status_fields:
- name: level
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: RX FIFO level in bytes
optional: false
GetTxFifoLevel:
opcode: 285
description: Read out the TX FIFO level in bytes
parameters: []
status_fields:
- name: level
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: TX FIFO level in bytes
optional: false
ClearRxFifo:
opcode: 286
description: Clears the RX FIFO
parameters: []
ClearTxFifo:
opcode: 287
description: Clears the TX FIFO
parameters: []
SetRegMode:
opcode: 289
description: Configures the SIMO mode and ramp times
parameters:
- name: simo_usage
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: SIMO usage configuration
optional: false
enum:
'OFF': 0
ALL: 1
AUTO: 2
VDCC: 3
- name: ramp_time_rc2ru_unit
bit_width: 2
byte_positions:
- - 3
- '6:5'
description: Ramp time RC to RU resolution
optional: true
enum:
RES_2U: 0
RES_4U: 1
RES_8U: 2
RES_16U: 3
- name: ramp_time_rc2ru
bit_width: 5
byte_positions:
- - 3
- '4:0'
description: Ramp time RC to RU
optional: true
default: 31
- name: ramp_time_tx2ru_unit
bit_width: 2
byte_positions:
- - 4
- '6:5'
description: Ramp time TX to RU resolution
optional: true
enum:
RES_2U: 0
RES_4U: 1
RES_8U: 2
RES_16U: 3
- name: ramp_time_tx2ru
bit_width: 5
byte_positions:
- - 4
- '4:0'
description: Ramp time TX to RU
optional: true
default: 6
- name: ramp_time_ru2rc_unit
bit_width: 2
byte_positions:
- - 5
- '6:5'
description: Ramp time RU to RC resolution
optional: true
enum:
RES_2U: 0
RES_4U: 1
RES_8U: 2
RES_16U: 3
- name: ramp_time_ru2rc
bit_width: 5
byte_positions:
- - 5
- '4:0'
description: Ramp time RU to RC
optional: true
default: 10
- name: ramp_time_ramp_down_unit
bit_width: 2
byte_positions:
- - 6
- '6:5'
description: Ramp down time
optional: true
enum:
RES_2U: 0
RES_4U: 1
RES_8U: 2
RES_16U: 3
- name: ramp_time_ramp_down
bit_width: 5
byte_positions:
- - 6
- '4:0'
description: Ramp down time
optional: true
default: 1
Calibrate:
opcode: 290
description: Calibrates the requested blocks defined by the blocks_to_calibrate parameter. Will work in any mode of
the chip. On exit the chip will be in Standby RC
parameters:
- name: pa_offset
bit_width: 1
byte_positions:
- - 2
- '6'
description: PA Offset
optional: false
- name: meas_unit
bit_width: 1
byte_positions:
- - 2
- '4'
description: Measurement Unit
optional: false
- name: aaf
bit_width: 1
byte_positions:
- - 2
- '3'
description: Anti-alias filter
optional: false
- name: pll
bit_width: 1
byte_positions:
- - 2
- '2'
description: PLL
optional: false
- name: hf_rc
bit_width: 1
byte_positions:
- - 2
- '1'
description: HF RC
optional: false
- name: lf_rc
bit_width: 1
byte_positions:
- - 2
- '0'
description: LF RC
optional: false
CalibFe:
opcode: 291
description: Launches all Front End calibrations (ADC Offset, PPF, Image) at the given frequencies. Will not work
if device is in Rx or Tx mode
parameters:
- name: freq1
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Frequency 1 in 4MHz steps (MSB=0 for LF path, MSB=1 for HF path)
optional: false
- name: freq2
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Frequency 2 in 4MHz steps (MSB=0 for LF path, MSB=1 for HF path)
optional: false
- name: freq3
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Frequency 3 in 4MHz steps (MSB=0 for LF path, MSB=1 for HF path)
optional: false
GetVBat:
opcode: 292
description: Measure and return current VBAT value
parameters:
- name: vbat_format
bit_width: 1
byte_positions:
- - 2
- '3'
description: Format of returned value
optional: false
enum:
RAW: 0
MILLIVOLTS: 1
- name: adc_res
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: ADC resolution for measurement
optional: false
enum:
RES_8BIT: 0
RES_9BIT: 1
RES_10BIT: 2
RES_11BIT: 3
RES_12BIT: 4
RES_13BIT: 5
status_fields:
- name: vbat_raw
bit_width: 13
byte_positions:
- - 2
- '4:0'
- - 3
- '7:0'
description: Raw VBAT measurement (format=0)
optional: false
- name: vbat_mv
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: VBAT in millivolts (format=1)
optional: false
GetTemp:
opcode: 293
description: Measure and return temperature value
parameters:
- name: temp_src
bit_width: 2
byte_positions:
- - 2
- '5:4'
description: Temperature sensor source
optional: false
enum:
VBE: 0
XOSC: 1
NTC: 2
- name: temp_format
bit_width: 1
byte_positions:
- - 2
- '3'
description: Format of returned value
optional: false
enum:
RAW: 0
CELSIUS: 1
- name: adc_res
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: ADC resolution for measurement
optional: false
enum:
RES_8BIT: 0
RES_9BIT: 1
RES_10BIT: 2
RES_11BIT: 3
RES_12BIT: 4
RES_13BIT: 5
status_fields:
- name: temp_celsius
bit_width: 13
signed: true
byte_positions:
- - 2
- '7:0'
- - 3
- '7:3'
description: Temperature in degrees Celsius (format=1)
optional: false
GetRandomNumber:
opcode: 294
description: Return a 32-bit random number
parameters:
- name: source
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: Entropy source selection (bit 0=PLL, bit 1=ADC)
optional: true
default: 3
status_fields:
- name: random_number
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: 32-bit random number
optional: false
SetSleep:
opcode: 295
description: Put device in sleep mode
parameters:
- name: clk_32k_en
bit_width: 1
byte_positions:
- - 2
- '0'
description: Enable LF clock
optional: false
- name: ret_en
bit_width: 4
byte_positions:
- - 2
- '4:1'
description: Enable Retention for ram0 to 3 (1-3 are for the patch ram)
optional: false
- name: sleep_time
bit_width: 32
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
description: Optional sleep time (required when clk_32k_en is enabled)
optional: true
SetStandby:
opcode: 296
description: Put device in standby mode (XOSC or RC)
parameters:
- name: standby_mode
bit_width: 1
byte_positions:
- - 2
- '0'
description: Standby mode selection
optional: false
enum:
RC: 0
XOSC: 1
SetFs:
opcode: 297
description: Put device in Frequency Synthesis Mode
parameters: []
SetAdditionalRegToRetain:
opcode: 298
description: Specify address of additional register to save for sleep modes with retention
parameters:
- name: slot
bit_width: 5
byte_positions:
- - 2
- '4:0'
description: Slot index (0-31)
optional: false
- name: addr
bit_width: 24
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: Register address to retain
optional: false
GetAndClearFifoIrqFlags:
opcode: 302
description: Read out and clear FIFO flags that generated FIFO IRQs
parameters: []
status_fields:
- name: rx_fifo_flags
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: RX FIFO flags
optional: false
- name: tx_fifo_flags
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: TX FIFO flags
optional: false
SetEolConfig:
opcode: 304
description: Enable/disable end of life detection and setup trigger voltage
parameters:
- name: eol_trim
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: Threshold voltage for EOL interrupt
optional: false
enum:
EOL_1_60: 0
EOL_1_67: 1
EOL_1_74: 2
EOL_1_80: 3
EOL_1_88: 4
EOL_1_95: 5
EOL_2_00: 6
EOL_2_10: 7
- name: enable
bit_width: 1
byte_positions:
- - 2
- '3'
description: Enable or disable EOL detection
optional: false
SetTcxoMode:
opcode: 288
description: Configure the chip to use a TCXO
parameters:
- name: tcxo_voltage
bit_width: 3
byte_positions: [[2, "2:0"]]
description: Control Voltage provided to the TCXO
optional: false
enum:
TCXO_1V6: 0
TCXO_1V7: 1
TCXO_1V8: 2
TCXO_2V2: 3
TCXO_2V4: 4
TCXO_2V7: 5
TCXO_3V0: 6
TCXO_3V3: 7
- name: start_time
bit_width: 32
byte_positions: [[3, "7:0"],[4, "7:0"],[5, "7:0"],[6, "7:0"]]
description: Timeout before checking XoscReady
optional: false
SetXoscCpTrim:
opcode: 305
description: Configure XOSC foot capacitor trim
parameters:
- name: xta
bit_width: 6
byte_positions:
- - 2
- '5:0'
description: Trimming of foot capacitor on XTA pin (0=11.3pF, max=47=33.4pF, 1LSB=0.47pF)
optional: false
- name: xtb
bit_width: 6
byte_positions:
- - 3
- '5:0'
description: Trimming of foot capacitor on XTB pin (0=10.1pF, max=47=32.2pF, 1LSB=0.47pF)
optional: false
- name: delay_us
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: Additional delay in us for XTAL starting (RC->XOSC mode)
optional: true
default: 0
SetTempCompCfg:
opcode: 306
description: Configure temperature compensation mode for TX and RX
parameters:
- name: ntc_en
bit_width: 1
byte_positions:
- - 2
- '2'
description: Use external NTC to measure crystal temperature
optional: false
- name: comp_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: Temperature compensation mode
optional: false
enum:
DISABLED: 0
RELATIVE: 1
ABSOLUTE: 2
SetNtcParams:
opcode: 307
description: Configure NTC parameters
parameters:
- name: ntc_r_ratio
bit_width: 10
byte_positions:
- - 2
- '1:0'
- - 3
- '7:0'
description: Resistance bias ratio (10.9b format) - ratio between resistance bias and NTC resistance at 25°C
optional: false
- name: ntc_beta
bit_width: 12
byte_positions:
- - 4
- '3:0'
- - 5
- '7:0'
description: Beta coefficient (unit is 2 Kelvin)
optional: false
- name: delay
bit_width: 8
byte_positions:
- - 6
- '7:0'
description: First order time delay coefficient
optional: false
wisun:
commands:
SetWisunMode:
opcode: 624
description: Configure the wisun mode (1a, 1b, 2a, 2b, 3, 4a, 4b, 5)
parameters:
- name: wisun_mode
bit_width: 3
byte_positions:
- - 2
- '2:0'
description: WISun mode selection
optional: false
enum:
MODE_1A: 0
MODE_1B: 1
MODE_2A: 2
MODE_2B: 3
MODE_3: 4
MODE_4A: 5
MODE_4B: 6
MODE_5: 7
- name: rx_bw
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: RX bandwidth. 0xFF means bandwidth is automatically set by the firmware
optional: false
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
SetWisunPacketParams:
opcode: 625
description: Configure the wisun packet parameters
parameters:
- name: wisun_fcs_len
bit_width: 1
byte_positions:
- - 2
- '5'
description: FCS selection for TX
optional: false
enum:
FCS_32B: 0
FCS_16B: 1
- name: whitening_en
bit_width: 1
byte_positions:
- - 2
- '4'
description: Whitening enable
- name: crc_hw
bit_width: 1
byte_positions:
- - 2
- '3'
description: Set false when CRC is handled by host
optional: false
- name: mode_switch_tx
bit_width: 1
byte_positions:
- - 2
- '2'
description: Packet is a header-only Mode-Switch
optional: false
- name: wisun_fec
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: FEC encoding selection for TX packet
optional: false
enum:
NONE: 0
NRNSC: 1
RSC: 2
RSC_INTLVR: 3
- name: frame_len_tx
bit_width: 16
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
description: Length of frame for TX for normal packets, or header value for mode_switch packets
optional: false
- name: pbl_len_tx
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: Length of transmitted preamble
optional: false
- name: pbl_detect
bit_width: 8
byte_positions:
- - 6
- '7:0'
description: 'Detection on preamble (16,32), or on syncword (0), or automatic (0xff): always 24bits'
optional: false
default: 255
GetWisunPacketStatus:
opcode: 627
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but syncword_idx and rssi_sync are already updated on SyncWordValid irq
parameters: []
status_fields:
- name: header
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Raw 16bit received header
optional: false
- name: pkt_len
bit_width: 16
byte_positions:
- - 4
- '7:0'
- - 5
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 6
- '7:0'
- - 9
- '2'
description: Average over last packet received of RSSI. Actual signal power is –rssi_avg/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 7
- '7:0'
- - 9
- '0'
description: Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: syncword_idx
bit_width: 1
byte_positions:
- - 8
- '7'
description: Index of detected syncword (0/1)
optional: false
- name: lqi
bit_width: 8
byte_positions:
- - 10
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
SetWisunPacketLen:
opcode: 628
description: Sets length of frame for TX for normal packets, or header value for mode_switch packets
parameters:
- name: frame_len_tx
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Frame length for TX for normal packets, or header value for mode_switch packets
optional: false
GetWisunRxStats:
opcode: 0x026C
description: Get the Rx statistics for WiSUN packets
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions: [[2, "7:0"], [3, "7:0"]]
description: Total number of received packets
- name: crc_error
bit_width: 16
byte_positions: [[4, "7:0"], [5, "7:0"]]
description: Number of received packets with a CRC error
- name: len_error
bit_width: 16
byte_positions: [[6, "7:0"], [7, "7:0"]]
description: Number of packets with a length error
zigbee:
commands:
SetZigbeeParams:
opcode: 671
description: Sets the parameters for Zigbee packets
parameters:
- name: zigbee_mode
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: The modulation and data rate to be used for RX and TX
optional: false
enum:
OQPSK_250: 0
OQPSK_100: 1
OQPSK_25: 2
BPSK_20: 3
BPSK_40: 4
- name: rx_bw
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Bandwidth in RX mode, or 0xFF to automatically select bandwidth depending on selected mode
optional: false
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
- name: pld_len
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: 'In RX: maximum accepted MPDU size. In TX: total bytes to transmit. Maximum value: 127'
optional: false
- name: pbl_len_tx
bit_width: 16
byte_positions:
- - 5
- '7:0'
- - 6
- '7:0'
description: Size in bits of the preamble to send. Typically set to 32
optional: false
- name: addr_filt_en
bit_width: 1
byte_positions:
- - 7
- '2'
description: Address filtering enable/disable. Addresses are set using the SetZigbeeAddress command
optional: false
- name: fcs_mode
bit_width: 1
byte_positions:
- - 7
- '0'
description: Set the Rx/Tx mode for FCS (16 bits)
optional: false
enum:
FCS_ON: 0
FCS_IN_FIFO: 1
GetZigbeePacketStatus:
opcode: 673
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: rx_header
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: Content of the received PHY header (the frame length)
optional: false
- name: pkt_len
bit_width: 16
byte_positions:
- - 3
- '7:0'
- - 4
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 7
- '2'
description: RSSI average over the last packet received. Actual signal power is –rssi_pkt/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 6
- '7:0'
- - 7
- '0'
description: Latched RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: lqi
bit_width: 8
byte_positions:
- - 8
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
SetZigbeePacketLen:
opcode: 674
description: Sets the zigbee packet length without the need to call the full SetZigbeeParams command (slower to run)
parameters:
- name: pld_len
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: 'In RX: maximum accepted MPDU size. In TX: total bytes to transmit. Maximum value: 127'
optional: false
SetZigbeeAddress:
opcode: 675
description: Sets the Zigbee addresses for filtering in Rx. Frames that don't match the addresses raise an address
error IRQ. When a packet is received, the destination address and PAN ID are both checked. Broadcast addresses are
matched as well. Multi-cast is not supported or filtered
parameters:
- name: long_dest_addr
bit_width: 64
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
- - 6
- '7:0'
- - 7
- '7:0'
- - 8
- '7:0'
- - 9
- '7:0'
description: The 64bit physical device address
optional: false
- name: short_dest_addr
bit_width: 16
byte_positions:
- - 10
- '7:0'
- - 11
- '7:0'
description: The 16bit network device address
optional: false
- name: pan_id
bit_width: 16
byte_positions:
- - 12
- '7:0'
- - 13
- '7:0'
description: Personal area network ID
optional: false
- name: trans_id
bit_width: 8
byte_positions:
- - 14
- '7:0'
description: Transaction ID
optional: false
GetZigbeeRxStats:
opcode: 0x02A0
description: "Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory retention and the command ResetRxStats"
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions: [[2, "7:0"], [3, "7:0"]]
description: "Total number of received packets"
optional: false
- name: crc_error
bit_width: 16
byte_positions: [[4, "7:0"], [5, "7:0"]]
description: "Number of received packets with a CRC error"
optional: false
- name: len_error
bit_width: 16
byte_positions: [[6, "7:0"], [7, "7:0"]]
description: "Number of packets with a length error"
optional: false
zwave:
commands:
SetZwaveParams:
opcode: 663
description: Sets the parameters for Z-Wave packets
parameters:
- name: zwave_mode
bit_width: 2
byte_positions:
- - 2
- '1:0'
description: The data rate to be used for the RX and the TX
optional: false
enum:
LR1: 0
R1: 1
R2: 2
R3: 3
- name: rx_bw
bit_width: 8
byte_positions:
- - 3
- '7:0'
description: Bandwidth in RX mode, or 0xFF to automatically select the bandwidth depending on the selected mode
optional: false
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
- name: zwave_addr_comp
bit_width: 8
byte_positions:
- - 4
- '7:0'
description: Enable or disable the filtering of the HomeID
optional: false
enum:
'OFF': 0
HOMEID: 1
HOMEID_BEAM: 2
- name: pld_len
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: 'In RX: maximum accepted MPDU size. In TX: total bytes to transmit'
optional: false
- name: pbl_len_tx
bit_width: 16
byte_positions:
- - 6
- '7:0'
- - 7
- '7:0'
description: Size in bits of the preamble to send, or 0 to automatically set the preamble size to the minimum possible
for the selected mode
optional: false
- name: pbl_len_detect
bit_width: 8
byte_positions:
- - 8
- '7:0'
description: Preamble size, in bits, that is used for the detection. Recommended value is 32 in all modes, or 0xff
to automatically set the size to the optimal value. Setting to 0 forces detection on start of frame instead of
preamble
optional: false
- name: fcs_mode
bit_width: 1
byte_positions:
- - 9
- '0'
description: 'FCS mode: auto to automatically generate FCS in TX and remove it in RX. In fifo mode, the FCS is expected
to be part of the payload and is not checked in RX.'
optional: false
enum:
AUTO: 0
FIFO: 1
SetZwaveHomeIdFiltering:
opcode: 664
description: Sets the HomeID address to use as a filter in Rx. The MSB is the first bit sent/received. Frames that
don't match the home_id raise an address error IRQ
parameters:
- name: home_id
bit_width: 32
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
- - 4
- '7:0'
- - 5
- '7:0'
description: HomeID address for filtering
optional: false
GetZwavePacketStatus:
opcode: 666
description: Gets the status of the last received packet. Status is updated at the end of a reception (RxDone irq),
but rssi_sync is already updated on SyncWordValid irq
parameters: []
status_fields:
- name: pkt_len
bit_width: 16
byte_positions:
- - 2
- '7:0'
- - 3
- '7:0'
description: Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)
optional: false
- name: rssi_avg
bit_width: 9
byte_positions:
- - 4
- '7:0'
- - 7
- '2'
description: Average over last packet received of RSSI. Actual signal power is –rssi_pkt/2 (dBm)
optional: false
- name: rssi_sync
bit_width: 9
byte_positions:
- - 5
- '7:0'
- - 7
- '0'
description: Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)
optional: false
- name: last_detect
bit_width: 2
byte_positions:
- - 6
- '1:0'
description: Last detected packet data rate
optional: false
enum:
R1: 1
R2: 2
R3: 3
- name: lqi
bit_width: 8
byte_positions:
- - 8
- '7:0'
description: Link quality indicator (0.25dB)
optional: false
SetZwaveBeamFiltering:
opcode: 667
description: Settings for filtering incoming beam frames in Rx
parameters:
- name: beam_tag
bit_width: 8
byte_positions:
- - 2
- '7:0'
description: The beam tag value to accept, typically 0x55
optional: false
- name: addr_len
bit_width: 1
byte_positions:
- - 3
- '7'
description: Address length selection
optional: false
enum:
ADDR_8BIT: 0
ADDR_12BIT: 1
- name: node_id
bit_width: 12
byte_positions:
- - 3
- '3:0'
- - 4
- '7:0'
description: The node id value to accept. This is an 8 bits value, or 12 bits. Note that a value of 0xFF is always
accepted
optional: false
- name: id_hash
bit_width: 8
byte_positions:
- - 5
- '7:0'
description: The Home ID Hash to accept. Note that a value of 0x55, 0x0A or 0x4A is always accepted
optional: false
SetZwaveScan:
opcode: 669
description: This command is used to enter the Zwave RX scan mode. The scan mode will alternate between data rates
and channels and attempt to detect an incoming packet
parameters: []
GetZwaveRxStats:
opcode: 0x0299
description: "Gets the internal statistics of the received packets. Statistics are reset on a POR, sleep without memory retention and the command ResetRxStats"
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions: [[2, "7:0"], [3, "7:0"]]
description: "Total number of received packets"
optional: false
- name: crc_error
bit_width: 16
byte_positions: [[4, "7:0"], [5, "7:0"]]
description: "Number of received packets with a CRC error"
optional: false
- name: len_error
bit_width: 16
byte_positions: [[6, "7:0"], [7, "7:0"]]
description: "Number of packets with a length error"
optional: false
wmbus:
commands:
SetWmbusParams:
opcode: 0x026A
description: Configure the wm-bus mode according to EN13757-4 2019
parameters:
- name: wmbus_mode
bit_width : 4
byte_positions: [[2, "3:0"]]
description: WM-Bus mode selection
enum:
MODE_S: 0
MODE_T1: 1
MODE_T2_O2M: 2
MODE_T2_M2O: 3
MODE_R2: 4
MODE_C1: 5
MODE_C2_O2M: 6
MODE_C2_M2O: 7
MODE_N_4_8: 8
MODE_N_2_4: 9
MODE_N_6_4: 10
MODE_N_19_2: 11
MODE_F2: 12
- name: rx_bw
bit_width: 8
byte_positions: [[3, "7:0"]]
description: Configures the rx_bw. 0xFF means automatic rx_bw chosen by the firmware
enum:
BW_AUTO: 255
BW_3076: 0
BW_2857: 64
BW_2666: 128
BW_2222: 192
BW_1333: 136
BW_1111: 200
BW_888: 144
BW_769: 24
BW_740: 208
BW_714: 88
BW_666: 152
BW_615: 32
BW_571: 96
BW_555: 216
BW_533: 160
BW_512: 17
BW_476: 81
BW_444: 224
BW_384: 25
BW_370: 209
BW_357: 89
BW_333: 153
BW_307: 33
BW_285: 97
BW_277: 217
BW_266: 161
BW_256: 18
BW_238: 82
BW_222: 225
BW_192: 26
BW_185: 210
BW_178: 90
BW_166: 154
BW_153: 34
BW_142: 98
BW_138: 218
BW_133: 162
BW_128: 19
BW_119: 83
BW_111: 226
BW_96: 27
BW_92: 211
BW_89: 91
BW_83: 155
BW_76: 35
BW_71: 99
BW_69: 219
BW_66: 163
BW_64: 20
BW_59: 84
BW_55: 227
BW_48: 28
BW_46: 212
BW_44: 92
BW_41: 156
BW_38: 36
BW_35: 100
BW_34: 220
BW_33: 164
BW_32: 21
BW_29: 85
BW_27: 228
BW_24: 29
BW_23: 213
BW_22: 93
BW_20: 157
BW_19: 37
BW_17: 101
BW_16: 165
BW_14: 86
BW_13: 229
BW_12: 30
BW_11: 94
BW_10: 158
BW_9_6: 38
BW_8_9: 102
BW_8_7: 222
BW_8_3: 166
BW_8: 23
BW_7_4: 87
BW_6_9: 230
BW_6: 31
BW_5_8: 215
BW_5_6: 95
BW_5_2: 159
BW_4_8: 39
BW_4_5: 103
BW_4_3: 223
BW_4_2: 167
BW_3_5: 231
- name: wmbus_format
bit_width: 1
byte_positions: [[4, "0"]]
description: "Packet format (A or B)"
enum:
FORMAT_A: 0
FORMAT_B: 1
- name: addr_filt_en
bit_width: 1
byte_positions: [[5, "0"]]
description: Enable address filtering
- name: pld_len
bit_width: 8
byte_positions: [[6, "7:0"]]
description: "In Tx: payload size to send (including C, M, A and CI fields, excluding CRCs). In Rx: max L-field size to accept"
- name: pbl_len_tx
bit_width: 16
byte_positions: [[7, "7:0"], [8, "7:0"]]
description: "Length of sent preamble in bits. For 4-FSK, number of symbols sent is pbl_len_tx/2"
- name: pbl_len_detect
bit_width: 8
byte_positions: [[9, "7:0"]]
description: "How many bits in the preamble to use for detection, or 0xff for auto-setting (based on pbl_len_tx)"
GetWmbusRxStats:
opcode: 0x026C
description: Get the Rx statistics for wmbus packets
parameters: []
status_fields:
- name: pkt_rx
bit_width: 16
byte_positions: [[2, "7:0"], [3, "7:0"]]
description: Total number of received packets
- name: crc_error
bit_width: 16
byte_positions: [[4, "7:0"], [5, "7:0"]]
description: Number of received packets with a CRC error
- name: len_error
bit_width: 16
byte_positions: [[6, "7:0"], [7, "7:0"]]
description: Number of packets with a length error
GetWmbusPacketStatus:
opcode: 0x026D
description: Get Rx packet status informations for wmbus packets
parameters: []
status_fields:
- name: l_field
bit_width: 8
byte_positions: [[2, "7:0"]]
description: "The demodulated length field. This can be different from get_rx_packet_length (in mode A)"
optional: false
- name: pkt_len
bit_width: 16
byte_positions: [[3, "7:0"], [4, "7:0"]]
description: "Length of the last received packet in bytes (including optional data added in the FIFO, crc, ...)"
optional: false
- name: rssi_avg
bit_width: 9
byte_positions: [[5, "7:0"], [9, "4"]]
description: "Average over last packet received of RSSI. Actual signal power is –rssi_avg/2 (dBm)"
optional: false
- name: rssi_sync
bit_width: 9
byte_positions: [[6, "7:0"], [9, "0"]]
description: "Latch RSSI value after syncword detection. Actual signal power is –rssi_sync/2 (dBm)"
optional: false
- name: crc_err
bit_width: 17
byte_positions: [[7, "7:0"], [8, "7:0"], [9, "6"]]
description: "Indicates which crc has failed. In A mode, bit0 is the crc of the header, then each bit is the crc of the subsequent chunks"
optional: false
- name: syncword_idx
bit_width: 1
byte_positions: [[9, "7"]]
description: "Index of detected syncword (0/1)"
optional: false
- name: lqi
bit_width: 8
byte_positions: [[10, "7:0"]]
description: "Link quality indicator (0.25dB)"
optional: false
SetWmbusAddress:
opcode: 0x026E
description: Set the WM-Bus address for RX filtering (A-field)
parameters:
- name: address
bit_width: 48
byte_positions: [[2, "7:0"], [3, "7:0"], [4, "7:0"], [5, "7:0"], [6, "7:0"], [7, "7:0"]]
description: WM-Bus address for RX filtering (A-field), 48 bits total