How to Calculate Delay Values in ESP32 DW3000

Hi,
I am using ESP32-DW3000 boards. I tried example “06a_ss_twr_initator” and “06a_ss_twr_responder” these only worked after I changed delay values of

RESP_RX_TIMEOUT_UUS -- initiator
POLL_TX_TO_RESP_RX_DLY_UUS  -- initiator
POLL_RX_TO_RESP_TX_DLY_UUS -- responder

as mentioned here - Ranging Example · Issue #5 · Makerfabs/Makerfabs-ESP32-UWB-DW3000 · GitHub

These values worked. But when I tried same values with ex_06b_ss_twr_responder_sts and init_sts example it didnt work. I tried increasing delay values still it didnt.

Can anyone please let me know how I can calculate these values.
Or any other values you want me to try out.

Hi Sankethj,

These value will depend on platform and ideally should be characterised & measured with a logic analyser or oscilloscope. You can also use an accurate timer on your platform.
Their objective is to answer there is sufficient time for a device to account for latencies due to MCU before it will effectively be in RX or in TX.

A usual TWR system will be slotted, the responder will start in continuous RX, receive the poll and from this recepetion there should be a known delay betwee each tx/rx for each device (usually called slot duration). Then you need to ensure the slot duration is sufficiently long so the device can effectively be in RX or in TX by the time the MCU process the TX/RX instruction.

Hope it helps,
Kind regards
Yves

@Yves_Bernard_Qorvo
Could you please guide me on how I can measure the delay/ latency values using logic analyzer or oscilloscope.
As other people with ESP32-DW3000 boards are also facing this issue, I will measure the value and update for examples, so it could be helpful.