Clarification on Mode 0 measured_freq_offset and frequency_compensation in Bluetooth Channel Soundinb

Hi Nordic team,

I am currently researching Bluetooth Channel Sounding, where I have setup two nrf54LM20-DK as intiaitor and reflector respectively. 

I am using NCS 3.3.1 and am using sample RAS requestor and RAS responder, however I am logging only the data that like IQ tones, channels, frequency and offset to a CSV based files instead of running a ranging algorithm.

I use mode_0_steps = 3 with 02 subevents per procedure for testimg. I log the initiator-side Mode 0 measured_freq_offset and the local HCI subevent result->header.frequency_compensation.  Across two datasets, I observed that frequency_compensation always equals the first Mode 0 measured_freq_offset of the corresponding subevent. This matches exactly for all subevents.

Mode 0 offsets: [0.31, 0.25, 0.18] ppm
Frequency compensation: 0.31 (ppm for entire procedure)
My questions are: 
  • Is this expected behavior?
  • Do both fields use the same signed format and 0.01 ppm resolution?
  • How are the remaining Mode 0 steps used internally?
  • Is the reported compensation applied internally to subsequent Mode 1/2/3 measurements?
  • Is it valid across the full subevent or recalculated/scaled per channel?
  • Besides frequency offset, compensation, RSSI, AA status, bit errors, and antenna ID, is any additional Mode 0 information exposed?

I would also appreciate any clarification on the exact distinction between measured_freq_offset and frequency_compensation, particularly whether the former is a per-step measurement while the latter is the controller-selected or processed value for the subevent.

Thank you for your support. 

Related