Giter VIP home page Giter VIP logo

rust-dwm1001's Introduction

THIS REPOSITORY IS DEPRECATED.

It has been merged into https://github.com/braun-embedded/rust-dw1000.

DWM1001 Board Support Crate crates.io Documentation Build Status

Introduction

Board support crate for the Decawave DWM1001 module and DWM1001 development board board, written in the Rust programming language.

Status

This crate itself is relatively stable and complete, but is still missing some features. Be mindful that its API exposes a number of other crates, whose development status varies.

This project is still in development. No guarantee of API stability is made, so expect future versions to require updates in your code.

Usage

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

[dependencies.dwm1001]
version = "0.2"

This crate exposes various Cargo features that are useful in various situations, none of which is enabled by default:

  • dev: Exposes the features of the DWM1001 development board. If you're working with the DWM1001 development board, as opposed to a bare DWM1001 module, enable this feature.
  • rt: Enables runtime features. This is required if you're writing an application. Libraries should not enable this feature.
  • semihosting: Enable debug output via semihosting. Enable this feature only if you need it. If you enable this feature without being connected to a host, the program on the microcontroller won't run.

To build, upload and run an applicatio built on this library, you need working configuration for Cargo, cortex-m-rt, OpenOCD and GDB. You can use .cargo/config, openocd.cfg, memory.x, and .gdbinit from this repository as a starting point.

Documentation

Please refer to the API Reference for further documentation.

Example programs are available in the GitHub repository.

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 for full details.

Created by Braun Embedded
Initial development sponsored by Ferrous Systems

rust-dwm1001's People

Contributors

hannobraun avatar jamesmunns avatar nbigaouette avatar spacejam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-dwm1001's Issues

Apply range bias to distance measurement

The measured distance value is usually too large. To get a more accurate result, a bias needs to be applied. Strictly speaking, the value of this bias depends on the received signal strength. For the DWM1001, it should be accurate enough to apply the bias for the measured range. This is described in Application Note APS011.

The bias correction is implemented in Decawave's driver code. The code for that is available, but there's no license that would allow us to use that code. The following description is intended to serve as a specification, to make it possible to create a clean-room implementation.

The range bias value is applied using the following formular:

<corrected distance> = <measured distance> + <range bias>

The range bias value consists of two parts according to the following formular:

<range bias> = <base part> + <distance-dependent part>

The range bias value depends on the following parameters:

  • The measured distance
  • The channel being used to send/receive the ranging messages
  • The PRF setting (16 MHz or 64 MHz)

Channels are grouped into two groups:

  • 1, 2, 3, and 5 are narrow-band channels.
  • 4 and 7 are wide-band channels.

The base part values are:

  • -23 cm for 16 MHz PRF, narrow-band channel
  • -28 cm for 16 MHz PRF, wide-band channel
  • -17 cm for 64 MHz PRF, narrow-band channel
  • -30 cm for 64 MHz PRF, wide-band channel

The following lists provide the distance-dependent part. There is one list for each combination of channel and PRF setting. Each list item provides the distance-dependent part of the range bias for an interval of measure distances.

Since all of this would be extremely tedious to write manually, I've also prepared a TOML file to aid code generation: range-tables.zip

