I am new to using the DWM1000 chips and I have many questions about their operation. I am using them for a university project that requires to measure the distance between an anchor and a tag. However I found that for distances more than a meter, the measurement shows that the distance is approximately 75 cm more than the actual distance. This error increases slightly for larger distances (more than 20-25 m), reaching approximately 1m (I only carried out measurements for up to 35 m for now, indoors). I am using an open source library from github and the LONGDATA_RANGE_ACCURACY mode (https://github.com/thotro/arduino-dw1000). I didn’t calibrate the antenna delay and Tx and Rx power yet. Did anyone have similar results? Are they expected? If not does anyone know the reason I’m getting these results? My measurements are shown below.
If you look at decawave app note 11 you will see that there is a signal level dependent error that will give errors with a range of around 20 cm from one extreme to the other and increases with range following roughly the pattern you describe.
If the library you are using doesn’t compensate for this then that combined with an error in your assumed antenna delay would explain everything you’re seeing.
Also ensure you keep the relative orientation of the antennas and their boards the same all the time, you can easily see orientation dependent range errors in the 20cm range.
Thanks for getting back to me! Is it expected to have an increasing error as the distance increases (or when the received power decreases)? Because the bias is both negative and positive so it is definitely not just that. When it comes to the antenna delay, could it cause this type of increasing error? Do you know the reason behind that?
You said that the error is +75 cm at 1 m and +100 cm at > 30 m.
The signal strength related errors are around -10 cm at short range and +10 cm at long range.
Antenna delay errors are fairly constant at all ranges for a given radio configuration and orientation.
So it sounds like you have an antenna delay error of about 85 cm and then the signal strength related errors on top of that.
I am also facing same accuracy error. If I keep the tag and anchor at distance f 1meter will will 1.4m sometime 1.23 or some inaccurate data. How to solve this problem. I didn’t do any calibration. If thr calibration will increase the accuracy how to do it?
The most common cause of an offset is antenna delay.
You need to compensate for the time the signal takes to travel between the timestamping logic in the chip and the antenna. This is slightly different for every device. The code will include a default typical value but for accurate results you need to measure this on every device and correct for it.
Fortunately it’s fairly constant. There will be a slight variation with temperature but normally you can ignore that. Which means if you measure it you can either subtract it yourself or program the values into the DW chip and it will automatically correct all the measured times.
If the issue is antenna delay then it will be constant at all ranges. If you only have two devices then measure the error, divide it by two and set the antenna delay correction on each device to that value.
If you have more than 2 devices then search this forum, there are lots of posts discussing how to calculate the delay for each device.
On a DW1000 you will also get a slight signal strength error. This will be constant at a given range but will result in the measurements being too short at short ranges and too long at long ranges. The worst case effect of this is around 15 cm of error. You can correct for this my measuring and correcting for the signal strength.
Finally depending on the antenna and what’s close to it you will get some orientation specific effects,
as you rotate the device in place you will get slightly different ranges, partly due to changes in signal strength and partly due to other effects. Correcting for this gets interesting.