Large outlier number when using 4 anchors with one tag (tag remain stable)

when I use 4 anchors and one tag, my tag receives with 4 anchors range data, and sometimes it will jump to a large range number, which is not normal since I did not move the tag at all. Has anyone had the same issue and has the solution?

Hope to solve the problem soon :cry:

Your own code or PANS?
Range to all anchors jumps or just one?

The short version is your system needs to cope with occasional bad values.

You can get incorrect values for all sorts of reasons, some you can minimise, some are outside your control. Massive jumps to unfeasible ranges are easy to detect and ignore, smaller jumps to incorrect but plausible ranges are harder to cope with.
As a most basic solution you can measure 5 times and take the median, that will normally work as a very quick and simple way to ignore occasional outliers.

Hey, I’m having the same issue. I’m trying to do the antenna delay calibration, but every time I read the data, it changes by a few centimeters. Sometimes it stays stable for a while, but then changes drastically. The standard deviation always stays below 4 centimeters. Have you managed to solve this problem yet?

Hello,
to do calibration, you need to average the data over some time. Let say, calibrate the antenna delay based on 100 measurements. It is expected that the distance is varying a bit from one measure to another. 4 cm of standard deviation is pretty good, and not worrying at all.

Hello @simon.desfarges, thanks for the reply.
The problem I’m currently facing is related to an offset error that seems to vary based on the received signal power (which I believe is the source of the error). When I take measurements, even a small movement of the antenna by a few centimeters or a slight rotation by a few degrees clearly causes an offset error to appear, which can increase or decrease the measured distance by up to 20 cm (this was the largest variation I’ve seen so far), although the standard deviation always remains very low (around 4 cm).

Given this offset error, I don’t understand how I can properly perform antenna delay calibration, since that is also an offset-related error. Am I doing something wrong during the calibration process? If not, do you have any solution for this issue?

Depending on the antenna type the received signal strength can be very greatly with angle. Signal level compensation is critical to getting good ranges on the DW1000. Even after compensating for the signal levels you can still get some angle related range differences. Your options are to monitor the angles and compensate for this, use a different antenna/physical design to minimise it or live with it.

You will also get environmental effects. We get around a 5 cm difference between a delay calibration in an office environment and in an open field. We ended up performing a basic delay calibration in production and then a final on site calibration once a system is installed.

Hello @AndyA, thanks for the reply.
It is visible in the DWM3000 datasheet on page 17 that the gain is very sensitive to angle variations. This implies that, at different angles, the gain will vary, reducing the power of the received signal.
Is it possible to compensate for the angle variation by only looking at the received signal level? (only in LOS situations i assume). If so, is there any documentation explaining how I can do that?

Are you using the DW1000 as your post is tagged or DW3000?
From memory the DW3000 includes some corrections for signal levels, the DW1000 you need to apply that correction manually.

If you have the tags in the correct orientation and polarisation relative to each other and everything is roughly the same height then the gain is fairly uniform for all angles (on both the DWM1000 and DWM3000). However even in this configuration you will still see orientation specific range differences. You can’t calculate the angle based on the signal level in that situation since the signal level isn’t changing.

Personally I changed the antenna (and PCB design) to eliminate any azimuth impact on the range measurements. Well almost eliminate, nothing’s ever perfect. I then use the calculated to position to estimate the elevation angle (elevation angle to the antenna is easier since it’s easy to get everything to have the same side pointing down) and apply a correction based on the impact of elevation on the measurement accuracy.

I am currently using the DW3000. I found some register configurations in the User Manual, and I followed this guide to set what I believe to be the optimal values (although I am not sure if they truly are):

I am using the ss_twr_initiator.c and ss_twr_responder.c examples for communication.
Do you recommend building my own code, or is there a more up-to-date example that already includes register configurations?

I am currently in the process of designing a PCB. From your experience, is there a specific antenna design that I could use to avoid these kinds of problems?

For basic configuration the drivers should set things to the correct values, it’s a fairly mature part now so I’d expect any recent driver to use the same register values. While you may need to access registers directly to set mode/timing options or read additional information you shouldn’t need to do that for configuration.
The example ranging code has issues when it comes to expanding it to a larger system but for basic ranging should be ok as a starting point, you can use that and add corrections on top of the results it gives you. For example I have two delay calibration values, a factory set value and a site specific value measured after installation. The factory set value is applied directly to the DW chip as the programmed antenna delay. The site specific one (typically under 10cm) is then added/removed as part of the position calculation as are any corrections due to elevation angles.

In terms of antenna, the best design for an antenna is generally completely impractical for a real use case. It’s a trade off between performance and practicality. The best I’ve found is a bi-conical antenna on a cable that puts it at least 1m away from any structure or pcb. But then ignoring the physical issue the cable and the connections to it cause all sorts of delay calibration issues. We use a monocone antenna over a ground plane with the electronics on the underside of that board. This gives a significant improvement in uniformity over a chip or pcb trace antenna but at the cost of a significantly larger and more mechanically complex design.