Difference between revisions of "Ultra Wide Band Extension"

From GCtronic wiki
Jump to: navigation, search
(Implementation)
Line 17: Line 17:
  
 
<span class="plainlinks">[http://projects.gctronic.com/elisa3/uwb/architecture-implementation.jpg <img width=600 src="http://projects.gctronic.com/elisa3/uwb/architecture-implementation.jpg">]</span><br/>
 
<span class="plainlinks">[http://projects.gctronic.com/elisa3/uwb/architecture-implementation.jpg <img width=600 src="http://projects.gctronic.com/elisa3/uwb/architecture-implementation.jpg">]</span><br/>
 +
 +
=Source code=
 +
Both the examples (<code>dwm-simple-anchor<code> and <code>dwm-simple-tag<code>) are based on the <code>dwm-simple</code> example that can be found in the [https://www.decawave.com/wp-content/uploads/2019/03/DWM1001_DWM1001-DEV_MDEK1001_Sources_and_Docs_v9.zip Decawave source code package].
 +
 +
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].
  
 
=Documentation=
 
=Documentation=

Revision as of 07:49, 26 May 2021

1 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.

2 I2C protocol

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


3 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.


4 Source code

Both the examples (dwm-simple-anchor<code> and <code>dwm-simple-tag<code>) are based on the <code>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.

5 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