Distance-dependent part values for channel 1, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 1 cm for 25 cm < d <= 75 cm
  • 2 cm for 75 cm < d <= 100 cm
  • 3 cm for 100 cm < d <= 125 cm
  • 4 cm for 125 cm < d <= 175 cm
  • 5 cm for 175 cm < d <= 225 cm
  • 6 cm for 225 cm < d <= 275 cm
  • 7 cm for 275 cm < d <= 300 cm
  • 8 cm for 300 cm < d <= 325 cm
  • 9 cm for 325 cm < d <= 375 cm
  • 10 cm for 375 cm < d <= 450 cm
  • 11 cm for 450 cm < d <= 500 cm
  • 12 cm for 500 cm < d <= 575 cm
  • 13 cm for 575 cm < d <= 625 cm
  • 14 cm for 625 cm < d <= 700 cm
  • 15 cm for 700 cm < d <= 750 cm
  • 16 cm for 750 cm < d <= 825 cm
  • 17 cm for 825 cm < d <= 900 cm
  • 18 cm for 900 cm < d <= 1000 cm
  • 19 cm for 1000 cm < d <= 1075 cm
  • 20 cm for 1075 cm < d <= 1175 cm
  • 21 cm for 1175 cm < d <= 1250 cm
  • 22 cm for 1250 cm < d <= 1350 cm
  • 23 cm for 1350 cm < d <= 1450 cm
  • 24 cm for 1450 cm < d <= 1575 cm
  • 25 cm for 1575 cm < d <= 1650 cm
  • 26 cm for 1650 cm < d <= 1775 cm
  • 27 cm for 1775 cm < d <= 1900 cm
  • 28 cm for 1900 cm < d <= 2050 cm
  • 29 cm for 2050 cm < d <= 2225 cm
  • 30 cm for 2225 cm < d <= 2450 cm
  • 31 cm for 2450 cm < d <= 2725 cm
  • 32 cm for 2725 cm < d <= 3175 cm
  • 33 cm for 3175 cm < d <= 3875 cm
  • 34 cm for 3875 cm < d <= 5550 cm
  • 35 cm for d > 5550 cm

Distance-dependent part values for channel 2, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 1 cm for 25 cm < d <= 50 cm
  • 2 cm for 50 cm < d <= 100 cm
  • 3 cm for 100 cm < d <= 125 cm
  • 4 cm for 125 cm < d <= 150 cm
  • 5 cm for 150 cm < d <= 200 cm
  • 6 cm for 200 cm < d <= 225 cm
  • 7 cm for 225 cm < d <= 250 cm
  • 8 cm for 250 cm < d <= 300 cm
  • 9 cm for 300 cm < d <= 325 cm
  • 10 cm for 325 cm < d <= 375 cm
  • 11 cm for 375 cm < d <= 450 cm
  • 12 cm for 450 cm < d <= 500 cm
  • 13 cm for 500 cm < d <= 550 cm
  • 14 cm for 550 cm < d <= 600 cm
  • 15 cm for 600 cm < d <= 675 cm
  • 16 cm for 675 cm < d <= 725 cm
  • 17 cm for 725 cm < d <= 800 cm
  • 18 cm for 800 cm < d <= 875 cm
  • 19 cm for 875 cm < d <= 950 cm
  • 20 cm for 950 cm < d <= 1025 cm
  • 21 cm for 1025 cm < d <= 1100 cm
  • 22 cm for 1100 cm < d <= 1175 cm
  • 23 cm for 1175 cm < d <= 1275 cm
  • 24 cm for 1275 cm < d <= 1375 cm
  • 25 cm for 1375 cm < d <= 1450 cm
  • 26 cm for 1450 cm < d <= 1550 cm
  • 27 cm for 1550 cm < d <= 1650 cm
  • 28 cm for 1650 cm < d <= 1775 cm
  • 29 cm for 1775 cm < d <= 1950 cm
  • 30 cm for 1950 cm < d <= 2125 cm
  • 31 cm for 2125 cm < d <= 2400 cm
  • 32 cm for 2400 cm < d <= 2775 cm
  • 33 cm for 2775 cm < d <= 3375 cm
  • 34 cm for 3375 cm < d <= 4850 cm
  • 35 cm for 4850 cm < d <= 6000 cm
  • 36 cm for d > 6000 cm

