Thanks Zoran, Understood.
I have recently done some characterization myself and want to see if anyone can verify my findings.
I have used the dwm1001-examples project (https://github.com/Decawave/dwm1001-examples) to try different combinations of config parameters. This was to hopefully eliminate bugs in my custome configuration code.
I’ve noticed that I get a significant number of RX errors (usually the RXRFSL or RXPHE errors) if I use channel 5 with a PLEN of 64. Some of the DWM1001-DEV modules I have are worse than others. For example, these parameters:
static dwt_config_t config = {
5, /* Channel number. */
DWT_PRF_64M, /* Pulse repetition frequency. */
DWT_PLEN_64, /* Preamble length. Used in TX only. */
DWT_PAC8, /* Preamble acquisition chunk size. Used in RX only. */
10, /* TX preamble code. Used in TX only. */
10, /* RX preamble code. Used in RX only. */
0, /* 0 to use standard SFD, 1 to use non-standard SFD. */
DWT_BR_6M8, //DWT_BR_110K, /* Data rate. */
DWT_PHRMODE_STD, /* PHY header mode. */
(65 + 8 - 8) /* SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
};
If I change to any other channel besides 5, the errors mostly go away. Additionally, if I increase the PLEN to 128 or higher (this includes adjusting the SFD timeout), the errors go away as well. I have fiddled with the other parameters (preamble code, nsSFD, PHRMODE_EXT, etc.) and nothing really seems to make much of a difference when PLEN is 64 on Channel 5
I find this curious, and considering channel 5 seems to work the LEAST on these modules for me, I feel like I must be doing something wrong somewhere. Has anyone found an abnormally high error rate with these parameters? Or can someone confirm that this makes sense? In the meantime, I can just use a PLEN of 128, but it bugs me not knowing why I need to do that!
Thanks for any help!