I’m new to UWB applications and would like some advice on what to buy to start develop.
I need to track a moving hand held “tool” 0.2 to 5 meters away. The moving object should have a tag powered with battery. The stationary UWB receiver should control a motor depending on distance. I only think absolute distance is necessary (TWR?). I hoped for an easy Arduino project which I could connect a motor and an encoder to, but then read that the UNO processor is limited for these applications. And also there seemed to be concerns of lack of support.
What do you recommend? I have less than two months to make this “prototype” work with rather limited time for it in my schedule. I have done some embedded on a PIC and Arduino and I’m trying to get back into embedded work tasks.
Should I buy DWM3001CDK, DWM1001-DEV, DWS1000 (Arduino shield), DWM3000EVB(Arduino Shield)? Maybe ESP32 boards from Makerfab? I’m not sure if the more advanced modules (DWM3001CDK) would make it more easier or more complex to develop this.
Assuming you’re not aiming for mm accuracies then I’d go with an arduino / DW1000 based system. Most of the hardware and code that you will need is there out of the box. Will it be the most power efficient or fastest updating system possible? No. Is it the quickest route to something that works and you can build upon? Probably.
From what you said the hopefully far shorter time to get things running is worth the downsides. There should ex ready to go TWR examples out there that will need minimal code changes to get working.
Certainly go with an ARM based Arduino board but beyond that unless you run out of IO most of them will be fine unless you’re really pushing the update rate or other tasks that you want it to do.
Thank you for the fast reply AndyA! Yes I think even 5 cm accuracy is good enough. It is just accuracy in moving a support for the hand tool which is not a precision tool. A good algoritm should be able smooth out the movements even with low accuracy.
For the tag sitting on the moving object. I’m assuming that I can program the DW1000 on the arduino shield and then remove it and connect a battery/power source for it to serve as a tag? The anchor shield will be connected to the arduino board and I can then receive distance measurements to control the motor?
Yes, if you look for examples you should be able to find ones labelled TWR initiator and TWR responder or similar (Sorry don’t know the arduino support well enough to point to specific examples but these are two fairly standard example projects)
Assuming there is only one pair of devices in the area any suitable examples should do just about everything you need. Things start getting more complicated with more devices in the area since you need to correctly share air time and make sure you are talking to the correct device. But it sounds like you don’t need to worry about that for now.
Put the responder on the drill, the initiator on the base and you should be good.
One feature you may want to add on the initiator is a zero button. You can get a constant offset range errors due to antenna and sometimes environmental effects. For location calculation systems you need to calculate how much of this error is due to each device, something that isn’t trivial. But for a simple point to point system you don’t care where the error is from as long as it’s constant. So add an option to place the two a fixed distance apart, normally where the distance you want to measure is zero but it could also be at maximum arm extension or any other repeatable distance, and hit a button to zero the errors. The software can then compare the measured range with the known actual range and add/remove the difference from all subsequent measurements.
This also takes care of any mounting issues where the antennas aren’t exactly at the points you want to measure.
edit - sorry, just re-read your post and realised I’d missed what you were saying. Leapslabs is correct below, you can’t program a DW1000 using an arduino and then remove it from the processor and expect it to work. You need to keep the arduino connected. The DW1000 can’t run any code itself, it’s a dumb device that needs to be driven.
DW1000 is just the radio, there is no MCU inside. Check the DWM1001 modules which are MCU + radio onboard.
If you will use the DWM1001 try PANS SW just as a quick demo. Put the Anchor initiator (ANI) onto your handheld device and connect TN into the PC/Arduino (or whatever) and use les command to observe the distance. PANS SW is probably not the best solution for you as you need to place the ANI in to your hand held device and ANI has a higher power consumption. In PANS is it designed that the anchors are connected to power line and TAGs are supposed to be battery operated.