Dw1000 missing packets on channel 5

Hello, I’m working with two custom boards. Each has a dw1000 module. One board is configured to transmit 100 packets in 10 seconds with a counter, the other one should receive the packets. When I configure the boards to use channel 3, I see all packets correctly, but when I switch to channel 5(keeping all other config the same), there is a considerable loss of packets (10%-20%) and enabling the counters, I see mainly RSL errors: //number of received frame sync loss events.
Why does the reed solomon algorithm fails so heavily changing the channel? How can I solve the problem?

Thank you

Hi Lidia,

What distance are you using between the tags? Channel 5 uses a higher frequency, so the path loss is higher. This could result in packets getting lost.

What PRF settings are you using? If you are using a 16 MHz PRF, note that the recommended preamble codes are different. See table 61, section 10.5 in the DW1000 User Manual.

How exactly are you changing the channel? Note that this requires changing a couple of settings, notably including the pgdelay, RF config and PLL config. Are you using the deca_driver library and examples?

The tags are one meter apart. I’m using the deca_driver library even though it’s not updated with the values reported in the manual (eg. #define TC_PGDELAY_CH5 0xC0 but it should be 0xB5). The fact is that changing the position of the tags, changes considerably the performance and sometimes everything seems random.

Hi lidia,

The deca_driver library still requires configuration. Are you using one of the deca_driver examples? If so, which one?

I assume you are using a DWM1000 module, correct?

Hi, I used ex_03d_tx_wait_resp_interrupts as a reference, in practice one tag just transmits and the other just receives.

Configuration is the following:

static dwt_config_t config = {
5, /* Channel number. /
DWT_PRF_64M, /
Pulse repetition frequency. /
DWT_PLEN_128, /
Preamble length. Used in TX only. /
DWT_PAC8, /
Preamble acquisition chunk size. Used in RX only. /
9, /
TX preamble code. Used in TX only. /
9, /
RX preamble code. Used in RX only. /
1, /
0 to use standard SFD, 1 to use non-standard SFD. /
DWT_BR_6M8, /
Data rate. /
DWT_PHRMODE_STD, /
PHY header mode. /
(128 + 1 + 16 - 8) /
SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
};

I am using dw1000 and a custom layout.

Thanks