This software tool was initially developed for our own needs to gather and analyze precision and accuracy of position data measured by Ultra Wide Band system that is based on DecaWave DWM1001 devices. The system is indeed capable of measuring the location of Tags (devices) with accuracy of ~4" (10 cm), although some tweaking may be required while positioning the sensors (Anchors) and tracked devices (Tags). There are incredible number of possible implementations of UWB technology in variety of industries and we are proud to note that we realized this potential way before Apple came up with announcement of including UWB in iPhone 11.

In the process of development we enhanced system capabilities by removing the constraints of archiving the measured data on the UWB Gateway. The gateway consists of Raspberry Pi 3B Model2 and a UWB device in a Bridge Node role.  With the help of Python programming, Serial access and MQTT we extended the location of measured data to the Cloud, again, through MQTT protocol, and accessing this data anywhere in the world with our application, again over MQTT protocol.  Therefore, the application users with their PC or laptop do not have to be in the WiFi range from the UWB Gateway.

Getting Started - Configuring Area Plan and Anchors


For the application to work correctly it should be properly configured in the following order:

  • Define Area Plans on the Area Plans tab as shown in the screenshot.  First provide the space coordinates.  Then after checking the Anchors check box provide  coordinates of the Anchors starting with Initiator Anchor as 0,0 coordinate.
  • Adding Geo-Fencing to the Area Plan is optional. We recommend adding Geo-Fencing later after getting familiar with the application.

Getting Started - Configuring Tags


Configuration Tab contains  Tags Configuration sub-tab. You can define static tag alias,  coordinates, and ID. The latter should match the device hardware ID as set by DecaWave, for example "0C0E". It is imperative to provide full information in order to ensure correct software operation and and especially the ability to analyze the measurement precision and accuracy.

Tags can be further categorized for convenience  by Group, Category, and Class to ease identification of tags in a multi-tag scenarios.

Getting Started - Configuring Triggers


Trigger is the logical condition that gets signaled when the measure position  of the Tag crosses the boundaries of the defined Geo-Fence. Trigger can be Ingress (signaled when Tag is entering Geo-Fence) or Egress (when Tag is exiting Geo-Fence). The application allows to define a trigger to be of either kind along with Area Plan the trigger "belongs" to and Email and/or SMS recipient. These recipients will be notified when Geo-Fence trigger is signaled/breached.

Defining Data Source - MQTT Broker Connection


Users may chose to modify Python scripts on Raspberry Pi and publish UWB-measured position data in any online MQTT Broker. The application provides a few examples of free online MQTT Brokers such as Amazon's CloudMQTT and Flespi MQTT, both running Mosquitto MQTT Broker. The data format is identical to that resulting from 'lep'  command ran on DWM1001 device shell.

Video - Connecting to MQTT Broker

Retrieving, Displaying, and Archiving Data


Connection Wizard located on Data Acquisition tab makes it easy:

  •  Selecting or defining a new MQTT Broker connection
  • Selecting or defining a topic or topics to subscribe to
  • Optionally saving the received data continuously

Real-Time Object Tracking

When position data is being received and displayed on Data Acquisition tab and user switches to Real-Time Tracking tab, the latter displays the measured positions as they arrive into the application.

This tab also allows enabling/disabling monitoring of the triggers that were configured earlier. 

Position Data Acquisition and Analysis

Data Acquisition and Analysis

Connecting to pre-configured online MQTT Broker and subscribing to the  topic published by UWB Gateway.
Position Data is displayed in real-time. Switching to Data Analysis tab automatically creates data snapshot of all received data so far that can be analyzed immediately .

Configuring Area Plan and Geo-Fence

  • Area Plan is the first entity that must be configured before any other configuring takes place.
  • Providing corner coordinates relative to initial Reference point 0,0.
  • Providing Anchors coordinates, starting from Initiator Anchor, relative to Reference point.
  • Saving Area Plan clicking on the Save Area Plan ribbon button.
  • Enabling Geo-Fence creation and free drawing of Ge-Fence area on the screen.

Real-Time Position Tracking

While receiving position data in real-time - switching to Real-Time Tracking tab will show the position of objects/people tagged with UWB Tag relatively to the floor plan.