I’m trying to start off, but can’t really get a good approach to what I want to achieve.
I already experimented with a simple setup off 3 anchors and 1 tag.
I want to track upto 80 tags within a square area of approx 150 x 150m. the plan is to have 8 anchors along the sides. An accuracy of approx. 20-30cm would be enough. There are barely any obstacles in the way.
So my questions are:
a) is this possible at all?
b) what is the best ranging technology to use (TWR, DS-TWR,TDOA)
c) should I consider more anchors?
Thanks for your suggestions and answers
150 x 150 m is a large area to cover from just the sides.
For good accuracy you need anchors on all sides which would require you to get >150m range. That’s possible but not easy.
Fortunately you don’t need good accuracy, if the tag can only see anchors on one side of it then there is some ambiguity in the solution but good positioning algorithms with appropriate constraints could solve that for you. You would still need >75 m range which the off the shelf modules can struggle with.
So to answer your questions:
a) is it possible
Yes. From my experience I’d feel fairly confident in saying that I could build something that met your requirements. That’s not the same as saying it would be easy, I’m not sure how much of the off the shelf decawave hardware and software would be usable and how much you’d have to do custom.
b) The best ranging technology
That depends. Who needs to know where the tags are? the tags or the building?
Are their any issues that would prevent you running dedicated cables between anchors?
Generally a TDoA system would be my first option for what you want. It gives the simplest tags and easiest way of dealing with lots of tags. But the final system can depend on the final application and installation constraints.
c) More anchors?
Yes, Some anchors in near the middle of the area would make things a lot easier, they would improve your geometry and so improve accuracy while significantly reducing the range requirements.
thanks for your detailed answers.
Basically the building needs to know the location of the tags - the tags can be dumb electronics carrying an ID. There are no restrictions whether I use cables or any sort of WiFi at this point.
This brings me to another point: If I use WiFi do I need to take care of some shielding or something?
What minimum MCU frequency would you suggest for the anchors? Should I go for an ARM or might a PIC24 be enough computing power?
So this is an asset tracking warehouse type application?
In that situation TDoA is certainly the best option.
Use a wired clock between anchors to ensure they are all on the same clock rate and then either a wired sync line or a tag in a known location with a clear line of sight to provide synchronization.
No special care needs to be taken for WiFi, the normal best practice rules of putting a shield can over any RF transmit or receive circuit applies but beyond that there shouldn’t be any issues unless you do something stupid.
Sneaky trick you can use: For positioning the tags only need to transmit. But if two transmit at the same time you can’t track either. Which then means you need some way to allocate timing and avoid conflicts which requires a receiving radio and extra complexity.
Or you do it the lazy way: Each tag transmits blindly at roughly the same rate but you use something like a deliberately imprecise RC network or random time bias to ensure that they aren’t exactly the same period. Two may conflict on one transmission but by the next update you should get them both again.
Obviously this only works up to a certain point before you get constant conflicts and does mean that you will get occasional 1 or 2 update dropouts. But since any allocated time slots of a formal TDMA system would need to be significantly larger than the actual message lengths the maximum capacity isn’t much lower and it makes for far simpler tags. And you’re always going to get dropouts anyway so any end system needs to be able to cope with them to some level.
To answer your question on computing power: Actual transmit of a low rate (a few Hz) timing message doesn’t require any meaningful computing power, you have effectively unlimited time to fill the transmit buffer. The only reason you’d need more is if you need to handle two way communication in real time or make complex calculations to work out what message to send.
Yes, you are right. This is an live stock tracking application.
You brought up two more thoughts in my mind:
a) double DW1000 anchor
would it make sense to have 2 DW1000s on the anchor to ensure RX readiness at all times? Or would it mess up radio trafic big time? Basically the idea is something based on the design of a LoRa gateway…
b) update rate using TDoA or TWR
what would be the theoretically highest update rate I could achieve with both approaches?
a) two units on anchor.
Probably not worth it.
The chip has the option to use some buffered registers on the receiver side so that you can receive a new message while still reading the previous one. That is probably easier to use than having to enable the receive on a second chip. Two chips would allow you to in theory queue up 4 messages but if you’re having that much trouble keeping up then you probably need either a faster processor or to streamline your communications a little.
e.g. The system I have has some very tight timing constraints and SPI is slow so I deliberately avoid reading things like the receive signal strength data, it would be nice to know but it’s not worth the extra time it would take. Similarly the actual data packets I use are kept to a bare minimum, not to reduce transmit time but to reduce register read and write times.
b) TDoA requires a single message from the tag to the anchors to calculate a location. TWR requires two way communications between the tag and each anchor. Assuming 4 anchors that means an absolute minimum of 8 messages.
So TDoA is going to be a lot faster.
The system I’m working on uses TWR (one of the relatively rare situations where the product requirements mean that TDoA wasn’t appropriate) and can calculate positions at 100 Hz. If I relaxed some of the other requirements and increased the position calculation processors speed I could probably up that to 200 or maybe 250 Hz still using TWR.
If I added the appropriate hardware for a wired time sync between the anchors and switched to TDoA I could up my position rate to 1 kHz easily, 2 or 3 kHz would probably be possible without much effort.
Higher rates may be possible, that’s just what the system I came up with can do.
Thanks for all the insights you gave me.
Please allow one more question: Is your hardware using the DWM or a custum DW assembly?
The DW1000 directly onto the board.
Initial prototypes were using the DWM1000 but the antenna proved to be a big imitation for us. We ended up removing it, hacking an SMA connector on in place of it and then connecting a different antenna. From an RF signal integrity point of view it was impressive that it still worked at all, our impedance control was virtually non-existent
The next version we dropped the module. The antenna was the critical reason for the change, other than that the module wasn’t a significant limitation and did make board design and layout a lot easier.