#raspberry-pi #driver #decawave #high-level #module #communication #uwb

no-std dw3000

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

6 releases

0.2.0 Apr 19, 2022
0.1.4 Jan 13, 2022
0.1.3 Nov 8, 2021
0.1.2 Oct 27, 2021

#877 in Hardware support

0BSD license

155KB
2K SLoC

Rust DW3000 Driver crates.io Documentation

Introduction

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.

Status

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.

Usage

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

[dependencies]
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.

Documentation

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

Please also refer to the DW3000 User Manual

License

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

Dependencies

~4MB
~83K SLoC