ESP32 UWB Pro – Ultra Wideband Module with Amplifier
ESP32 UWB Pro Code & Library - Ultra Wideband Module with Amplifier designed with DW1000 Chip & OLED display for maximum range of 200 meters
- Suitable forB.Tech/Diploma ESP32/IoT students
- Build time1-2 weeks
- LevelIntermediate
- Available atAjvika Labs, Kakinada
About this project
Overview
In this comprehensive guide, we will explore
Ultra Wideband Technology
using the
ESP32 UWB Pro
Module. This module is equipped with a
DW1000 UWB Chip
, as well as a
Power Amplifier Chip
. Although the
DW1000 UWB Chip
has a native detection range of approximately
40 meters
, the addition of the
Amplifier
chip allows for an extended detection distance of up to
200 meters
Ultra Wideband (UWB)
is a short-range
wireless communication protocol
that relies on
radio waves
for secure, reliable ranging and precision sensing, providing an enhanced spatial context for wireless devices.
Throughout this tutorial, we will examine the board
design
specifications
, and various applications of the
ESP32 UWB Pro Module
. Additionally, we will learn how to utilize this board for
high-accuracy ranging
and
localization
, including distance testing.
To gain a more comprehensive understanding of
UWB Technology
, we recommend reviewing our previous articles related to the
DW1000 Chip
and
DW3000 Chip
before proceeding with this tutorial:
Getting Started with ESP32 DW1000 UWB Module
ESP32 DW1000 UWB Indoor Location Positioning System
Ranging & Localization with ESP32 UWB DW3000 Module
ESP32 DW3000 UWB Module Achieving 500m Range
Bill of Materials
We need the following components for this project. You can purchase the components from the given links.
S.N.
Components
Quantity
Purchase Links
ESP32 UWB Pro Board
Makerfabs
ESP32 UWB Pro Board with Display
Makerfabs
Type C USB Cable
Amazon
AliExpress
ESP32 DW1000 UWB(Ultra Wideband) Pro Board
Ultra-wideband (UWB) is a short-range, wireless communication protocol that operates through radio waves, and enables secure reliable ranging and precision sensing, creating a new dimension of spatial context for wireless devices.
The ESP32 DW1000 UWB(Ultra Wideband) Pro Board is manufactured by
Makerfabs
. It uses a DW1000 UWB Pro Chip for Ultra Wideband Communication.
In particular, the ESP32 UWB and UWB DW3000, which offer a maximum distance of 40 meters, may not be sufficient for certain outdoor positioning or large storage positioning applications. To address this challenge, a high-power version of the UWB transceiver has been developed after extensive testing.
With the high-power version, the maximum distance that can be achieved is up to 200 meters. This increased range makes it more suitable for applications where longer distances are required, such as outdoor positioning or large storage facility positioning. This development showcases the versatility of UWB technology and its potential to cater to a wide range of wireless communication requirements.
features of DW1000 UWB Pro
The Key features of the DW1000 UWB Pro include:
UWB technology
: The DW1000 uses UWB technology, which operates in the 3.5-6.5 GHz frequency range, allowing for high-precision, low-power communication.
Precision
: The chip can achieve centimeter-level accuracy in positioning and ranging by measuring the time it takes for a signal to travel between the transmitter and receiver.
Data rates
: The DW1000 supports multiple data rates, including 110 kbps, 850 kbps, and 6.8 Mbps.
Channel support
: The device supports 6 different channels, allowing for more flexibility in system design and operation.
Low power consumption
: The DW1000 is designed for low power consumption, making it suitable for battery-powered devices and energy-efficient systems.
Integration
: The chip can be easily integrated into various devices and systems, including IoT devices, robotics, and industrial automation.
Security
: The DW1000 has built-in security features, such as data encryption and secure-ranging protocols, to ensure secure communication.
Scalability
: The UWB technology used in the DW1000 allows for the development of large-scale networks with thousands of nodes.
Key features of ESP32 UWB Pro Board
ESP32 for fast & powerful applications
Support Wifi, Bluetooth
Arduino IDE Compatible
Type C USB connector
Board USB supply voltage range: 4.8~5.5V, 5.0V Typical
On-board OLED, 1.3” 128*64, so the distance results can be directly displayed
Lipo battery charger& connector, so this module can work separately with batteries
Update UWB position, so the module can be directly installed into a case
Range of DW1000 UWB Pro
The range of the Decawave DW1000 UWB transceiver depends on various factors such as the environment, antenna design, and device settings. However, under typical operating conditions, the DW1000 can achieve a line-of-sight communication range of up to 290 meters (approximately 950 feet). This range can be affected by factors such as signal strength, interference, and obstacles in the communication path.
It is essential to optimize antenna design, device settings, and environmental factors to achieve the desired range for specific applications.
Source Code/Program & Library
Let us see the code for ESP32 UWB Pro Module with display. The ESP32 UWB Pro has DW1000 Chip with an amplifier. Hence it requires a modified DW1000 Library. Apart from the DW1000 library, it also requires the library for OLED Display.
DW1000 Modified Library:
Download
Adafruit GFX Library:
Download
Adafruit SSD1306 Library:
Download
After installing the library, we need to upload the code to the pair of ESP32 UWB Pro Module. One of the modules will act as an Anchor and the other one as a Tag.
Prepare the module and connect it to the PC with a Type-C cable. Select the development board “ESP32 Dev Module” and the port.
Anchor Code
Upload the following sketch to the ESP32 UWB Pro board. This module can be an anchor port to receive the other UWB device signal.
#include <SPI.h>
#include "DW1000Ranging.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ANCHOR_ADD "86:17:5B:D5:A9:9A:E2:9C"
#define SPI_SCK 18
#define SPI_MISO 19
#define SPI_MOSI 23
#define UWB_RST 27 // reset pin
#define UWB_IRQ 34 // irq pin
#define UWB_SS 21 // spi select pin
#define I2C_SDA 4
#define I2C_SCL 5
Adafruit_SSD1306
display
(
&
Wire
)
;
void
setup
(
)
{
Serial
begin
(
115200
)
;
Wire
begin
(
I2C_SDA
I2C_SCL
)
;
delay
(
1000
)
;
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if
(
!
display
begin
(
SSD1306_SWITCHCAPVCC
0x3C
)
)
{
// Address 0x3C for 128x32
Serial
println
(
F
(
"SSD1306 allocation failed"
)
)
;
for
(
;
;
)
;
// Don't proceed, loop forever
}
display
clearDisplay
(
)
;
logoshow
(
)
;
// init the configuration
SPI
begin
(
SPI_SCK
SPI_MISO
SPI_MOSI
)
;
DW1000Ranging
initCommunication
(
UWB_RST
UWB_SS
UWB_IRQ
)
;
// Reset, CS, IRQ pin
DW1000Ranging
attachNewRange
(
newRange
)
;
DW1000Ranging
attachBlinkDevice
(
newBlink
)
;
DW1000Ranging
attachInactiveDevice
(
inactiveDevice
)
;
DW1000Ranging
startAsAnchor
(
ANCHOR_ADD
DW1000
MODE_LONGDATA_RANGE_LOWPOWER
false
)
;
}
void
loop
(
)
{
DW1000Ranging
loop
(
)
;
}
void
newRange
(
)
{
Serial
(
"from: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getShortAddress
(
)
HEX
)
;
Serial
(
"\t Range: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getRange
(
)
)
;
Serial
(
" m"
)
;
Serial
(
"\t RX power: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getRXPower
(
)
)
;
Serial
println
(
" dBm"
)
;
}
void
newBlink
(
DW1000Device *
device
)
{
Serial
(
"blink; 1 device added ! -> "
)
;
Serial
(
" short:"
)
;
Serial
println
(
device
->
getShortAddress
(
)
HEX
)
;
}
void
inactiveDevice
(
DW1000Device *
device
)
{
Serial
(
"delete inactive device: "
)
;
Serial
println
(
device
->
getShortAddress
(
)
In this comprehensive guide, we will explore
Ultra Wideband Technology
using the
ESP32 UWB Pro
Module. This module is equipped with a
DW1000 UWB Chip
, as well as a
Power Amplifier Chip
. Although the
DW1000 UWB Chip
has a native detection range of approximately
40 meters
, the addition of the
Amplifier
chip allows for an extended detection distance of up to
200 meters
Ultra Wideband (UWB)
is a short-range
wireless communication protocol
that relies on
radio waves
for secure, reliable ranging and precision sensing, providing an enhanced spatial context for wireless devices.
Throughout this tutorial, we will examine the board
design
specifications
, and various applications of the
ESP32 UWB Pro Module
. Additionally, we will learn how to utilize this board for
high-accuracy ranging
and
localization
, including distance testing.
To gain a more comprehensive understanding of
UWB Technology
, we recommend reviewing our previous articles related to the
DW1000 Chip
and
DW3000 Chip
before proceeding with this tutorial:
Getting Started with ESP32 DW1000 UWB Module
ESP32 DW1000 UWB Indoor Location Positioning System
Ranging & Localization with ESP32 UWB DW3000 Module
ESP32 DW3000 UWB Module Achieving 500m Range
Bill of Materials
We need the following components for this project. You can purchase the components from the given links.
S.N.
Components
Quantity
Purchase Links
ESP32 UWB Pro Board
Makerfabs
ESP32 UWB Pro Board with Display
Makerfabs
Type C USB Cable
Amazon
AliExpress
ESP32 DW1000 UWB(Ultra Wideband) Pro Board
Ultra-wideband (UWB) is a short-range, wireless communication protocol that operates through radio waves, and enables secure reliable ranging and precision sensing, creating a new dimension of spatial context for wireless devices.
The ESP32 DW1000 UWB(Ultra Wideband) Pro Board is manufactured by
Makerfabs
. It uses a DW1000 UWB Pro Chip for Ultra Wideband Communication.
In particular, the ESP32 UWB and UWB DW3000, which offer a maximum distance of 40 meters, may not be sufficient for certain outdoor positioning or large storage positioning applications. To address this challenge, a high-power version of the UWB transceiver has been developed after extensive testing.
With the high-power version, the maximum distance that can be achieved is up to 200 meters. This increased range makes it more suitable for applications where longer distances are required, such as outdoor positioning or large storage facility positioning. This development showcases the versatility of UWB technology and its potential to cater to a wide range of wireless communication requirements.
features of DW1000 UWB Pro
The Key features of the DW1000 UWB Pro include:
UWB technology
: The DW1000 uses UWB technology, which operates in the 3.5-6.5 GHz frequency range, allowing for high-precision, low-power communication.
Precision
: The chip can achieve centimeter-level accuracy in positioning and ranging by measuring the time it takes for a signal to travel between the transmitter and receiver.
Data rates
: The DW1000 supports multiple data rates, including 110 kbps, 850 kbps, and 6.8 Mbps.
Channel support
: The device supports 6 different channels, allowing for more flexibility in system design and operation.
Low power consumption
: The DW1000 is designed for low power consumption, making it suitable for battery-powered devices and energy-efficient systems.
Integration
: The chip can be easily integrated into various devices and systems, including IoT devices, robotics, and industrial automation.
Security
: The DW1000 has built-in security features, such as data encryption and secure-ranging protocols, to ensure secure communication.
Scalability
: The UWB technology used in the DW1000 allows for the development of large-scale networks with thousands of nodes.
Key features of ESP32 UWB Pro Board
ESP32 for fast & powerful applications
Support Wifi, Bluetooth
Arduino IDE Compatible
Type C USB connector
Board USB supply voltage range: 4.8~5.5V, 5.0V Typical
On-board OLED, 1.3” 128*64, so the distance results can be directly displayed
Lipo battery charger& connector, so this module can work separately with batteries
Update UWB position, so the module can be directly installed into a case
Range of DW1000 UWB Pro
The range of the Decawave DW1000 UWB transceiver depends on various factors such as the environment, antenna design, and device settings. However, under typical operating conditions, the DW1000 can achieve a line-of-sight communication range of up to 290 meters (approximately 950 feet). This range can be affected by factors such as signal strength, interference, and obstacles in the communication path.
It is essential to optimize antenna design, device settings, and environmental factors to achieve the desired range for specific applications.
Source Code/Program & Library
Let us see the code for ESP32 UWB Pro Module with display. The ESP32 UWB Pro has DW1000 Chip with an amplifier. Hence it requires a modified DW1000 Library. Apart from the DW1000 library, it also requires the library for OLED Display.
DW1000 Modified Library:
Download
Adafruit GFX Library:
Download
Adafruit SSD1306 Library:
Download
After installing the library, we need to upload the code to the pair of ESP32 UWB Pro Module. One of the modules will act as an Anchor and the other one as a Tag.
Prepare the module and connect it to the PC with a Type-C cable. Select the development board “ESP32 Dev Module” and the port.
Anchor Code
Upload the following sketch to the ESP32 UWB Pro board. This module can be an anchor port to receive the other UWB device signal.
#include <SPI.h>
#include "DW1000Ranging.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ANCHOR_ADD "86:17:5B:D5:A9:9A:E2:9C"
#define SPI_SCK 18
#define SPI_MISO 19
#define SPI_MOSI 23
#define UWB_RST 27 // reset pin
#define UWB_IRQ 34 // irq pin
#define UWB_SS 21 // spi select pin
#define I2C_SDA 4
#define I2C_SCL 5
Adafruit_SSD1306
display
(
&
Wire
)
;
void
setup
(
)
{
Serial
begin
(
115200
)
;
Wire
begin
(
I2C_SDA
I2C_SCL
)
;
delay
(
1000
)
;
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if
(
!
display
begin
(
SSD1306_SWITCHCAPVCC
0x3C
)
)
{
// Address 0x3C for 128x32
Serial
println
(
F
(
"SSD1306 allocation failed"
)
)
;
for
(
;
;
)
;
// Don't proceed, loop forever
}
display
clearDisplay
(
)
;
logoshow
(
)
;
// init the configuration
SPI
begin
(
SPI_SCK
SPI_MISO
SPI_MOSI
)
;
DW1000Ranging
initCommunication
(
UWB_RST
UWB_SS
UWB_IRQ
)
;
// Reset, CS, IRQ pin
DW1000Ranging
attachNewRange
(
newRange
)
;
DW1000Ranging
attachBlinkDevice
(
newBlink
)
;
DW1000Ranging
attachInactiveDevice
(
inactiveDevice
)
;
DW1000Ranging
startAsAnchor
(
ANCHOR_ADD
DW1000
MODE_LONGDATA_RANGE_LOWPOWER
false
)
;
}
void
loop
(
)
{
DW1000Ranging
loop
(
)
;
}
void
newRange
(
)
{
Serial
(
"from: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getShortAddress
(
)
HEX
)
;
Serial
(
"\t Range: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getRange
(
)
)
;
Serial
(
" m"
)
;
Serial
(
"\t RX power: "
)
;
Serial
(
DW1000Ranging
getDistantDevice
(
)
->
getRXPower
(
)
)
;
Serial
println
(
" dBm"
)
;
}
void
newBlink
(
DW1000Device *
device
)
{
Serial
(
"blink; 1 device added ! -> "
)
;
Serial
(
" short:"
)
;
Serial
println
(
device
->
getShortAddress
(
)
HEX
)
;
}
void
inactiveDevice
(
DW1000Device *
device
)
{
Serial
(
"delete inactive device: "
)
;
Serial
println
(
device
->
getShortAddress
(
)
Technologies used
Hardware components
- ESP32
- Arduino
- SSD1306
- OLED
Software & tools
- Arduino IDE
What you get
- Working project / hardware kit, tested before delivery
- Complete source code with explanation
- Project demo and guidance for your viva
- Project report, PPT and IEEE paper support (on request)
Delivery & Payment
Delivery takes a minimum of two weeks from the date your inquiry is confirmed.
Payment is in two parts:
• 50% advance to start the project
• Remaining 50% before delivery
Note:
• Documentation and PPT are not included by default
• If you need documentation/PPT, it can be arranged for extra time and cost
We'll confirm the exact timeline and cost with you after reviewing your requirements.