Distance-dependent part values for channel 3, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 1 cm for 25 cm < d <= 50 cm
  • 2 cm for 50 cm < d <= 75 cm
  • 3 cm for 75 cm < d <= 100 cm
  • 4 cm for 100 cm < d <= 125 cm
  • 5 cm for 125 cm < d <= 175 cm
  • 6 cm for 175 cm < d <= 200 cm
  • 7 cm for 200 cm < d <= 225 cm
  • 8 cm for 225 cm < d <= 250 cm
  • 9 cm for 250 cm < d <= 300 cm
  • 10 cm for 300 cm < d <= 350 cm
  • 11 cm for 350 cm < d <= 400 cm
  • 12 cm for 400 cm < d <= 450 cm
  • 13 cm for 450 cm < d <= 500 cm
  • 14 cm for 500 cm < d <= 550 cm
  • 15 cm for 550 cm < d <= 600 cm
  • 16 cm for 600 cm < d <= 650 cm
  • 17 cm for 650 cm < d <= 700 cm
  • 18 cm for 700 cm < d <= 775 cm
  • 19 cm for 775 cm < d <= 825 cm
  • 20 cm for 825 cm < d <= 900 cm
  • 21 cm for 900 cm < d <= 975 cm
  • 22 cm for 975 cm < d <= 1050 cm
  • 23 cm for 1050 cm < d <= 1125 cm
  • 24 cm for 1125 cm < d <= 1225 cm
  • 25 cm for 1225 cm < d <= 1300 cm
  • 26 cm for 1300 cm < d <= 1375 cm
  • 27 cm for 1375 cm < d <= 1475 cm
  • 28 cm for 1475 cm < d <= 1575 cm
  • 29 cm for 1575 cm < d <= 1725 cm
  • 30 cm for 1725 cm < d <= 1900 cm
  • 31 cm for 1900 cm < d <= 2125 cm
  • 32 cm for 2125 cm < d <= 2450 cm
  • 33 cm for 2450 cm < d <= 3000 cm
  • 34 cm for 3000 cm < d <= 4325 cm
  • 35 cm for 4325 cm < d <= 5325 cm
  • 36 cm for d > 5325 cm

Distance-dependent part values for channel 4, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 175 cm
  • 2 cm for 175 cm < d <= 200 cm
  • 3 cm for 200 cm < d <= 225 cm
  • 5 cm for 225 cm < d <= 250 cm
  • 6 cm for 250 cm < d <= 275 cm
  • 8 cm for 275 cm < d <= 300 cm
  • 9 cm for 300 cm < d <= 325 cm
  • 10 cm for 325 cm < d <= 350 cm
  • 11 cm for 350 cm < d <= 375 cm
  • 12 cm for 375 cm < d <= 400 cm
  • 13 cm for 400 cm < d <= 425 cm
  • 14 cm for 425 cm < d <= 450 cm
  • 15 cm for 450 cm < d <= 475 cm
  • 16 cm for 475 cm < d <= 500 cm
  • 17 cm for 500 cm < d <= 525 cm
  • 18 cm for 525 cm < d <= 550 cm
  • 19 cm for 550 cm < d <= 575 cm
  • 20 cm for 575 cm < d <= 600 cm
  • 21 cm for 600 cm < d <= 650 cm
  • 22 cm for 650 cm < d <= 675 cm
  • 23 cm for 675 cm < d <= 700 cm
  • 24 cm for 700 cm < d <= 750 cm
  • 25 cm for 750 cm < d <= 775 cm
  • 26 cm for 775 cm < d <= 800 cm
  • 27 cm for 800 cm < d <= 850 cm
  • 28 cm for 850 cm < d <= 900 cm
  • 29 cm for 900 cm < d <= 950 cm
  • 30 cm for 950 cm < d <= 1000 cm
  • 31 cm for 1000 cm < d <= 1050 cm
  • 32 cm for 1050 cm < d <= 1100 cm
  • 33 cm for 1100 cm < d <= 1150 cm
  • 34 cm for 1150 cm < d <= 1200 cm
  • 35 cm for 1200 cm < d <= 1250 cm
  • 36 cm for 1250 cm < d <= 1300 cm
  • 37 cm for 1300 cm < d <= 1375 cm
  • 38 cm for 1375 cm < d <= 1425 cm
  • 39 cm for 1425 cm < d <= 1475 cm
  • 40 cm for 1475 cm < d <= 1525 cm
  • 41 cm for 1525 cm < d <= 1575 cm
  • 42 cm for 1575 cm < d <= 1650 cm
  • 43 cm for 1650 cm < d <= 1700 cm
  • 44 cm for 1700 cm < d <= 1775 cm
  • 45 cm for 1775 cm < d <= 1850 cm
  • 46 cm for 1850 cm < d <= 1950 cm
  • 47 cm for 1950 cm < d <= 2025 cm
  • 48 cm for 2025 cm < d <= 2125 cm
  • 49 cm for 2125 cm < d <= 2225 cm
  • 50 cm for 2225 cm < d <= 2350 cm
  • 51 cm for 2350 cm < d <= 2475 cm
  • 52 cm for 2475 cm < d <= 2600 cm
  • 53 cm for 2600 cm < d <= 2750 cm
  • 54 cm for 2750 cm < d <= 2900 cm
  • 55 cm for 2900 cm < d <= 3075 cm
  • 56 cm for 3075 cm < d <= 3250 cm
  • 57 cm for 3250 cm < d <= 3475 cm
  • 58 cm for 3475 cm < d <= 3750 cm
  • 59 cm for 3750 cm < d <= 4100 cm
  • 60 cm for 4100 cm < d <= 4550 cm
  • 61 cm for 4550 cm < d <= 5175 cm
  • 62 cm for 5175 cm < d <= 5950 cm
  • 63 cm for d > 5950 cm

