I’m using DWM3001CDK boards as anchors in a TDoA RTLS system (DW3_QM33_SDK_1.1.1, custom Anchor_RX firmware). Right now my setup is:
-
Each anchor runs off its own internal clock (no shared 38.4 MHz EXTCLK).
-
A Raspberry Pi sends a SYNC pulse (GPIO18) to all anchors on P0.28.
-
On each rising edge, the firmware calls dwt_readsystimestamphi32() and logs:
SYNC A= TS=0x00HHHHHHHH COUNT=
RX A= … TS=0x<40‑bit RX timestamp> …
- On the server, I use these SYNC timestamps to fit a linear clock model per anchor and map all RX timestamps into a common timebase before running TDoA. This is working well; SYNC and RX TS are stable and increasing, and I get reasonable positions.
I’ve read the DW3000 User Manual section 7.1 External Synchronisation and the description of One Shot Timebase Reset (OSTR) Mode and EXT_SYNC (register file 0x04). My understanding is:
-
Full OSTR mode assumes a shared 38.4 MHz reference clock on EXTCLK + SYNC, and lets the DW3000 reset its internal timebase deterministically.
-
With that setup, all anchors’ timebases are effectively the same counter (apart from cable delays).
My questions:
- For a practical indoor TDoA system with DWM3001CDK anchors, is Qorvo’s recommended approach today:
-
(A) the simpler GPIO‑based SYNC + software clock‑sync (what I’m doing now), or
-
(B) the full OSTR + 38.4 MHz EXTCLK + EXT_SYNC configuration as in the DW3000 manual?
- If I stay with independent clocks + GPIO SYNC:
-
Is using dwt_readsystimestamphi32() on each SYNC edge the correct and supported way to timestamp pulses for DW3000‑based TDoA?
-
Are there any accuracy or long‑term stability limits you recommend I keep in mind (e.g. expected drift over minutes/hours, typical achievable ranging error)?
- If I later decide to implement OSTR with a shared 38.4 MHz clock:
-
Are there any DW3000‑specific example settings for the EXT_SYNC / EC_CTRL registers (e.g. recommended OSTS_WAIT values) beyond what’s in the datasheet?
-
Is OSTR officially supported and validated on the DWM3001CDK hardware, or is it mainly targeted at custom DW3000 designs?
Any guidance on which approach Qorvo recommends for a multi‑anchor DWM3001CDK TDoA deployment (and any pitfalls to avoid) would be very helpful.