In section 4.2.1 of uwb-fira-protocol-R12.7.0-405 in SDK documents:
“By default, the FiRa region produces reports at the end of each round containing a summary of the measures it has been able to compute during the round. Those reports do not contain details about the frames exchanged during the round. The FiRa diagnostics feature of the Qorvo UWB Stack has been designed to solve this issue and to provide details about a round after its completion.”
In the SDK, uwb-qorvo-tools has a python implementation that contains a library where you can turn on RangingDiagnosticsData. It has a ton of that stuff you’re looking for, including CIR and F-M to name a few. My question was what goes into the Qorvo FoM.
The run_fira_twr --en-diag will engage this.
I know that you asked about CLI and I’m talking about using UCI, but maybe this could be helpful to cross-reference?
Snippet:
Ranging Data:
session handle: 7
sequence n: 41781
ranging interval: 200 ms
measurement type: Twr
Mac add size: 2
primary session id: 0x0
n of measurement: 1
# Measurement 1:
status: Ok (0x0)
mac address: 00:00 hex
is nlos meas: Unsupported
distance: 219.0 cm
AoA azimuth: 0.0 deg
AoA az. FOM: 0.0 %
AoA elevation: 0.0 deg
AoA elev. FOM: 0.0
AoA dest azimuth: 0.0 deg
AoA dest az. FOM: 0.0 %
AoA dest elevation: 0.0 deg
AoA dest elev. FOM: 0.0 %
slot in error: 0
rssi: -71.5 dBm
Ranging Diagnostic Data:
Session handle: 7
Sequence n: 41781
Nbr of reports: 6
# Ranging Diag. Report 0:
Message id: Control
Action: Rx
Antenna_set: 0
Nbr of fields: 4
# Frame Status Report:
is processing ok : 1
is wifi activated : 0
# CFO Report:
cfo: 0.536 ppm
# Segment Metrics Reports:
Nbr of Segment Metrics: 1
# Segment Metrics 0:
segment type: 0
primary_recv: 1
receiver Id: 0x0
noise_value: -80
rsl_dBm: -71.4765625
path1_rsl_dbm: -72.8828125
path1_idx: 740
path1_snr: 7.1171875
path1_t: 47361
peak_rsl_dbm: -71.4765625
peak_idx: 742
peak_snr: 8.5234375
peak_t: 47488
# CIR Report:
Nbr of CIRs: 1
# CIR 0:
segment type: 0
primary_recv: 1
receiver Id: 0x0
path1_ridx: 248
n_samples : 16
sample_size: 6
window (i,q): [(-4, -62), (-9, -60), (-31, -3), (50, -22)]
[(-3, -20), (-38, -67), (-105, -262), (-339, -598)]
[(-933, -1036), (-1632, -964), (-2016, -360), (-1602, 235)]
[(-415, 221), (422, 16), (649, 176), (405, 380)]
# Ranging Diag. Report 1:
Message id: RangingInitiation
Action: Rx
Antenna_set: 0
Nbr of fields: 4
# Frame Status Report:
is processing ok : 1
is wifi activated : 0
# CFO Report:
cfo: 0.641 ppm
# Segment Metrics Reports:
Nbr of Segment Metrics: 1
# Segment Metrics 0:
segment type: 1
primary_recv: 1
receiver Id: 0x0
noise_value: -80
rsl_dBm: -72.578125
path1_rsl_dbm: -73.78125
path1_idx: 354
path1_snr: 6.21875
path1_t: 22696
peak_rsl_dbm: -72.578125
peak_idx: 356
peak_snr: 7.421875
peak_t: 22784
# CIR Report:
Nbr of CIRs: 1
# CIR 0:
segment type: 1
primary_recv: 1
receiver Id: 0x0
path1_ridx: 248
n_samples : 16
sample_size: 6
window (i,q): [(10, -16), (-10, -9), (-14, 0), (-3, 20)]
[(8, -29), (-11, -32), (-49, -15), (-254, 1)]
[(-784, 64), (-1576, 453), (-2036, 1156), (-1739, 1611)]
[(-815, 1167), (-22, 173), (423, -379), (671, -318)]
# Ranging Diag. Report 2:
Message id: RangingResponse
Action: Tx
Antenna_set: 0
Nbr of fields: 1
# Frame Status Report:
is processing ok : 1
is wifi activated : 0
# Ranging Diag. Report 3:
Message id: RangingFinal
Action: Rx
Antenna_set: 0
Nbr of fields: 4
# Frame Status Report:
is processing ok : 1
is wifi activated : 0
# CFO Report:
cfo: 0.328 ppm
# Segment Metrics Reports:
Nbr of Segment Metrics: 1
# Segment Metrics 0:
segment type: 1
primary_recv: 1
receiver Id: 0x0
noise_value: -80
rsl_dBm: -72.578125
path1_rsl_dbm: -73.4375
path1_idx: 360
path1_snr: 6.5625
path1_t: 23093
peak_rsl_dbm: -72.578125
peak_idx: 362
peak_snr: 7.421875
peak_t: 23168
# CIR Report:
Nbr of CIRs: 1
# CIR 0:
segment type: 1
primary_recv: 1
receiver Id: 0x0
path1_ridx: 248
n_samples : 16
sample_size: 6
window (i,q): [(-6, -7), (-28, -19), (2, 1), (23, 26)]
[(33, -20), (48, 14), (112, -64), (261, -234)]
[(620, -647), (863, -1473), (673, -2271), (89, -2217)]
[(-193, -1167), (-83, 59), (-64, 648), (-265, 639)]
# Ranging Diag. Report 4:
Message id: MeasurementReport
Action: Rx
Antenna_set: 0
Nbr of fields: 4
# Frame Status Report:
is processing ok : 1
is wifi activated : 0
# CFO Report:
cfo: 0.551 ppm
# Segment Metrics Reports:
Nbr of Segment Metrics: 1
# Segment Metrics 0:
segment type: 0
primary_recv: 1
receiver Id: 0x0
noise_value: -80
rsl_dBm: -71.16796875
path1_rsl_dbm: -72.73046875
path1_idx: 743
path1_snr: 7.26953125
path1_t: 47565
peak_rsl_dbm: -71.16796875
peak_idx: 745
peak_snr: 8.83203125
peak_t: 47680
# CIR Report:
Nbr of CIRs: 1
# CIR 0:
segment type: 0
primary_recv: 1
receiver Id: 0x0
path1_ridx: 248
n_samples : 16
sample_size: 6
window (i,q): [(-57, -9), (-34, 20), (-43, 50), (-41, 7)]
[(-33, 8), (6, -46), (81, -109), (90, -316)]
[(20, -877), (-384, -1509), (-980, -1651), (-1274, -1304)]
[(-960, -602), (-145, 7), (325, 403), (224, 626)]
# Ranging Diag. Report 5:
Message id: RangingResultReport
Action: Tx
Antenna_set: 0
Nbr of fields: 1
# Frame Status Report:
is processing ok : 1
is wifi activated : 0