Distance-dependent part values for channel 5, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 2 cm for 25 cm < d <= 50 cm
  • 3 cm for 50 cm < d <= 75 cm
  • 4 cm for 75 cm < d <= 100 cm
  • 5 cm for 100 cm < d <= 125 cm
  • 6 cm for 125 cm < d <= 150 cm
  • 8 cm for 150 cm < d <= 175 cm
  • 9 cm for 175 cm < d <= 200 cm
  • 10 cm for 200 cm < d <= 225 cm
  • 11 cm for 225 cm < d <= 275 cm
  • 12 cm for 275 cm < d <= 300 cm
  • 13 cm for 300 cm < d <= 350 cm
  • 14 cm for 350 cm < d <= 375 cm
  • 15 cm for 375 cm < d <= 400 cm
  • 16 cm for 400 cm < d <= 450 cm
  • 17 cm for 450 cm < d <= 500 cm
  • 18 cm for 500 cm < d <= 525 cm
  • 19 cm for 525 cm < d <= 575 cm
  • 20 cm for 575 cm < d <= 625 cm
  • 21 cm for 625 cm < d <= 675 cm
  • 22 cm for 675 cm < d <= 725 cm
  • 23 cm for 725 cm < d <= 775 cm
  • 24 cm for 775 cm < d <= 850 cm
  • 25 cm for 850 cm < d <= 900 cm
  • 26 cm for 900 cm < d <= 950 cm
  • 27 cm for 950 cm < d <= 1025 cm
  • 28 cm for 1025 cm < d <= 1100 cm
  • 29 cm for 1100 cm < d <= 1200 cm
  • 30 cm for 1200 cm < d <= 1325 cm
  • 31 cm for 1325 cm < d <= 1475 cm
  • 32 cm for 1475 cm < d <= 1700 cm
  • 33 cm for 1700 cm < d <= 2075 cm
  • 34 cm for 2075 cm < d <= 3000 cm
  • 35 cm for 3000 cm < d <= 3700 cm
  • 36 cm for d > 3700 cm

