DW1000 Calibration

  1. Yes. In my system all of the antenna delay setting code stores the delay in meters rather than seconds. The final conversion to DW1000 clock ticks (divide by c, multiply by DW1000 clock rate) is only done right before writing to the registers. I started this way because for the prototypes I initially used zero delay and then in post processing applied the corrections to the measured ranges. I kept it that way after the delays were moved to the DW1000 delay registers because it makes the numbers nicer to work with and personally I find it easier to visualize.

  2. Yes, assign half the delay to each. This may not be perfect but it’s generally close enough. Especially when dealing with two way range systems where round trip timing is used so you always have the same number of transmits as receives.

  3. Yes, a least square regression is the same. My initial prototype system used a python script to do this, I’ve dug out a copy and attached it below. It uses the scipy library for most of the work. We don’t use this any more, it’s been moved into a c# application, but the basic concept remains the same.
    This same technique can, with sufficient anchors, be expanded to also estimate the anchor locations. Even under ideal circumstances (an empty field) this will get things a few cm wrong, indoors with obstructions it can get a lot worse. But depending on your environment it can be good enough for a quick and dirty setup or as a sanity check to ensure that the setup is good e.g. you don’t have two anchors swapped over.

CalAntennas.py (1.9 KB)