Progress - Hellymaw/ragnarok-red GitHub Wiki

Progress as of 17/05/2021

BLE Mesh

Currently all nodes are able to provisioned to be part of a BLE mesh as proxies and relays. Clients are then able to subscribe to a Generic OnOff model on the servers in order to control their LEDs. Currently however, the mesh provisioning is not persistent.

UWB

DWM1000 has been tested with both Two Way Ranging (TWR) test code and Reverse Time Difference of Arrival (RTDoA) test code. TWR worked well and showed that <20cm ranging accuracy was achievable using UWB. The RTDoA test code showed that some significant modifications to the code will be required.

Progress as of 19/05/2021

BLE Mesh

Finally cracked persistent BLE mesh keys/settings. Unsure of what I fixed but it works and we take these.

Progress as of 20/05/2021

BLE Mesh

Custom Vendor Server/Client model created to handle the publishing/subscribing for sending 2 tag ranging values. Verified as working. Also a BLE mesh enabled blinky LED was added so that the connection to nodes in the mesh can be visually inspected. This blinky works via the Bluetooth SIG BLE Mesh Generic OnOff Server Model.

RTDOA Measure Onboard difference of distance calculation.

A tag device is now able to calculate difference of distances between a master node and a slave node relative to the position of the tag.

TDMA Time Sync

A Master node is able to contact all active slaves using UWB and synchronize their communication channels based on allocated TDMA time slots. This ensures that only a selected slave is broadcasting UWB at a time (where a tag would always be listening and taking time stamps in the TDMA slot).

Progress as of 22/05/2021

PC Data Processing and ML Integration

Developed a multilateration algorithm to process UWB data. Based off of getting UWB position between Slave and Master, generating a tangent line representing constant magnitude and finding intersections of all of slave tangent slave lines. Average of data point is then calculated to produce final x,y coordinate. Reproduced RSSI/Kalman filter from stage 3 to process RSSI values. Threading developed to improve performance.

Web Dashboard

Using TagoIO, we have developed a dynamic/nice/variable positioning system that displays the locations of atleast 2 tags. The map is updated at a rate of ~2Hz.

Progress as of 24/05/2021

Testing all sub-systems together and recording footage of a functional demo where 2 tags can be seen moving on the TagoIO preset grid.