Distance-dependent part values for channel 7, 16 MHz PRF:

  • 0 cm for 0 cm <= d <= 100 cm
  • 1 cm for 100 cm < d <= 125 cm
  • 4 cm for 125 cm < d <= 150 cm
  • 6 cm for 150 cm < d <= 175 cm
  • 9 cm for 175 cm < d <= 200 cm
  • 10 cm for 200 cm < d <= 225 cm
  • 12 cm for 225 cm < d <= 250 cm
  • 14 cm for 250 cm < d <= 275 cm
  • 16 cm for 275 cm < d <= 300 cm
  • 17 cm for 300 cm < d <= 325 cm
  • 19 cm for 325 cm < d <= 350 cm
  • 20 cm for 350 cm < d <= 375 cm
  • 21 cm for 375 cm < d <= 400 cm
  • 22 cm for 400 cm < d <= 425 cm
  • 24 cm for 425 cm < d <= 450 cm
  • 25 cm for 450 cm < d <= 475 cm
  • 26 cm for 475 cm < d <= 500 cm
  • 27 cm for 500 cm < d <= 525 cm
  • 28 cm for 525 cm < d <= 550 cm
  • 29 cm for 550 cm < d <= 575 cm
  • 30 cm for 575 cm < d <= 625 cm
  • 31 cm for 625 cm < d <= 650 cm
  • 32 cm for 650 cm < d <= 675 cm
  • 33 cm for 675 cm < d <= 725 cm
  • 34 cm for 725 cm < d <= 750 cm
  • 35 cm for 750 cm < d <= 775 cm
  • 36 cm for 775 cm < d <= 800 cm
  • 37 cm for 800 cm < d <= 850 cm
  • 38 cm for 850 cm < d <= 875 cm
  • 39 cm for 875 cm < d <= 900 cm
  • 40 cm for 900 cm < d <= 950 cm
  • 41 cm for 950 cm < d <= 975 cm
  • 42 cm for 975 cm < d <= 1000 cm
  • 43 cm for 1000 cm < d <= 1050 cm
  • 44 cm for 1050 cm < d <= 1100 cm
  • 45 cm for 1100 cm < d <= 1150 cm
  • 46 cm for 1150 cm < d <= 1200 cm
  • 47 cm for 1200 cm < d <= 1250 cm
  • 48 cm for 1250 cm < d <= 1300 cm
  • 49 cm for 1300 cm < d <= 1375 cm
  • 50 cm for 1375 cm < d <= 1450 cm
  • 51 cm for 1450 cm < d <= 1525 cm
  • 52 cm for 1525 cm < d <= 1600 cm
  • 53 cm for 1600 cm < d <= 1700 cm
  • 54 cm for 1700 cm < d <= 1800 cm
  • 55 cm for 1800 cm < d <= 1875 cm
  • 56 cm for 1875 cm < d <= 2000 cm
  • 57 cm for 2000 cm < d <= 2125 cm
  • 58 cm for 2125 cm < d <= 2300 cm
  • 59 cm for 2300 cm < d <= 2525 cm
  • 60 cm for 2525 cm < d <= 2800 cm
  • 61 cm for 2800 cm < d <= 3175 cm
  • 62 cm for 3175 cm < d <= 3675 cm
  • 63 cm for 3675 cm < d <= 4200 cm
  • 64 cm for 4200 cm < d <= 4550 cm
  • 65 cm for 4550 cm < d <= 4850 cm
  • 66 cm for 4850 cm < d <= 5125 cm
  • 67 cm for d > 5125 cm

Distance-dependent part values for channel 1, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 1 cm for 25 cm < d <= 50 cm
  • 3 cm for 50 cm < d <= 75 cm
  • 4 cm for 75 cm < d <= 100 cm
  • 5 cm for 100 cm < d <= 125 cm
  • 6 cm for 125 cm < d <= 175 cm
  • 7 cm for 175 cm < d <= 250 cm
  • 8 cm for 250 cm < d <= 325 cm
  • 9 cm for 325 cm < d <= 400 cm
  • 10 cm for 400 cm < d <= 475 cm
  • 11 cm for 475 cm < d <= 550 cm
  • 12 cm for 550 cm < d <= 600 cm
  • 13 cm for 600 cm < d <= 675 cm
  • 14 cm for 675 cm < d <= 750 cm
  • 15 cm for 750 cm < d <= 800 cm
  • 16 cm for 800 cm < d <= 875 cm
  • 17 cm for 875 cm < d <= 950 cm
  • 18 cm for 950 cm < d <= 1075 cm
  • 19 cm for 1075 cm < d <= 1200 cm
  • 20 cm for 1200 cm < d <= 1400 cm
  • 21 cm for 1400 cm < d <= 1950 cm
  • 22 cm for 1950 cm < d <= 2525 cm
  • 23 cm for 2525 cm < d <= 3000 cm
  • 24 cm for 3000 cm < d <= 3925 cm
  • 25 cm for d > 3925 cm

