🔍 What Is BU03 and What Is UWB?
BU03-Kit is a UWB (Ultra-Wideband) development module created by Ai-Thinker, designed for high-precision indoor positioning and ranging applications. It integrates the DW3000 chip and supports centimeter-level accuracy, making it ideal for robotics, smart infrastructure, and IoT systems.
UWB (Ultra-Wideband) is a short-range wireless communication protocol that uses very low energy over a wide frequency spectrum. Its key advantage lies in precise distance measurement and spatial awareness, often used in real-time location systems (RTLS), asset tracking, and gesture recognition.
🧪 BU03-Kit Evaluation: UWB Distance Calibration
This article outlines the calibration process for improving the ranging accuracy of the Ai-Thinker BU03-Kit UWB module.
🛠️ Calibration Workflow
🧭 Setup
-
Fix the base station board in place.
-
Move the tag board to known distances using a tape measure.
-
Record UWB readings and input them into an Excel calibration sheet (Download Excel template).
📐 Linear Fitting
-
Use Excel to perform linear regression on the collected data.
-
Derive the calibration equation: y = 6.4624 x - 87.918(This is my data)
-
Apply the slope and intercept to the device using AT commands.

📊 Data Collection Procedure
🧪 Step-by-Step Measurement
-
Place the tag board at 10 cm from the base station and record the UWB reading.
-
Move to 20 cm, record again.
-
Repeat for multiple distances to build a dataset.
📈 Curve Fitting
-
Input the data into Excel.
-
Generate a trendline and extract slope/intercept.
-
Use these values to update device parameters via AT commands.
⚙️ AT Command Calibration
🧾 Command Format
AT+SETDEV=X1,X2,X3,X4,X5,X6,X7,X8,X9
Parameter | Description |
---|---|
X1 | Tag refresh rate |
X2 | Antenna delay |
X3 | Kalman filter enable |
X4 | Kalman filter Q value |
X5 | Kalman filter R value |
X6 | Calibration slope (a) |
X7 | Calibration intercept (b) |
X8 | Positioning enable |
X9 | Positioning dimension setting |
🧪 Example Command
AT+SETDEV=5,16336,1,0.018,0.642,0.6386,-65.06,0,0
-
Send via serial port using Ai-Thinker’s debug assistant.
-
Confirm success and save with
AT+SAVE
.
📋 Original Parameters Snapshot
🧾 Base Station
-
Filter: Enabled
-
Kalman Q: 0.018
-
Kalman R: 0.642
-
Calibration a: 1.0000
-
Calibration b: 0.00
-
Antenna delay: 16336
-
Rate: 6.8 Mbps
🧾 Tag Device
Same as base station.
🔁 Post-Calibration Testing
📐 Measurement Results
Test | Actual Distance | UWB Reading | Error |
---|---|---|---|
1st | 20 cm | 10 cm | 50% |
2nd | 17 cm | 22 cm | 30% |
3rd | 15 cm | 15 cm | 0% |
📊 Error Analysis
-
Average error reduced to 26.67%, down from 50%.
-
Minor fluctuations may be due to angle or surface interference during photo capture.
🚀 Optimization Suggestions
-
Increase sample size for better regression accuracy.
-
Improve fixture stability for base/tag boards.
-
Use sliding rails to ensure consistent movement and distance control.
🧾 Conclusion
This evaluation demonstrates how to calibrate the BU03-Kit UWB module for improved ranging accuracy. By collecting multiple measurements, applying linear fitting, and updating device parameters via AT commands, significant error reduction was achieved. These methods offer valuable guidance for developers requiring high-precision UWB positioning.