Since the beginning of the week I’m working on the Decawave modules. My first goal was to send a message from one module to another and it turned out to be quite straightforward (the manufacturer provides a driver and examples so I jusd had to port the low level functions for SPI and IRQ control). The tricky part was the ranging and for some reason the example provided by Decawave didn’t work neither with a Raspberry Pi nor with the STM32 board (with a powerful STM32F407 clocked at 168MHz).
I finally fixed the example by changing some values but I’ll try to understand what happens in more details later. I succeeded to get realistic values (not a negative distance is a huge step already !) and after some attempts I managed to get a precision of +/-20cm with my setup. But it requires me to wait for the beacon module (the one receiving the message and quickly responding in a precise time) to heat up, as turning the receiver on heats a lot and it changes the quartz frequency ! So I’ll have to design some heat compensating mechanism to get better results. The modules seems also to be very environment sensitive : for example putting my computer (made of aluminium) next to the modules perturbates the measure. And of course, any air movement cools the modules a bit and changes the range.
So in the next days, I’ll continue to work on the Decawave, trying to improve the precision.