Distance-dependent part values for channel 2, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 1 cm for 25 cm < d <= 50 cm
  • 3 cm for 50 cm < d <= 75 cm
  • 4 cm for 75 cm < d <= 100 cm
  • 6 cm for 100 cm < d <= 150 cm
  • 7 cm for 150 cm < d <= 225 cm
  • 8 cm for 225 cm < d <= 300 cm
  • 9 cm for 300 cm < d <= 350 cm
  • 10 cm for 350 cm < d <= 425 cm
  • 11 cm for 425 cm < d <= 475 cm
  • 12 cm for 475 cm < d <= 525 cm
  • 13 cm for 525 cm < d <= 600 cm
  • 14 cm for 600 cm < d <= 650 cm
  • 15 cm for 650 cm < d <= 700 cm
  • 16 cm for 700 cm < d <= 775 cm
  • 17 cm for 775 cm < d <= 825 cm
  • 18 cm for 825 cm < d <= 925 cm
  • 19 cm for 925 cm < d <= 1050 cm
  • 20 cm for 1050 cm < d <= 1225 cm
  • 21 cm for 1225 cm < d <= 1700 cm
  • 22 cm for 1700 cm < d <= 2225 cm
  • 23 cm for 2225 cm < d <= 2625 cm
  • 24 cm for 2625 cm < d <= 3450 cm
  • 25 cm for d > 3450 cm

Distance-dependent part values for channel 3, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 2 cm for 25 cm < d <= 50 cm
  • 3 cm for 50 cm < d <= 75 cm
  • 5 cm for 75 cm < d <= 100 cm
  • 6 cm for 100 cm < d <= 125 cm
  • 7 cm for 125 cm < d <= 200 cm
  • 8 cm for 200 cm < d <= 250 cm
  • 9 cm for 250 cm < d <= 325 cm
  • 10 cm for 325 cm < d <= 375 cm
  • 11 cm for 375 cm < d <= 425 cm
  • 12 cm for 425 cm < d <= 475 cm
  • 13 cm for 475 cm < d <= 525 cm
  • 14 cm for 525 cm < d <= 575 cm
  • 15 cm for 575 cm < d <= 625 cm
  • 16 cm for 625 cm < d <= 675 cm
  • 17 cm for 675 cm < d <= 750 cm
  • 18 cm for 750 cm < d <= 825 cm
  • 19 cm for 825 cm < d <= 925 cm
  • 20 cm for 925 cm < d <= 1100 cm
  • 21 cm for 1100 cm < d <= 1500 cm
  • 22 cm for 1500 cm < d <= 1975 cm
  • 23 cm for 1975 cm < d <= 2325 cm
  • 24 cm for 2325 cm < d <= 3050 cm
  • 25 cm for d > 3050 cm

