DWM1001 supported channels

Apologies if this has been answered in another thread. I couldn’t find anything through the search function though.

I see the DWM1001 printed PCB antenna supports channel 5 (6.5 GHz). However, I was unknowingly using channel 1 in my custom application code for a while and it appeared work just fine.

I know very little about antenna design, but does this make sense that channels other than 5 will work on the DWM1001? If other channels work, can someone explain to what degree or in what context they might not and I should be using channel 5 only?


yes other channels will work, but the antenna performance is optimised for channel 5

Thanks Zoran!

Can you elaborate a little bit though? Like I said, I’m not familar with antenna design or characteristics so I don’t really know what this means.

Does this only mean I will not get as long of a range on another channel? (i.e. if I’m only testing with my units <10m apart, I won’t notice a difference)

Or will the range be similar, but my ranging calculations be less accurate if I don’t use channel 5?

At some point I will try and characterize this myself, but it might be nice to have something to expect. Thanks!

Hello again, does anyone have any further comments which might answer my question above?

Hi Lincoln,

I have not characterized it on other channel either, so cannot comment for definite, thus my answer is vague.


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!

Hi Lincoln,

We are aware of an increase of the error rate when using the DWM1001 with PLEN64.

We’re actually looking at improving this, but this performance is expected as the hardware was not designed to perform with preamble length of 64. In particular, the oscillator is not accurate enough and it leads to error with PLEN64 (we recommend to use a TCXO when hardware is targetting PLEN64).

Also, I can add a bit more information to your question. We’ve recently performed range test with Channel 2 and we can see that the performance is at best equal to Channel 5, and sometime worst. (Depends on the orientation). But we couldn’t see a better performance with channel 2 so far.

Let me know if you have any other question,
Thank you,