Bluetooth Channel Sounding: How does the NRF Bluetooth stack / example application compensate for FFO?

Hi,

To improve the accuracy of RTT-based ranging measurements, the Bluetooth CS specifications requires that the initiator compensate for the fractional frequency offset (FFO) in mode-1 and mode-3.

I have been looking at the "Bluetooth LE Channel Sounding Initiator with RREQ" (I'm using Visual Studio Code with the nrfConnect extension) but I could not find any reference to FFO compensation, hence my question. I can of course add it myself, but before doing so, I wanted to make sure that I did not miss it in the code.

As a reference, I checked the following:

  • bt_conn_le_cs_subevent_result->header.frequency_offset is not being used
  • cs_de.c:process_step_data, the callback function for new step data, does not handle mode-0 steps
  • cs_de.c:calculate_dist_rtt does not consider the FFO for RTT computation, which looks like this:
    float rtt_avg_measured_ns (p_report->rtt_accumulated_half_ns * 0.5f) / p_report->rtt_count;
    float tof_ns = rtt_avg_measured_ns / 2.0f;
    float rtt_distance_m = tof_ns * (SPEED_OF_LIGHT_M_PER_S / 1e9f);

Thanks in advance!

Parents Reply Children
Related