Hello!
I’m trying to get two-way ranging to work using DWM3000EVB’s. Currently, it successfully transmits and receives data, but only within a range of ~20cm. No matter what settings I use, it will not increase the range. We are using a simplified version of the API provided by Qorvo that works with the ESP32.
I’ve tried multiple power sources, which did not change anything. Even with the highest power settings, the range will not improve much. Other than that, the mode should be correct for the ESP32.
I did notice that if I hold the DWM3000EVB really high and aim perfectly, I can get a range of ~1m, which is clearly not enough. Not only that, but at that range it will only detect the preamble. Replacing the ESP32’s is not a option right now, so any other suggestions or things I could try are welcome!
I am also using the DW1000 with an ESP32 and have the following suggestions:
Check your constants from your DWM3000.h with the datasheet.
try out some different settings in your config.
My config:
static dwt_config_t config = {
5, /* Channel number. */
DWT_PRF_64M, /* Pulse repetition frequency. 16M or 64M */
DWT_PLEN_1024, /* Preamble length. Used in TX only. Higher is more range & longer air time 64 - 4096 */
DWT_PAC64, /* Preamble acquisition chunk size. Used in RX only. 8 (plen <=128), 16 (plen 256), 32 (plen 512), 64 (plen >= 1024)*/
9, /* TX preamble code. Used in TX only. */
9, /* RX preamble code. Used in RX only. */
0, /* 0 to use standard 8 symbol SFD, 1 to use non-standard 8 symbol, 2 for non-standard 16 symbol SFD and 3 for 4z 8 symbol SDF type*/
DWT_BR_850K, /* Data rate. DWT_BR_110K DWT_BR_850K DWT_BR_6M8 */
DWT_PHRMODE_EXT, /* PHY header mode. for a bigger packet size */
(1024 + 1 + 64 - 64) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
};
Good luck, Hans.
p.s. I get at leastn 50 meters in open field. PLaying with the Tx Power will get you further, but maybe
not legal anymore