Problem in simple tx & rx example

Hello everyone, this is my first topic here.
I have two DWM1000 module, both connected to stm32f103cbt6 (Bluepill), using DecaWave api downloaded here.
I’m trying to test simple tx and simple rx with my two setups.
problem is that, rx board printed “FrameReceived!” continuously even with no tx board transmitting frames!
I’m using stm32 cube ide and yes, i modified examples to use for STM32F1 instead of STMF4.
I checked my communication with the modules over the SPI, everything is fine, cuz module id determined by the MCU.
Does anyone know where the problem is?
Is there any usable api to work with DWM1000?
Finally i’m planning to have some Anchors and Tags to determine range of each tag.
Any comment will help and i appreciate that.

Hi ardeshir

It sounds to me like SPI is not working correctly. Note that reading the device ID is not always a fail proof way to check SPI functionality since the DW1000 wil interpret SPI operations where MOSI is held low as reads of address 0, i.e reads of the device ID. It could be your MISO line is working, but MOSI is not. Try to debug the program and check what is read at different addresses.

To measure the range, keep in mind that if you are developing a product you plan to sell, the range limited by the TX power, which is in term limited by the regulation of the region where you want to sell the device. See e.g APS023 Part 1 Transmit Power Calibration and Management.

This is impacted by things like the used casing, position of the module relative to GND planes, … The range you can achieve will also depend on what frame settings and channel you use.

1 Like

Thank you for your reply dear Seppe.
As you noticed, i was doubted to SPI communication. so i decreased SPI clock and ported another example named “ex_10a_gpio”. It was completely working (LEDs connected to GPIOs blinking). but in same configuration of SPI, “ex_02a_simple_rx” was not working.
I checked my hardware setup using this API in Arduino platform and was able to do ranging.
And for now, we have no planning to sell any sort of product. we are trying to setup an indoor locationing system to determine location of each tag. we will need 6 anchors and up to 40 tags tha has to be in this system.
first we started with 1 anchor and 5 tags and faced with collision. then created a synchronizer with one of our DWM1000 module to achieve TDMA the tags.
everythins is now ok and no collision happen any more, but other problem is that we have a very low update rate for ranging proccess. which mean it takes to time for anchor to determine range of all tags.
we concerned about increament of current update rate for final step(6 anchor, 40 tag).
i wanted to know do we going through on a correct approach or we need to change it. any suggestion to achieve this goal?