Pros/cons of dwt_readcarrierintegrator() vs dwt_readclockoffset() (on DW3000)

There are two techniques to get the clock offset between remote and local node – dwt_readcarrierintegrator() (uses the DRX_CAR_INT register) and dwt_readclockoffset() (uses COE_PPM from CIA_DIAG_0).

What are the pros and cons of each of these?

On the surface, COE_PPM is a lower resolution value (13 bits instead of 21 bits) and requires CIA diagnostics enabled (which slows processing), so that’s two points in favor of DRX_CAR_INT. But… I bet there’s more to the story?

The thread “Clock drift compensation for ranging” from Nov '18 about the DW1000 seems to suggest that the carrier integrator (DRX_CAR_INT) is indeed the superior value, is that likely the case for the DW3000 as well?

– egnor