The CUWB Manager is a web-based single-page application for configuring and controlling execution of CUWB Networks through any modern web browser. All functionality is implemented through, and could be recreated by, usage of the exposed CUWB Manager API.
Follow the instructions below for CUWB Manager installation. When prompted in ‘CUWB Applications Selection,’ ensure that CUWB Network is selected for installation. Following successful installation, the CUWB Manager will be available on all of the host machine’s network interfaces on port 5000.
bash <(wget -qO- https://cuwb.io/install.sh)
Setting up a basic CUWB Network is easy with the CUWB Manager. On the PC where the CUWB Manager was installed, open a web browser and browse to the following location:
This will present the user with the main configuration page for CUWB Networks.
When run on a freshly installed Ubuntu 16.04 (Xenial) or Ubuntu 18.04 (Bionic) system, this configuration page will also be available on port 5000 of each network interface. To obtain a list of all network interfaces, type
ifconfig into a terminal. In addition to the
lo (or Local Loopback) interface, other interfaces should be available beginning with
wlp denoting a wired ethernet or WiFi interface (respectively). On the second line of the interface’s output, the IP address will be denoted by
enp3s0 Link encap:Ethernet HWaddr b8:60:01:c3:9e:20 inet addr:192.168.100.2 Bcast:192.168.100.255 Mask:255.255.255.0
This output would indicate any device on the same network segment could access the CUWB Manager by browsing to
Note, these interfaces and ports differ from those used for the transmission and reception of CDP traffic. Those settings can be adjusted within the CUWB Manager under the General section of any CUWBNet Configuration. However, this is typically not required to get started.
To prevent unwanted external connections and only allow access via localhost, the following example
ufw commands can be used:
sudo ufw allow from 127.0.0.1 to 127.0.0.1 port 5000 proto tcp sudo ufw enable
Watch the walk-through video below for instructions on setting up a simple network:
Users unfamiliar with the CUWB System should consider setting up a small manageable network in order to familiarize with tools and set up. The Quick Start Guide provides instructions on how to set up and run a small network.
To achieve the best performance, care should be taken when selecting locations for Anchors. It is important that Anchors have good visibility to one another as well as visibility between the Anchors and the field of interest for tracking. Check out the Anchor Positioning and Survey application note for best practices regarding network setup.
Anchors serve as static reference points used by the location algorithm to determine the location of a Tag. Anchors listen to Tag beacons collecting transmit time and sensor data. The data collected is sent back to the CUWB Manager for use in the location algorithm and for display.
In addition to serving as reference points, Anchors also participate in Global Network Time (GNT) calculations. All devices on the CUWB Network must understand GNT in order to send and receive transmissions during their scheduled time. Multiple Anchors participating in GNT allow the time to be distributed throughout large networks.
Anchors can be configured for three different roles defined in the table below:
|Seeder||Anchor will send UWB transmissions allowing it to participate in Global Time Synchronization.|
|Initial Seeder||Same as Seeder above, but also configures Anchor to ‘start’ the network.|
|Quiet Anchor||Anchor does not transmit. Global time for this Anchor is modeled off UWB beacons from other Anchors.|
Each CUWB Network must have at least one Anchor configured as an Initial Seeder. This device initiates transmissions within the network and provides the initial time model used by the system. Ideally the initial seeder is selected to be a device in the middle of the network that has good RF connectivity to a large number of neighboring Anchors. Initial Seeder selection can impact the time it takes for the network to fully seed all devices with GNT.
If multiple devices are configured as Initial Seeder, the system will select one of the set at random to initialize the network. If the selected device is not present (ie., bad network connection, or lost power), the system will select another device and use it for GNT initialization.
Once the CUWB Network has started Anchors nearby, the Initial Seeder will begin start to hear UWB packets and attempt to ‘lock’ on to GNT. When a device configured as a Seeder has fully locked on to GNT it will begin to contribute to the GNT model, allowing the network to expand beyond the Initial Seeder.
Quiet Anchors will listen for transmissions from Initial Seeders or Seeders and attempt to ‘lock’ onto GNT. Once a Quiet Anchor has locked onto GNT the UWB transmissions it receives may be used for position calculation. Quiet Anchors do not participate in modeling of GNT, and thus can not be used to build larger networks.
Tags are mobile devices that are tracked by the CUWB Network. The UWB transmissions, or beacons, sent by Tags are received by Anchors. The reception time at the Anchors is forwarded to the CUWB Manager for use in the location algorithm, which uses the time to determine the location of the Tag.
Tags can be configured to beacon at slow rates, saving battery, or they can be configured to beacon at fast rates for low-latency tracking.
Once Anchors and Tags have been set up, users may wish to configure more in-depth CUWB Network features. The video below shows users how to configure Tag beacon rates, set up peripheral configurations, and more:
Smoothing can be applied to the output data from the CUWB Manager to limit jitter and improve precision of the location. The smoothing value can be found in the web interface under Configuration->General. Smoothing is done by averaging of output data from Tag beacons. The value entered in this field represent the total number of Tag beacons to average.
The bounding box values limit the area the location algorithm uses for calculating the position of Tag beacons. The algorithm will not allow Tags to travel beyond the configured values. This value should be configured to reasonably cover the area of interest for the Tags.
In a system where anchors are in installed at the same height, on the ceiling for example, the bounding box should be configured not to include the Anchors. This prevents the location algorithm from sticking Tags on the plane of the Anchors.
Configure this value in the CUWB Manager to enable device firmware updates.
The Ethernet settings allow the user to configure the internal and external data on the system to their desired ports and IP addresses. Internal data is data used by the CUWB Manager to generate locations. External data is the output stream that locations are published to for user consumption. By default the external data is configured for multicast making it accessible to other devices on the network. The config channel is used for device and system configuration and discovery and cannot be changed.
In the Schedules tab on the web interface users are encouraged to create Tag roles. Roles are beacon rate definitions that can be assigned to Tags. A user might, for example, desire to have a slow beacon rate role for a Tag that is used to track objects that rarely move in addition to a fast rate for objects that are moving quickly through the environment.
Anchors are all scheduled to tranmit at the same rate. Selecting a rate faster than 10Hz will help the system to boot up with synchronized time more quickly, but it will do so at the cost of UWB air-time.
LEDs can be configured for Device mode or Role mode. When configured in Device mode the LEDs are controlled by the device firmware. LED state definitions can be found in the Product Datasheet.
Setting the CUWB Manager LED mode to Role mode will enable the devices to flash their individual ‘roles’ within the network. The table below shows the colors used in this mode.
|Color||ON Time||OFF Time||Role|
In the CUWB Manager under Configuration->Periphals, users can setup configurations for a variety of peripheral sensors. Each sensor has a drop down box associated with it, that contains the available settings for that device. The names assigned by the user to the peripheral configuration, once saved, will be available on the Tag and Anchor setup page.
The terminology in the table below is found throughout the CUWB Manager web interface.
|Add||Create new listed resource and add to this resource’s list|
|Anchors||In an RTLS network this is typically a stationary Node. Anchors are in physically surveyed locations and ‘anchor’ the coordinate system within the location algorithm.|
|Anchor roles||Options for configuring anchors’ relation to network time|
|Anchor roles seeder rate||Rate for all anchors on this CUWB Network|
|Bounding box||Axes’ global minimum and global maximum to prevent known invalid position X, Y, and Z values from the current CUWB Network|
|Calculate max Tags||Determines the maximum amount of Tag devices able to operate at the selected role and peripheral configuration|
|CUWB Networks||Particular configurations of UWB devices and settings|
|Device updates||Adjusts settings related to Ciholas UWB device updates|
|Device updates automatic firmware updates||Adjusts whether firmware updates obtained through the APT package manager automatically deploy to devices|
|Clear||Clear new listed resource from the list prior to saving the .cuwb configuration file|
|Config||Navigates to configuration page(s) for this row’s CUWB Network|
|Copy||Copy this row’s CUWB Network and create a new CUWB Network with a chosen name|
|CUWBNet||Short for “CUWB Network”. A particular configuration of UWB devices and settings.|
|Delete||Permanently delete this row’s listed resource|
|Disabled||Listed resource does not generate data when selected|
|Download||Download this row’s CUWB Network as a .cuwb save file|
|Ethernet settings||Options for configuring listening and sending network interfaces|
|Ethernet settings Config||The Config Multicast Stream is used for Ethernet-based device discovery and configuration.|
|Ethernet settings Config IP||The destination IP address for the config data stream.|
|Ethernet settings Config port||The destination UDP Port for the config data stream.|
|Ethernet settings Config interface||The source/destination interface for the config data stream. This setting is only valid if you have Ethernet based Anchors.|
|Ethernet settings Input||The Internal Multicast Stream is a local stream used by the host software to compute the location of devices. The contents of this stream are undefined to the user. This stream can be recorded and played back to facilitate debugging.|
|Ethernet settings Input IP||The destination IP address for the internal data stream.|
|Ethernet settings Input port||The destination UDP Port for the internal data stream.|
|Ethernet settings Input interface||The interface utilized for listening for the internal data stream.|
|Ethernet settings Output||The External Multicast Stream is the endpoint of the locatlization algorithm. All location data, sensor data, and otherwise important data to the user is output onto this stream from the uwb_host utilizing the CDP format. See CDP documentation for details on the content of these packets.|
|Ethernet settings Output IP||The destination IP address for the external data stream.|
|Ethernet settings Output port||The destination UDP Port for the external data stream.|
|Ethernet settings Output interface||The interface utilized for emitting the external data stream.|
|LED settings||Configures whether device LED behavior on the current CUWB Network is based on its configured role or the device’s default behavior|
|Peripheral configurations||A group of settings controlling a device’s sensor rates and LED behavior|
|Position settings||Settings related to position RTLS data items|
|Role||Defines the device’s relationship to Network Time and optionally its LED behavior|
|Serial number||8 character identifier on Ciholas hardware labeled by ‘SN’|
|Save||Write this row’s adjusted values to the CUWB Network configuration|
|Smoothing factor||Iteration count of previous value averaging to decrease position jitter|
|Start||Start the system service to generate data for this row’s CUWB Network|
|Stop||Stop the system service to cease data generation for this row’s CUWB Network|
|Tag roles||Options for configuring Tags’ relation to network time|
|Tag roles’ Max Tag Rate||Maximum Tag rate for any active Tag on the network. If a Tag selects a role with a rate higher than this setting, it will be rate limited by the CUWB Network netapp process.|
|Tags||A Tag is a mobile trackable Node in an RTLS network. Tags are generally attached to objects that users wish to track within an environment.|
|Undo||Revert this row’s values back to the last state obtained from its CUWB Network configuration|
|Upload||Upload a new CUWB Network configuration file (.cuwb) to the current CUWB Networks list|