#wide #driver #module #high-level #low #level


A driver for DW3000 Ultra Wide Band module implementing low and high level

6 releases

Uses new Rust 2021

0.2.0 Apr 19, 2022
0.1.4 Jan 13, 2022
0.1.3 Nov 8, 2021
0.1.2 Oct 27, 2021
Download history 1/week @ 2022-01-19 4/week @ 2022-01-26 1/week @ 2022-02-09 5/week @ 2022-02-23 16/week @ 2022-03-16 15/week @ 2022-03-23 3/week @ 2022-03-30 5/week @ 2022-04-06 9/week @ 2022-04-13 13/week @ 2022-04-20 32/week @ 2022-04-27 42/week @ 2022-05-04

96 downloads per month

0BSD license


Rust DW3000 Driver crates.io Documentation


Driver for the Decawave DW3000 UWB transceiver, written in the Rust programming language. We used the crate dw1000 developped for the DW1000 module and changed the registers access and spi functions, added fast command and implemented some high level functions.


Both RTT methods (single and double sided) are working and giving good positioning values. No implementation of PDoA or AoA.

We tested the crate using two different platforms; both platforms examples are available on dedicated repository (raspberry pi and STM32F103RB) Examples available are basic communication and distance measurement between two modules (single and double sided RTT)

We built the driver on top of embedded-hal, which means it is portable and can be used on any platform that implements the embedded-hal API.


Include this crate in your Cargo project by adding the following to Cargo.toml:

dw3000 = "0.2.0"

We also provided workspaces in which you can find some example depending of the target (raspberry pi or stm32f103rb). We built stm32f103rb examples using the app-template of the knurling project. Unfortunately, you cannot build your example directly from the main repository, you need to navigate to the examples folder to build and run applications.


Please refer to the API Reference. Please refer to our github for exemples github link.

Please also refer to the DW3000 User Manual


This project is open source software, licensed under the terms of the Zero Clause BSD License (0BSD, for short). This basically means you can do anything with the software, without any restrictions, but you can't hold the authors liable for problems.

See LICENSE.md for full details.

Based on Braun Embedded
Modified by SII


~70K SLoC