Distance-dependent part values for channel 4, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 175 cm
  • 1 cm for 175 cm < d <= 200 cm
  • 3 cm for 200 cm < d <= 225 cm
  • 5 cm for 225 cm < d <= 250 cm
  • 6 cm for 250 cm < d <= 275 cm
  • 7 cm for 275 cm < d <= 300 cm
  • 8 cm for 300 cm < d <= 325 cm
  • 10 cm for 325 cm < d <= 350 cm
  • 11 cm for 350 cm < d <= 375 cm
  • 12 cm for 375 cm < d <= 400 cm
  • 14 cm for 400 cm < d <= 425 cm
  • 15 cm for 425 cm < d <= 450 cm
  • 16 cm for 450 cm < d <= 475 cm
  • 18 cm for 475 cm < d <= 500 cm
  • 19 cm for 500 cm < d <= 525 cm
  • 20 cm for 525 cm < d <= 550 cm
  • 21 cm for 550 cm < d <= 600 cm
  • 22 cm for 600 cm < d <= 625 cm
  • 23 cm for 625 cm < d <= 675 cm
  • 24 cm for 675 cm < d <= 700 cm
  • 25 cm for 700 cm < d <= 725 cm
  • 26 cm for 725 cm < d <= 750 cm
  • 27 cm for 750 cm < d <= 800 cm
  • 28 cm for 800 cm < d <= 825 cm
  • 29 cm for 825 cm < d <= 850 cm
  • 30 cm for 850 cm < d <= 875 cm
  • 31 cm for 875 cm < d <= 925 cm
  • 32 cm for 925 cm < d <= 975 cm
  • 33 cm for 975 cm < d <= 1025 cm
  • 34 cm for 1025 cm < d <= 1075 cm
  • 35 cm for 1075 cm < d <= 1125 cm
  • 36 cm for 1125 cm < d <= 1200 cm
  • 37 cm for 1200 cm < d <= 1250 cm
  • 38 cm for 1250 cm < d <= 1325 cm
  • 39 cm for 1325 cm < d <= 1400 cm
  • 40 cm for 1400 cm < d <= 1500 cm
  • 41 cm for 1500 cm < d <= 1600 cm
  • 42 cm for 1600 cm < d <= 1700 cm
  • 43 cm for 1700 cm < d <= 1850 cm
  • 44 cm for 1850 cm < d <= 2025 cm
  • 45 cm for 2025 cm < d <= 2225 cm
  • 46 cm for 2225 cm < d <= 2450 cm
  • 47 cm for 2450 cm < d <= 2725 cm
  • 48 cm for 2725 cm < d <= 3050 cm
  • 49 cm for 3050 cm < d <= 3400 cm
  • 50 cm for 3400 cm < d <= 3650 cm
  • 51 cm for 3650 cm < d <= 3850 cm
  • 52 cm for 3850 cm < d <= 4050 cm
  • 53 cm for 4050 cm < d <= 4450 cm
  • 54 cm for 4450 cm < d <= 5500 cm
  • 55 cm for 5500 cm < d <= 6225 cm
  • 56 cm for d > 6225 cm

Distance-dependent part values for channel 5, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 25 cm
  • 3 cm for 25 cm < d <= 50 cm
  • 5 cm for 50 cm < d <= 75 cm
  • 6 cm for 75 cm < d <= 100 cm
  • 7 cm for 100 cm < d <= 150 cm
  • 8 cm for 150 cm < d <= 175 cm
  • 9 cm for 175 cm < d <= 225 cm
  • 10 cm for 225 cm < d <= 250 cm
  • 11 cm for 250 cm < d <= 300 cm
  • 12 cm for 300 cm < d <= 325 cm
  • 13 cm for 325 cm < d <= 375 cm
  • 14 cm for 375 cm < d <= 400 cm
  • 15 cm for 400 cm < d <= 425 cm
  • 16 cm for 425 cm < d <= 475 cm
  • 17 cm for 475 cm < d <= 525 cm
  • 18 cm for 525 cm < d <= 575 cm
  • 19 cm for 575 cm < d <= 650 cm
  • 20 cm for 650 cm < d <= 750 cm
  • 21 cm for 750 cm < d <= 1050 cm
  • 22 cm for 1050 cm < d <= 1375 cm
  • 23 cm for 1375 cm < d <= 1625 cm
  • 24 cm for 1625 cm < d <= 2125 cm
  • 25 cm for d > 2125 cm

