ESP32 UWB board features DW1000 module for accurate indoor positioning

FiRa “Fine Ranging” UWB technology was introduced a few years ago and is now found in devkits and Apple U1 chip. Makerfabs ESP32 UWB board provides another option with Espressif ESP32-WROVER-32 or ESP32-WROOM-32 WiFi & Bluetooth module combined with a Decawave DW1000 module for precision tracking.

Makerfabs explains the board acts like a continuously scanning radar that locks onto another device (called Anchor, since it’s usually in a fixed location) and communicates with it to determine the distance between objects by calculating the time of flight (ToF) between devices, or in other words, the roundtrip time of challenge/response packets.

ESP32 UWB board specifications:

  • Wireless modules:
    • WiFi & Bluetooth LE – ESP32-WROVER-32 or ESP32-WROOM-32 module with ESP32 dual-core processor @ 240 MHz
    • UWB – B&T BU01 module based on Decawave DW1000 chip; IEEE802.15.4-2011 UWB compliant wireless transceiver module with a precision of 10cm indoors, a data rate of up to 6.8 Mbps, and a range of up to 300m
  • USB – 1x Micro USB port for power and programming
  • Expansion – 20-pin and 12-pin GPIO headers for expansion
  • Misc – Reset and Flash buttons
  • Power Supply – 5V via micro USB port
BU01/DWM1000 UWB module block diagram

The board is open-source hardware with both hardware (EAGLE) and software available on Github, plus a Wiki on Makerfabs’ website. The software consists of Arduino sketches for UWB Anchor and UWB Tag, as well as another “Indoor positioning” Arduino sketch running a web server combined with Python script to plot the location on a computer or SBC. There’s also a demo showing the location on a small display attached to a Tag. You’ll need at least one Tag and one Anchor for distance measurement, but indoor positioning requires at least two Anchors. You can watch a demo in the video below

Makerfabs ESP32 UWB board is sold with either ESP32 WROOM or WROVER module for around $40 on Tindie or directly on Makerfabs online store.


Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

13 Replies to “ESP32 UWB board features DW1000 module for accurate indoor positioning”

  1. I wonder why it’s limited to indoors. And could you hook up 4 anchors and do 3D positions?

    If it’s affordable enough, I could see this being nice for some quick n dirty surveying/mapping

    1. Maybe because outdoor, GPS is well supported and much cheaper, albeit not quite as accurate, unless using GPS RTK.

    2. This is based on time of flight so all positions are really 3D positions whether you realize it (or consider as much) or not.

      3 anchors/distances are mathematically sufficient to locate a point in 3D space; however, for accuracy, at least one anchor point needs to be at a significantly different elevation; at a known distance above or below the plane of the others.

      Surveying involves repeated measurement where errors have a funny tendency to accumulate. The accuracy here is not really adequate unless you’re willing to accept some pretty gross errors in the results

      1. indeed, 3 positions are not enough. You can try to solve the equations or you can try visualizing intersection of 3 spheres. Either way, it gives you 2 solutions/intersection points. If you know your floor height, you can guess the right one based on that knowledge, but otherwise you need 4 anchors.

        1. By selecting practical/sensible boundaries, 3 are sufficient in practice for most earthbound applications.

          Set one anchor at min elevation. Set a second at the max elevation. The 3rd can be some where between at a planar boundary.

          Only 1 practical solution lies between min and max — and only 3 anchors/distances are required.

          1. Did you actually tried to implement the system or at least do the math or visualize 3 intersecting spheres? Because what you are saying is inaccurate. Imagine 3 spheres barely intersecting each other with centers at z=0. Both intersection points are in the middle, very close to the horizontal plane, above and below. Now tilt the plane. Both points are now between min and max Z of the sphere centers.

      1. When compared with the previous-generation module, the DWM3000 offers substantial improvements on power consumption and the addition of CH9 support.

        But if the product page is up-to-date, it’s not in mass production yet, only engineering samples are available.

  2. Also are the anchor and tag same hardware? Just need to change the config to switch between anchor and tag, right?

  3. If I just need to know the distance and angle between anchor and tag, will I be able to do it with one Anchor and one tag?

  4. I wonder how good this would be when required to cross some obstacles. Say for example I want to know proximity of a car to a door (anchor in the door and tag inside the car) so I can open the door just when the car is close to the door. Would it work? Someone here with knowledge/experience on this area? 🙂

Leave a Reply

Your email address will not be published.