INSTALLATION & OPERATION GUIDE

LocationX Installation & Operation Guide

This guide walks through the full workflow of the LocationX locator kit — from hardware installation (initial setup), through locator placement and server configuration with the LocationX Position Setting Tool, to verifying MQTT data.

1System Configuration

System Diagram

Locators receive the BLE signal from tags, the MQTT server computes positions via the PoE switching hub, and a PC handles configuration and monitoring.

LocationX system diagram — from tag to configuration and monitoring
System diagram — Tag → Locators (tag direction finding) → PoE hub → MQTT broker & position engine → Configuration & monitoring

Hardware Components

LocationX kit components
LocationX locator kit components

Software

SoftwarePurposeNotes
LocationX Position Setting Tool Device discovery · locator placement on a floor plan · pushing settings to the server · verifying data reception Required (Windows) — GitHub
MQTT Explorer Monitoring raw MQTT messages Optional — mqtt-explorer.com

Network Layout

ComponentIP addressPort
Router admin page192.168.0.1 (typical default)-
Position server card (MQTT broker)DHCP assigned — find it with [Discover Devices] in the setting tool1883
LocatorsDHCP (automatic)-

2Installation — Initial Setup

Setup Order

  1. Start the router — the admin page is at 192.168.0.1 for a typical router
  2. Start the position server (MQTT server) — it runs automatically once the server card is powered on
  3. Connect the locators — plug them into the PoE switching hub with LAN cables
⚠️The MQTT server must be running first. Once powered, locators automatically connect to the MQTT server and start streaming data — no manual configuration required.

Locator Installation (Initial Setup)

For the initial setup, install the locators as shown below and verify operation. Mount the locators on the ceiling (recommended height: about 3 m) with the antenna face pointing toward the floor.

Initial locator layout — top view
Initial layout — top view (example spacing: 4 m × 2 m, with an auxiliary locator in the center)
Initial locator layout — side view
Initial layout — side view (3 m above the floor, antenna face pointing down)
Coordinate information per locator
Coordinate information per locator — the coordinate (x/y/z) and orientation values of each locator. These are the values registered to the server when you place locators in the Position Setting Tool
💡Registering and changing each locator's position and orientation is handled in the Position Setting Tool below — you never need to edit config files by hand.

3Position Setup — LocationX Position Setting Tool

A Windows desktop tool that discovers locator cards on the LAN, lets you place them on a floor plan by drag & drop, and updates the positioning configuration on the server. Download it from GitHub Releases.

3-1. Discover Devices

  1. Launch the tool, open the Position Setup (Server) tab, and click [Discover Devices (UDP)].
  2. The MQTT server card and all locators on the same network are discovered automatically and listed in the left panel.
  3. The server card's IP address is set as the target server automatically.

3-2. Prepare the Floor Plan

  1. Load floor plan — select a floor plan image (png/jpg).
  2. Scale calibration — click two points with a known real-world distance on the plan and enter the distance in meters.
  3. Set origin — click the position to use as world coordinate (0,0).

3-3. Place the Locators

  1. Drag locators from the right-hand list onto the canvas at their actual installed positions (default mounting height z = 3.0 m).
  2. Click a marker to edit its coordinates, orientation, and detailed AoA settings in the left panel.
  3. Global positioning settings (estimation mode, filtering weight, etc.) are adjusted in the right panel.
Position Setting Tool — placement canvas
Position Setup (Server) tab — locators placed on the canvas after device discovery

3-4. Deploy to the Server

  1. Click [Deploy to Server] — the changes (diff) are displayed for review.
  2. Confirm to apply: the server card's positioning_config.json is updated and the position engine restarts automatically.
  3. Save the project (.lxpos.json) to keep the floor plan, calibration, and placement locally.
💡Moving a locator later works the same way — drag its marker on the canvas and click [Deploy to Server] again.

3-5. Verify Data Reception

In the Data Reception tab, connect to the MQTT broker to see the per-locator angle streams (silabs/aoa/angle/<locator>/<tag>) in real time. Turn on a tag and you can immediately check the message rate (msg/s) and the azimuth / elevation values.

Position Setting Tool — data reception tab
Data Reception tab — per-locator angle stream status

3-6. Verify Positions

Once placement is complete, check the computed tag positions on the floor plan in the top view / 3D view.

Real-time position view in action
Real-time position view — the tag position updates live as the tag moves

Device Settings Tab — Locator Management

4Verifying MQTT Data (MQTT Explorer)

Use MQTT Explorer when you want to inspect the raw MQTT messages directly.

  1. Launch MQTT Explorer and click +Connections to set up an MQTT connection.
    • Name: aoa-server-1
    • Protocol: mqtt://
    • Host: <server card IP> (found via device discovery in the setting tool)
    • Port: 1883
  2. Open ADVANCED, set the topic to # only, and go back with BACK.
  3. Click CONNECT to connect to the MQTT broker.
  4. You can confirm data is being received, including the azimuth and elevation values.
MQTT Explorer receiving data
MQTT Explorer — receiving angle data

Received Data Fields

FieldDescription
azimuthAzimuth (horizontal angle) of the tag signal relative to the locator (antenna array)
azimuth_stdevStandard deviation of the azimuth measurement
elevationElevation (vertical angle) of the tag signal
elevation_stdevStandard deviation of the elevation measurement
# Angle (locator → broker)
silabs/aoa/angle/<locator_id>/<tag_id>
{ "azimuth": 42.1, "azimuth_stdev": 1.3, "elevation": -35.6, "elevation_stdev": 2.0 }

# Position (position engine → broker · in meters)
silabs/aoa/position/<tag_id>
{ "x": 2.41, "y": -1.02, "z": 1.20 }