DWM1000 Custom peak detection


We have a scenario where we have a lot of noise and bounce paths between our UWB devices.
I was wondering if there is a way to do our own custom peak detection algorithm, and run that on the device?
We have tried adjusting the parameters but the noise ends up being flagged or bounce paths are counted as first paths.
This is because the devices positions can change dynamically.

Thank you for your advice.

Hi @jnewton,
Yes you can use the Accumulator CIR (0x25 register) for your algorithm.
The example ex_02c_rx_diagnostics shows how to read the data from the accumulator (dwt_readdiagnostics).
You can also check APS006 (Part1,2 and 3) here Application Notes - Decawave.
I think it can be helpful for your use case.

Hope it helps!

1 Like

Things moving around wouldn’t cause that, we have tested at 120km/h and with accelerations over 1 g (e.g. an emergency stop from 100 km/h) and not had the issues you describe.
We have however seen what you describe in some environments where there are very long reflection paths with strong reflections.

As has been mentioned you can read the CIR data and implement your own detection algorithm externally. But this is slow and non-ideal. Unfortunately there is no option to run your own algorithm on the chip.

We implemented a system where we check the first path index and if it is below a threshold consider the data invalid. It means throwing data away rather than correcting it but if you can cope with the dropouts it’s a simple and effective solution.