Distance-dependent part values for channel 7, 64 MHz PRF:

  • 0 cm for 0 cm <= d <= 100 cm
  • 1 cm for 100 cm < d <= 125 cm
  • 4 cm for 125 cm < d <= 150 cm
  • 6 cm for 150 cm < d <= 175 cm
  • 8 cm for 175 cm < d <= 200 cm
  • 10 cm for 200 cm < d <= 225 cm
  • 12 cm for 225 cm < d <= 250 cm
  • 15 cm for 250 cm < d <= 275 cm
  • 17 cm for 275 cm < d <= 300 cm
  • 18 cm for 300 cm < d <= 325 cm
  • 20 cm for 325 cm < d <= 350 cm
  • 21 cm for 350 cm < d <= 375 cm
  • 22 cm for 375 cm < d <= 400 cm
  • 24 cm for 400 cm < d <= 425 cm
  • 25 cm for 425 cm < d <= 450 cm
  • 26 cm for 450 cm < d <= 475 cm
  • 28 cm for 475 cm < d <= 500 cm
  • 29 cm for 500 cm < d <= 525 cm
  • 30 cm for 525 cm < d <= 550 cm
  • 31 cm for 550 cm < d <= 575 cm
  • 32 cm for 575 cm < d <= 600 cm
  • 33 cm for 600 cm < d <= 625 cm
  • 34 cm for 625 cm < d <= 650 cm
  • 35 cm for 650 cm < d <= 700 cm
  • 36 cm for 700 cm < d <= 725 cm
  • 37 cm for 725 cm < d <= 775 cm
  • 38 cm for 775 cm < d <= 825 cm
  • 39 cm for 825 cm < d <= 875 cm
  • 40 cm for 875 cm < d <= 925 cm
  • 41 cm for 925 cm < d <= 975 cm
  • 42 cm for 975 cm < d <= 1050 cm
  • 43 cm for 1050 cm < d <= 1150 cm
  • 44 cm for 1150 cm < d <= 1250 cm
  • 45 cm for 1250 cm < d <= 1350 cm
  • 46 cm for 1350 cm < d <= 1500 cm
  • 47 cm for 1500 cm < d <= 1675 cm
  • 48 cm for 1675 cm < d <= 1875 cm
  • 49 cm for 1875 cm < d <= 2075 cm
  • 50 cm for 2075 cm < d <= 2250 cm
  • 51 cm for 2250 cm < d <= 2375 cm
  • 52 cm for 2375 cm < d <= 2500 cm
  • 53 cm for 2500 cm < d <= 2750 cm
  • 54 cm for 2750 cm < d <= 3375 cm
  • 55 cm for 3375 cm < d <= 3825 cm
  • 56 cm for 3825 cm < d <= 4300 cm
  • 57 cm for 4300 cm < d <= 4800 cm
  • 58 cm for d > 4800 cm

The DWM1001 struct can't be created with RTFM (safely)

Creating the DWM1001 struct requires the use of either ::take() or ::new(). RTFM takes both the Peripherals and CorePeripherals, and gives the user of RTFM a subset of these items (because it takes things like the SysTick timer).

In my template examples, I realized that I never used the DWM1001 struct. I stumbled on this again during a stream - (about 40 minutes in).

I'm not sure the best way to fix this yet, but might take a deeper peek later.

Build currently broken due to missing git dep

On the current master, 870312ccbe55e89eba656a13bac66437f9bfa52a, I get the following when trying to build:

โžœ  rust-dwm1001 git:(master) cargo build
    Updating git repository `https://github.com/braun-robotics/rust-dw1000.git`
    Updating git repository `https://github.com/braun-robotics/nrf52-hal.git`
error: failed to load source for a dependency on `nrf52832-hal`

Caused by:
  Unable to update https://github.com/braun-robotics/nrf52-hal.git#bfb1c318

Caused by:
  revspec 'bfb1c318575409ff2ac5df753ab44f859e4f02a8' not found; class=Reference (4); code=

I'm guessing you forgot to push a branch to your fork of nrf52-hal :)

Add type parameter to `Led` to identify pin

Led currently uses the generic pin type (P0_Pin), however, each instance is actually restricted to a specific pin, making the struct not as type-safe as it could be. It would be safer, if it had a type parameter to identify the pin. Then the pin each instance needs could be made obvious in Leds.

This issue is blocked until nrf-rs/nrf-hal#8 is accepted and implemented.

`dw1000_id` example doesn't work with LLD

When linking the example with LLD, it doesn't blink the LED and doesn't print debug output. I also haven't seen any error messages.

I need to investigate this, but for now I've changed the Cargo configuration to explicitely select arm-none-eabi-gcc.

Use latest version of embedded-hal traits

embedded-hal has released new versions of the digital I/O traits and deprecated the old ones. This results in deprecation warnings in the code.

This isn't something we can fix here, as nrf52832-hal needs to be updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.