Ultra Wide Band Extension: Difference between revisions

From GCtronic wiki
Jump to navigation Jump to search
Line 23: Line 23:
To build the examples, clone the repo ([https://github.com/gctronic/dwm1001_anchor https://github.com/gctronic/dwm1001_anchor] and [https://github.com/gctronic/dwm1001_tag https://github.com/gctronic/dwm1001_tag]) inside the <code>DWM1001_DWM1001-DEV_MDEK1001_Sources_and_Docs_v9\DWM1001\Source_Code\DWM1001_on_board_package\dwm\examples</code> directory. Then use the [https://www.segger.com/downloads/embedded-studio Segger Embedded Studio for ARM] to build the project.
To build the examples, clone the repo ([https://github.com/gctronic/dwm1001_anchor https://github.com/gctronic/dwm1001_anchor] and [https://github.com/gctronic/dwm1001_tag https://github.com/gctronic/dwm1001_tag]) inside the <code>DWM1001_DWM1001-DEV_MDEK1001_Sources_and_Docs_v9\DWM1001\Source_Code\DWM1001_on_board_package\dwm\examples</code> directory. Then use the [https://www.segger.com/downloads/embedded-studio Segger Embedded Studio for ARM] to build the project.


The Elisa-3 firmware can be cloned from the repo [https://github.com/gctronic/elisa3_firmware_advanced https://github.com/gctronic/elisa3_firmware_advanced], <code>uwb</code> branch. The project can be built with [https://microchipdeveloper.com/atstudio:start Atmel Studio].
The Elisa-3 firmware can be cloned from the repo [https://github.com/gctronic/elisa3_firmware_advanced https://github.com/gctronic/elisa3_firmware_advanced], <code>uwb</code> branch. The project can be built with [https://microchipdeveloper.com/atstudio:start Atmel Studio]. The selector must placed in position 15.


=DFU=
=DFU=

Revision as of 08:02, 26 May 2021

Introduction

The following figure shows the architecture details during the development phase:

On the nRF52832 the firmware is developed using the C API based on the PANS stack released by Decawave. The communication with the Elisa-3 robot is accomplished through I2C (the robot is the slave). The nRF52 is programmed/debugged through the SWD interface using an external nRF dev kit attached to the computer via USB. An additional UART is attached to the UWB module in order to get logging info.

I2C protocol

The nRF52 (master) writes all the actuators at once and read all the sensors data at once.


Implementation

At the moment there are two firmwares for nRF52: one configures the module as a TAG node and the other one as an ANCHOR node. Once the two modules are programmed, the Android application is used to put the two nodes in the same network. Once configured, the TAG node will receive distances information and reflects the distance to the RGB led (intensity proportional to distance) while printing also this information to the UART.
The nRF52 poll the Elisa-3 robot at about 20 Hz in a separate thread.


Source code

Both the examples (dwm-simple-anchor and dwm-simple-tag) are based on the dwm-simple example that can be found in the Decawave source code package.

To build the examples, clone the repo (https://github.com/gctronic/dwm1001_anchor and https://github.com/gctronic/dwm1001_tag) inside the DWM1001_DWM1001-DEV_MDEK1001_Sources_and_Docs_v9\DWM1001\Source_Code\DWM1001_on_board_package\dwm\examples directory. Then use the Segger Embedded Studio for ARM to build the project.

The Elisa-3 firmware can be cloned from the repo https://github.com/gctronic/elisa3_firmware_advanced, uwb branch. The project can be built with Atmel Studio. The selector must placed in position 15.

DFU

There is the possibility to update the firmware of the nodes via OTA (Over The Air).
First the initiator anchor is updated via BLE, then this anchor will automatically update the remaining network nodes via UWB.

For more information refer to DWM1001 Firmware API Guide, chapter 4.3.
Not tested yet.

Documentation

  1. DWM1001_Datasheet.pdf
  2. DWM1001_Firmware_User_Guide.pdf
  3. DWM1001_Firmware_API_Guide.pdf
  4. DWM1001_Gateway_Quick_Deployment_Guide.pdf
  5. System_Overview_and_Performance_for_DWM1001.pdf