TDoA bimodal timestamp flip (~120cm) — CIA sub-sample issue?

Hi all,

We’re running a 3-anchor TDoA setup (DW3000, CH5, PLEN_2048, STS off) and hitting a persistent issue where TDoA distances flip between two stable basins about 120cm apart. Within each basin, sigma is tight (5-6cm), but the output randomly jumps between the two. TWR on the same hardware is rock solid at ~2cm sigma.

We’ve spent a good amount of time narrowing this down and we’re fairly confident it’s on the tag RX side — specifically the CIA sub-sample interpolation. Here’s what we’ve ruled out so far:

  • Anchor TX timing — txd is constant across flip and non-flip samples

  • IP_NTM / IP_RTM tuning — tried several values, flip rate unchanged

  • PLL RX pre-buffer (CH5 phase fix) — no effect

  • DGC disabled — no effect

  • Channel 9 — same ~120cm flip

  • STS timestamps — Ipatov and STS flip independently

  • Two tags side by side — they flip independently, confirming tag-side RX

CIR readback around the first path shows a single broad direct-path peak with a strong multipath reflection at +5 to +6 samples. The CIA picks the same rising edge every time — the sub-sample interpolation within that edge is what seems to flip between two positions, about 270 ticks apart.

Is this a known behavior of the DW3000 CIA? Are there any register-level controls or configuration approaches we might be missing to stabilize the sub-sample estimate in the presence of close-in multipath? Or is host-side filtering the expected approach here?

Any pointers would be really appreciated. Thanks!