-
Notifications
You must be signed in to change notification settings - Fork 288
Testbed and Adapter board
Instead of wiring everything by hand kuek developed PCBs, which can be used immediately. He also developed a software which runs the 3D positioning algorithm. The results are shown on his website. There are also complete kits, incluing all components. These work and there are no struggles with the IRQ pin or wrong wiring.
If you ask them, they also sell PCBs pre-soldered with SMD components (without the DWM1000 chip or Arduino). So if you have already the Decawave chips and Arduino, just send them an email and ask for the PCBs only. You can also get the software and hardware under www.localino.net.
On their website there is an arduino PCB version available for good value. Much cheapter than developing and making your own PCBs.
They have also STM32 based hardware which runs much faster than the arduino boards. With these is possible to get fast location of multiple tags and anchors. see the video here: https://www.youtube.com/watch?v=vubk64ok1TA Lets make this lib even better in the future!
Arduino 328p
STM32F1
The testbed in use employs
-
the DWM1000 on the adapter board
-
an Arduino (in this case a "Pro Mini 3.3V")
-
(a 330 Ohms resistor and some wires)
and is wired just as follows:
In case one of the "smaller" Arduino boards (like the "Pro Mini") is used, please note that external power supply is a must. Usually these boards have an onboard 50mA (max.) power regulator which is by far too weak for 160mA peaks that may occur when sending packets with the DWM1000.
The adapter board is designed to fit a regular bread-broad or proto-board. Note: If you don't have specific SMD soldering equipment at hand, simple buy and use some additional (SMD) Flux to properly solder each pin with a regular solder iron.
The adapter board has the following pin mapping:
Pin | Function |
---|---|
1 (EXTON) | see DW1000 manual |
2 (WAKEUP) | see DW1000 manual |
3 (RSTn) | Resetting the chip (by pulling low) |
4 (GPIO7) | see DW1000 manual |
5 (VDD) | 3.3V power supply |
6 (GPIO6) | see DW1000 manual |
7 (GPIO5) | see DW1000 manual |
8 (GPIO4) | see DW1000 manual |
9 (GPIO3) | see DW1000 manual |
10 (GPIO2) | see DW1000 manual |
11 (GPIO1) | see DW1000 manual |
12 (GPIO0) | see DW1000 manual |
13 (SPICSn) | SPI chip select line (pulling low to activate chip) |
14 (SPIMOSI) | SPI communication towards chip |
15 (SPIMISO) | SPI communication towards controller |
16 (SPICLK) | SPI clock (at most 3MHz in init phase, afterwards up to 20MHz) |
17 (GPIO8) | interrupt asserted line, see DW1000 manual |
18 (GND) | Ground |
part 1 https://sites.google.com/site/wayneholder/uwb-ranging-with-the-decawave-dwm1000 part 2 https://sites.google.com/site/wayneholder/uwb-ranging-with-the-decawave-dwm1000---part-ii
Hint from @davepmo The problem is Wanyne's board drives the Reset pin with an LVC chip. I was able to make this board work without modifying the library but cutting the trace on the bottom of the board that runs from the lvc chip to the DW1000 reset pin. Then add a wire from the arduino pin9 directly to reset. The arduino will then drive reset low appropriately, and when it switches to an input, it "releases" the reset pin allowing it to pull itself high. Because the arduino never drives the pin high, it can be a 3V or 5V arduino, doesn't matter.