6 years ago.

Communicating two DWM1000 using two Arduinos


I am using Arduino Mega to communicate with DWM1000. Using one Mega to communicate with two DWM1000 with identical configurations, I am able to retrieve what I inserted into tx buffer from rx buffer. The timestamp, frame quality info are showing as well. But the only thing is the flags (RXPRD, RXSFDD, LDEDONE, RXPHD, RXDFR and RXFCG) in SYS_STATUS register of the receiver was never set to indicate complete reception. I have fixed the flags by removing the delay between my startTx() and startRx() function.

Now the problem comes to calculating the First Path Signal Power and Rx Level using the formula in section 4.7 of the user manual. My code will read around -95-105 dBm for both values regardless how far the distance between two modules.

Can I assume that the further I place these two modules apart, also objects blocking in the middle, the lower FPSP and Rx Level I will get?

When using two Arduino Megas to communicate two DWM1000 modules with identical configurations as well (one as transmitter and the other as receiver), I am not able to receive anything from the transmitter.

Do you think it is because of the configurations that caused the 2nd problem? I have uploaded my code and Arduino library for your reference.

Please help, thanks in advance!

Code: /media/uploads/coff_ee/mycode.zip

edit: fixed some previous problems and re-upload updated code

Question relating to:

This is the DW1000 driver and our self developed distance measurement application based on it. We do this as a semester thesis at ETH Zürich under the Automatic Control Laboratory … decawave, driver, dw1000, eth, Ranging, SPI, tranciever
Be the first to answer this question.