When collecting distance measurement, I am noticing a lot of trends happening. I took a look at the CFO, and I keep getting large values even if the devices start from scratch. The name of the field of the CFO is CFO_100ppm, so I think that the tolerance is 100ppm. However, all of the measurements surpass and act unexpectedly, as seen in this image
The results above are similar to what I usually obtain in most of my measurement sessions. However, I had one case where the ppms where bellow the 100pm tolerance level, but everything after that was exceeding it
Please add more clarity to the red graph - how it was taken? What has happened around point 4000, such CFO has jumped from +8ppm to -4ppm? Nothing has happened or something has happened?
So i basicslly placed the device at around 740 meters and did two sets of meausurments(red plot) When i run the initiator the CFO is usually around 5-6 ppm and never below.
So the two sets consist of around 4000 measuremnts each and i merged them as one. However, both sets were measured in the same environment and at the same distance and i got this sudden change in CFO between sets.
The blue plot represents the same experiment performed a couple of hours later
Ok, what you described explains a lot. Thanks. Basically there are 2 different measurements of around 4000 samples. Good.
You shall not expect CFO to be consistent. It is actually does not matter much for DS-TWR.
The trimming of CFO is done before ranging frames, look at xtal_trim_proc() or a similar function name. What it does is just ensure that xtal is trimmed for rframes to an appropriate value. If the read of CFO is in the allowed range - no trimming would be performed, so only other factors such temperature would affect CFO.
Hello @alliv thank you for explanation! Yeah I actually thought it was weird since DS-TWR should help with the clock offset, but yet there still seems to be some fluctuations. After all it does not seem to be 100% reliable.