ESP32 + DW3000 Interaction with Android and iOS

Is it possible to use ESP32 MCU with DW3000 and will this enable us to use real time location tracking (TDoA, ToF) using Ultra Wide Band?
Our idea is to use ESP32 as the anchor and Android and iOS device(s) as tag.
Thanks.

Possible - yes.
Easy - probably not.
The first issue is you will need a suitable driver for the DW3000. The only official ones are only available as a pre-compiled library that’s been built for ARM processors. Since the ESP32 isn’t ARM based that’s not going to work. So you either need to get hold of the source code for an older version that was released and port it, find a 3rd party driver that does work/can be ported to ESP32, or write your own.

1 Like

Thanks for the reply,

Could you please point me towards some resources on this? I am unable to find relevant source code to solve the issue. Also, I’m afraid I do not have enough expertise to write driver code on my own. (low level programming)

But I did find this repo by Makerfabs GitHub - Makerfabs/Makerfabs-ESP32-UWB-DW3000 - Can I use the dw3000 driver library from this repo for my use case?

That repo should make a good starting point.
Looks like they have already taken the older driver that was published and ported it to the ESP32. That porting was mainly a case of changing the SPI calls from STM hardware specific to ones that are arduino compatible.

Since it’s using the standard decawave api most of the decawave examples for how to do different types of ranging should work with minimal modification.

However as a look on this forum will tell you going from the examples to a fully working system can still get tricky. I don’t want to discourage you however you should be aware that this sort of thing isn’t as polished and easy to use as most arduino type projects.

1 Like

Thank you for your response. I will try to arrange for a DWM3001CDK since it uses a Nordic chip instead of an ESP32. I will revisit the ESP32 sometime after I make the Nordic implementation work. I am planning to work on a small Real-Time Location System project for indoor navigation. However, I am facing an issue with Apple’s Nearby Interaction as I couldn’t find an implementation for handling multiple NI sessions. Please do keep me posted if you have any advice or tips on this. Thanks again for responding; I received a lot of help