Using Extended Length data Frames


    Iam trying to send more than 127 bytes of data, so thought of using the Extended Length data frames.

Configured the device with following parameters

chan ; 5
prf ; DWT_PRF_64M}
txPreambLength ; DWT_PLEN_256
txCode ; 9
rxCode ; 9
nsSFD ; 0
dataRate ; DWT_BR_6M8}
sfdTO ; 257 + 8 - 8

Doing so(sending 200 bytes) , i observed undetermined behaviors like tx erros.
Any thing i have to modify the configuration to make it successfull tramsmission/ reception. ?

Thanks & Regards,
Madhu Raj

You need to set both PHR_MODE bits in the SYS_CFG register (as you’ve done) . The important thing is to do this on all devices which are supposed to communicate with each other. For more detailed information, have a look at section 3.4 in the DW1000 user manual. It can be downloaded at
You also need to note that bigger frames = bigger frame time, so you may need to calculate what is the max for your use case, so that all of the messages can fit in the desired slot.
All of the timings, symbol durations are in Data Sheet.

Thanks Leo,

    I will look into the docs and what is the frame time , do you mean sfdTO  ? or any other parameter ?

Madhu Raj.

“i observed undetermined behaviors like tx erros.”

what kind of errors?

Hi zoran,

    I am setting the TR bit in Transmit Frame Control (0x08) register , and length of the frame as 0xa2 (160 bytes). 

The device able to transmit this frame ,the other device is receiving this frame but the RNG bit in the received frame ( in the 0x10 – RX Frame Information Register) is 0 .

   Because of which the Rx complete callback is not being called.   This RNG bit should be 1 right ? 

Please let me know if any reason for this behaviour.


So you set ranging bit, then TX 160 bytes - do you get TXFRS event?

On the RX side, before reading INFO or DATA - what events do you get?

The DW IC does not care about the ranging bit. However if it is set in the PHR then the frame INFO reg should have it set.


yes, iam getting the TXFRS event on Transmitter.

On the RX side, regarding RX events , iam getting RXFCG event , and this is the system status register value (0x00806F03) before reading the INFO.

I have trying to send & receive extended lenght frames with DWM1001-DEV kit. I’m using same the same SW as I have used earlier with DWM1000, but have noticed that the same settings and channel parameters do not work with DWM1001-DEV any more. Has there been some changes in the modem firmware/hardware that would impact the long frame feature?
I verified (using Segger embedded studio) that the PHR_MODE bits are written to System Configuration register correctly (by dwt_writetxfctrl()). Also the frame lenght word gets correctly written to Transmit Frame Control register, but only the LSB 8 bits take effect, i.e. if I write 0x116 only 16 databytes are sent.
Now, I’m wondering if I’m missing some configuration or register setting which have changed since DWM1000 days (I’m using about 2 years old DWM1000 samples)?

My channel configuration is:

static dwt_config_t config = {
5, /* Channel number. /
DWT_PRF_64M, // 2 /
Pulse repetition frequency. /
DWT_PLEN_128, // 0x14 /
Preamble length. Used in TX only. /
DWT_PAC8, // 0 /
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, /
Data rate. /
(129 + 8 - 8) /
SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */

hi ksulander,
i am facing the same issue, i receive only 121 bytes instead of 230 bytes, is there anything i need to change in my file.

kindly help me to sort this out.



Is this ussue solved?

Best regards