Xandar Kardian Xandar Kardian Documentation v2.6.7
XANDAR KARDIANFor installers and IT teams

Gateway manuals · LGW communication module

LGW gateway manuals

Set up, configure and maintain the LGW communication module and XK-300H: Wi-Fi, firmware and MQTT settings with XK ToolHub, the on-device Device Portal, network requirements, the MQTT data format and remote software updates in Sensor Manager.

Version 1.0.2 · 2026-10-22 · Applies to LGW (XK-Dongle) and XK-300H

Applies to

The LGW (Light Gateway), also called the communication module or XK-Dongle. It is the communication unit supplied with XK300 Essence, and connects to the sensor by USB. Also applies to XK-300H.

Using the earlier XK-GW gateway?

The Raspberry Pi based XK-GW has its own network requirements. See the XK-GW gateway manuals.

1 · XK ToolHub

XK ToolHub: getting started

XK ToolHub is a Windows application for setting up a device connected to a PC by USB. It brings together Wi-Fi setup, firmware update and MQTT endpoint settings, and can install further tools from the Tool Library.

Install XK ToolHub

Current version: 1.0.6

  1. Download the installer: XKToolHub-Setup-1.0.6.zip
  2. Extract the ZIP file.
  3. Run XKToolHub-Setup-1.0.6.exe.
  4. Complete the installation.

Launch XK ToolHub

Use one of the following methods:

Launching XK ToolHub from the Windows Start menu
Launching XK ToolHub from the Windows Start menu

The Home screen

After launch, the Home screen is displayed. Select the tool that matches your task.

XK ToolHub Home screen with the three built-in tools
XK ToolHub Home screen with the three built-in tools

1.1 · XK ToolHub

Wi-Fi Setup

Use Wi-Fi Settings to apply Wi-Fi credentials to a connected device. Wi-Fi models support 2.4 GHz networks only.

Basic procedure

  1. Connect the device to the PC.
  2. Enter the Wi-Fi name (SSID).
  3. Enter the Password.
  4. Click Apply.
  5. Check the log and confirm Wi-Fi Settings Applied Successfully.
Wi-Fi Settings with the device connected to the PC
Wi-Fi Settings with the device connected to the PC

Fields

Field Description
Wi-Fi name (SSID) The target Wi-Fi network name.
Password The Wi-Fi password.
Hidden SSID Select if the target network does not broadcast its SSID.
Open network Select if the target network does not require a password.
Apply Applies the Wi-Fi settings to the connected device.

Optional functions

Connection. Click Connection at the top of the screen to change the COM port. The default is Auto Scan. Select a COM port manually only when you need a different one.

Selecting the COM port under Connection
Selecting the COM port under Connection

Current Wi-Fi Status. Expand Current Wi-Fi Status to check the device serial number, MAC address and configured SSID.

Current Wi-Fi Status after Read Current
Current Wi-Fi Status after Read Current

1.2 · XK ToolHub

Firmware Update

Update to the latest firmware

  1. Connect the device to the PC.
  2. Click Auto Update.
  3. Wait while the device is updated to the latest firmware version.
Auto Update completed
Auto Update completed

Optional: change the Flash Target

Click Flash Target at the top of the screen to expand the options. By default, both the COM port and the model are set to Auto Scan.

Select the COM port or model manually. You can change the COM port and the Model. Use this when auto scan does not match the target device or model.

Selecting the model manually
Selecting the model manually

Use a custom package. Use this when you need to install firmware that is not an official release, provided by XK.

  1. Open Flash Target.
  2. Change Model to Custom Package.
  3. Upload the ZIP file provided by XK.
  4. Click Flash Firmware.
Flashing a custom package
Flashing a custom package

Optional: older 300H firmware (version 1.9.x)

Only when instructed by Xandar Kardian

This procedure erases the device completely, including the product serial, and can leave the device unusable if done incorrectly. Use it only when Xandar Kardian support asks you to, and follow their instructions.

Follow this method if an XK-300H is running firmware version 1.9.x.

XK-300H connected to the PC
XK-300H connected to the PC
  1. Connect the device to the PC.
  2. In the Firmware Update tool, open the Bulk OTA tab.
  3. Set Model to XK_300_H.
  4. Keep Units set to 1.
  5. Select Erase all and Write base bins.
  6. Click START BULK OTA.

The Bulk OTA tab is generally used to update several devices at once. It is also used for advanced firmware write cases such as this one.

Bulk OTA settings for XK-300H on firmware 1.9.x
Bulk OTA settings for XK-300H on firmware 1.9.x

1.3 · XK ToolHub

MQTT Endpoint Settings

Connect the device

  1. Connect the device to the PC.
  2. Click Connect.
  3. Check the connection status. When the device is connected, the screen shows Connected (COMx).
Device connected, Use XK Cloud enabled
Device connected, Use XK Cloud enabled

Use XK Cloud

Use this option to connect the device to XK Cloud.

  1. Click Connect.
  2. Keep Use XK Cloud enabled.
  3. Select a Region.
  4. Click Apply.

When Use XK Cloud is enabled, the tool uses the XK Cloud configuration instead of manual broker settings.

Selecting the XK Cloud region
Selecting the XK Cloud region

Use your own endpoint

Use this option to send data to your own MQTT broker instead of XK Cloud.

  1. Click Connect.
  2. Turn off Use XK Cloud.
  3. Enter the endpoint information: Host, Port, Public Topic, Client ID, Username and Password.
  4. Click Apply.
Custom endpoint fields
Custom endpoint fields

Optional: enable TLS

Use this when the endpoint requires TLS authentication.

  1. Turn on Enable TLS.
  2. Select the TLS Mode.
  3. Upload the required certificate files: CA Cert, and for mutual TLS also Client Cert and Private Key.
  4. Click Apply.
TLS mode and certificate files
TLS mode and certificate files

The payload your broker receives is described in MQTT data integration.

1.4 · XK ToolHub

Find more tools

Use Find more tools to open the Tool Library and install tools that are not shown on the Home screen by default.

Basic procedure

  1. Open XK ToolHub.
  2. Click Find more tools on the Home screen.
  3. Search for the tool you need.
  4. Click Install.
  5. After installation, click Open or return to the Home screen.
  6. Confirm that the installed tool appears on the Home screen and in the left Tools menu.
Find more tools on the Home screen
Find more tools on the Home screen
The Tool Library
The Tool Library

Controls

Control What it does
Find more tools Opens the Tool Library.
Search tools Filters the tool list by name or keyword.
Refresh Reloads the latest tool catalog from the server.
Install Downloads and installs the selected tool.
Open Opens an installed tool.
Update Appears when a newer version of an installed tool is available.
Remove Removes an installed optional tool. Built-in tools cannot be removed.

How the Tool Library works

Updates

When you open an installed tool, XK ToolHub checks for a newer version. If one is found, an update prompt may appear. Click Update now to install it, or Not now to keep the current version. The prompt appears only once per session for the same tool.

2 · Device Portal

XK Device Portal

The Device Portal is a web page served by the device itself. Use it to check the device status and to configure the network, MQTT, sensor and system settings without a PC application. It applies to the LGW (XK-Dongle) and XK-300H.

1. Access the Device Portal

Connect to AP mode. After the device boots, its access point (AP) mode stays active for 5 minutes. Connect your PC or phone to the device network:

Open the portal. In a web browser, go to 192.168.4.1. The login page appears.

Device Portal login page
Device Portal login page

Sign in. The AP password and the portal login are provided by Xandar Kardian with your devices. Passwords are case-sensitive. If you do not have them, please contact Xandar Kardian support. We recommend changing the login after the first sign-in (see System, Account).

Extend AP mode. AP mode is active for 5 minutes by default. To reset the timer and extend it up to 10 minutes, click Extend 10min in the left menu.

AP mode timer and the Extend 10min button
AP mode timer and the Extend 10min button

2. Device Information

The Device Information page shows the current status and configuration of the device. Only basic information is shown at first; click expand for detailed technical parameters, and Refresh to load the latest values.

Device Information
Device Information

3. Network configuration

3.1 Select Network

Network Status shows the network in use and the signal strength of the active connection. Use Network Configuration to switch the connection type, or to change the Wi-Fi name (SSID) or password.

Switch to LTE.

  1. Open the dropdown menu.
  2. Select LTE Mode.
  3. Click Save Configuration.
Switching to LTE mode
Switching to LTE mode

Switch to Wi-Fi.

  1. Open the dropdown menu.
  2. Select WiFi Mode.
  3. Enter the Wi-Fi name (SSID) and password, or click Scan WiFi to list nearby networks.
  4. Wait a few seconds for the scan to finish.
  5. Select the Wi-Fi network from the list.
  6. Enter the password.
  7. Click Save Configuration.

3.2 LTE settings

With the SIM card provided by XK, no APN setting is normally needed. If you use your own SIM card, enter the APN value and click Save APN.

LTE / APN settings
LTE / APN settings

3.3 MQTT settings

Use this page to set where the device publishes its data: broker address, authentication, publish topic, TLS and Keep Alive.

MQTT status. The banner at the top shows Connected when the device is connected to the broker and communicating normally, and Disconnected when the connection is lost or delayed.

MQTT status banner
MQTT status banner

Use XK US Cloud (toggle). When enabled, the device works with XK US Cloud: Host, Port and Topic are fixed automatically and some fields are disabled.

Send data to your own MQTT server.

  1. Turn off Use XK US Cloud.
  2. Enter the MQTT settings.
  3. Click Save MQTT Settings.
MQTT settings for an external broker
MQTT settings for an external broker
Field Description
Host Broker domain or IP address, for example broker.example.com or 192.168.0.10.
Port Broker port. Standard MQTT uses 1883; MQTT over TLS usually 8883.
Publish Topic Topic the device publishes its data to.
Client ID MQTT client identifier. A unique value per device is recommended.
Username Broker account name. Optional, depending on the broker.
Password Broker password. Optional, depending on the broker. Click Show to display it.
Enable TLS Encrypts the connection with TLS, typically on port 8883. The broker's certificate requirements, such as a CA certificate, must be met.
Keep Alive (seconds) Interval that keeps the broker connection alive. 30 to 120 seconds is common.

3.4 Batch Wi-Fi settings

The device you are connected to in AP mode can act as the main device: it scans nearby devices and applies the same Wi-Fi settings to several of them at once. Configure no more than 10 devices at a time.

  1. Click Scan Nearby and wait for the device list to fill.
  2. Select the devices to configure.
  3. Enter the router SSID in Batch SSID and the router password in Batch Password.
  4. Click Apply To Selected.
  5. Check the Status column on the right. ok means the configuration completed.
Selecting devices and entering the Wi-Fi details
Selecting devices and entering the Wi-Fi details
Batch configuration completed
Batch configuration completed

4. Sensor control

Radar data shows the parameters currently received from the radar. For details of the radar application data, click XK Manual at the bottom left of the page.

Radar parameter control sends commands to the radar sensor.

To change a parameter, enter 1010.1010, [PARAMETER_NUM], [PARAMETER_VALUE], 255.255 255.255 and click Send Command. Supported parameters are listed in the XK Manual parameter table.

Radar Parameters and Radar Data
Radar Parameters and Radar Data

5. System

Notes

Some settings take a few seconds to apply. After network changes, the connection status may update with a short delay. For batch configuration, use a stable environment and limit the number of selected devices.

3 · Network

Network checklist for the LGW

Firewall, addressing and Wi-Fi requirements for sites using the LGW communication module. LTE models use the cellular network and do not need any change to the facility network.

Required outbound firewall rules

Port Protocol Direction Destination Purpose Required
8883 TCP Outbound a1m82llrt5xrr6-ats.iot.us-east-2.amazonaws.com MQTT over TLS: cloud data, Sensor Manager commands and data Yes
8883 TCP Outbound a1m82llrt5xrr6-ats.iot.ca-central-1.amazonaws.com MQTT over TLS, Canada region If used
8883 TCP Outbound a1m82llrt5xrr6-ats.iot.ap-northeast-2.amazonaws.com MQTT over TLS, Korea region If used
8883 TCP Outbound a1m82llrt5xrr6-ats.iot.ap-southeast-2.amazonaws.com MQTT over TLS, Australia region If used
80 TCP Outbound us-central1-xk-calibrationtool.cloudfunctions.net Device OTA download and time lookup Yes
53 UDP/TCP Outbound Site DNS resolver, and 8.8.8.8 if allowed DNS resolution Yes

IP and DHCP

Wi-Fi and network segmentation

Bandwidth

Measure Approximate value
Daily upload 7.72 MiB per day
Daily download 1.10 MiB per day
Average upload 0.75 kbit/s
Average download 0.11 kbit/s

Assumptions: MQTT over TLS on TCP 8883, QoS 0, publish interval 3 seconds; the download estimate covers TCP ACK traffic only.

Troubleshooting

Symptom Check
Devices disconnect frequently DHCP pool size, DHCP lease stability, AP client capacity, Wi-Fi signal strength (RSSI), DNS resolution
Cloud data does not appear Outbound TCP 8883 to the AWS IoT endpoint; whether TLS or MQTT traffic is blocked; whether TLS inspection interferes with MQTT over TLS
Gateway OTA or time sync fails Outbound TCP 80 to us-central1-xk-calibrationtool.cloudfunctions.net

4 · Integration

MQTT data integration

How to receive and parse the JSON that the gateway publishes over MQTT, for partners who send data to their own broker (see MQTT Endpoint Settings).

Production sensors ship with the latest sensor firmware and use the App 41 data format. You only need to configure your MQTT endpoint and parse the published JSON.

Item Value
Data format JSON
Protocol MQTT
Default transmission interval Typically every 3 seconds
Sensor data format App 41

Message structure

Each payload carries standard telemetry fields. Device-status fields are added to the next telemetry payload after each minute change; they are not sent as a separate message.

Standard fields (every packet)

Field Type Description
dt String Data type. Fixed to e (essential) for this integration.
nw Integer Network status: the connection interface (see below).
device String Gateway MAC address, lowercase and colon-separated, e.g. aa:bb:cc:dd:ee:ff.
app Integer Sensor firmware application number. Production payloads use 41.
sn String Gateway serial number.
rsn String Serial number of the connected radar sensor.
saving-mode Integer Gateway data-saving mode: 0 = normal, 1 = saving mode.
data Array Vital signs and radar metrics (see the index tables).
data2 Array Extended data. Included only when data[7] (version) is 121507 or later; then 21 values (indexes 0–20).

Periodic fields (added after a minute change)

Field Type Description
esp-ver String Gateway firmware version.
led-strip-bright Integer LED strip brightness level.
led-strip-onoff Integer LED strip state: 1 = on, 0 = off.
lte-rssi Integer LTE modem signal strength.
boot-count Integer Total number of gateway reboots.

Network status (nw)

Value Name Meaning
0 NW_STATUS_OFFLINE Offline or local network only
1 NW_STATUS_WIFI Connected via Wi-Fi
2 NW_STATUS_LTE Connected via LTE
3 NW_STATUS_LTE_M Connected via LTE-M

data array (App 41)

Parse data and data2 by position; each index has a fixed meaning.

Index Metric Description
0 Presence 1.0 = occupied, 0.0 = vacant, -1.0 = booting
1 RR Respiratory rate (breaths per minute)
2 HR Heart rate (beats per minute)
3 Movement Index Intensity of detected relative movement
4 stability_BR Respiratory rate stability score
5 stability_HR Heart rate stability score
6 stability_move Movement stability score
7 Version Sensor firmware version
8 DataCursor Internal sequence counter for processed data
9 POBCCollectedTime POBC collection time; each count is 5 minutes
10 POBCCollectedDate POBC collection date; each count is 1 day
11 DwellTime How long the person has been present
12 Amplitude_RR Amplitude of the respiratory signal
13 Distance_RR Distance to the respiratory detection point
14 RegionPresence Presence within a sub-region
15 vital_signal Latest vital signal value
16 POBC_RR Probability that the respiratory rate baseline has shifted
17 POBC_HR Probability that the heart rate baseline has shifted
18 Awakeness Sleep/wake status indicator

data2 array (version 121507 or later)

Index Metric Description
0 AutoSensitivity Environmental movement noise level related to occupancy sensitivity
1 POBCCollectedTime POBC collection time; each count is 5 minutes
2 POBCCollectedDate POBC collection date; each count is 1 day
3 Absence_Duration How long the person has been absent
4 RRPoint_Sustained How long a respiratory detection point has been sustained
5 SleepFlag Sleep detected: 1 = yes, 0 = no
6 MoveDuringSleepFlag Movement during sleep detected: 1 = yes, 0 = no
7 ShallowB_Flag Cumulative count of shallow breathing detections
8 MoveAVG_Last5Min Average movement index over the last 5 minutes
9 AwakenessAVG_Last5Min Average awakeness over the last 5 minutes
10 Z_RRAVG_Last5Min Average respiratory Z-score over the last 5 minutes
11 Z_HRAVG_Last5Min Average heart rate Z-score over the last 5 minutes
12 RRAVG_Last5Min Average respiratory rate over the last 5 minutes
13 HRAVG_Last5Min Average heart rate over the last 5 minutes
14 DistanceRRAVG_Last5Min Average distance to the vital-sign source over the last 5 minutes
15 runtime_day Sensor runtime in days
16 Z_RR Respiratory Z-score
17 Z_HR Heart rate Z-score
18 publish_policy Encoded as mode × 1,000,000 + normal interval (s) × 1,000 + conditional interval (s)
19 MoveDuringSleep_Duration Number of 10 Hz samples with MoveDuringSleep = 1 (not seconds)
20 MoveDuringSleep_Count Number of 0 → 1 MoveDuringSleep transitions

Payload examples

Standard telemetry:

{
  "dt": "e", "nw": 1, "device": "a1:b2:c3:d4:e5:f6", "app": 41,
  "sn": "GW1234567890", "rsn": "RS1234567890", "saving-mode": 0,
  "data": [1, 16.8, 72.4, 14.2, 91.0, 88.5, 76.3, 121507, 1024, 35, 0, 124.5, 0.42, 2.15, 1, 0.031, 17.1, 71.8, 83.6],
  "data2": [48, 35, 0, 0, 1, 0, 0, 0, 12.4, 82.1, 0.18, 0.21, 16.5, 72.0, 2.08, 3, 0.19, 0.23, 1003003, 6, 2]
}

Telemetry with device status:

{
  "dt": "e", "nw": 1, "device": "a1:b2:c3:d4:e5:f6", "app": 41,
  "sn": "GW1234567890", "rsn": "RS1234567890",
  "esp-ver": "2.2.11-300H-next", "led-strip-bright": 32, "led-strip-onoff": 1,
  "lte-rssi": 0, "boot-count": 54, "saving-mode": 0,
  "data": [1, 16.8, 72.4, 14.2, 91.0, 88.5, 76.3, 121507, 1024, 35, 0, 124.5, 0.42, 2.15, 1, 0.031, 17.1, 71.8, 83.6],
  "data2": [48, 35, 0, 0, 1, 0, 0, 0, 12.4, 82.1, 0.18, 0.21, 16.5, 72.0, 2.08, 3, 0.19, 0.23, 1003003, 6, 2]
}

Parsing rules

  1. Accept only valid JSON payloads.
  2. Confirm that dt is e and app is 41.
  3. Confirm that data contains at least 19 numeric values.
  4. For version 121507 or later, confirm that data2 contains 21 numeric values. For earlier versions, data2 is absent.
  5. Parse the arrays by index, not by field name.
  6. Ignore unknown top-level keys, so future gateway metadata does not break the parser.
  7. Use device, sn and rsn to link a reading to its gateway and sensor.
const dataFields = [
  "presence", "BR", "HR", "movement_index", "stability_BR", "stability_HR",
  "stability_move", "version", "dc", "POBCCollectedTime", "POBCCollectedDate",
  "dwelltime", "Amplitude_RR", "Distance_RR", "RegionPresence", "vital_signal",
  "POBC_RR", "POBC_HR", "Awakeness"
];
const data2Fields = [
  "AutoSensitivity", "POBCCollectedTime", "POBCCollectedDate", "Absence_Duration",
  "RRPoint_Sustained", "SleepFlag", "MoveDuringSleepFlag", "ShallowB_Flag",
  "MoveAVG_Last5Min", "AwakenessAVG_Last5Min", "Z_RRAVG_Last5Min", "Z_HRAVG_Last5Min",
  "RRAVG_Last5Min", "HRAVG_Last5Min", "DistanceRRAVG_Last5Min", "runtime_day",
  "Z_RR", "Z_HR", "publish_policy", "MoveDuringSleep_Duration", "MoveDuringSleep_Count"
];

function mapArray(fields, values) {
  return Object.fromEntries(fields.map((field, index) => [field, values[index]]));
}

function parseSensorPayload(payload) {
  const message = typeof payload === "string" ? JSON.parse(payload) : payload;
  if (message.dt !== "e" || message.app !== 41) {
    throw new Error("Unexpected sensor payload");
  }
  if (!Array.isArray(message.data) || message.data.length < dataFields.length) {
    throw new Error("Invalid data array");
  }
  const version = message.data[7];
  const hasData2 = version >= 121507;
  if (hasData2 && (!Array.isArray(message.data2) || message.data2.length !== data2Fields.length)) {
    throw new Error("Invalid data2 array");
  }
  if (!hasData2 && message.data2 !== undefined) {
    throw new Error("Unexpected data2 array");
  }
  return {
    device: message.device,
    gatewaySerial: message.sn,
    sensorSerial: message.rsn,
    savingMode: message["saving-mode"],
    data: mapArray(dataFields, message.data.slice(0, dataFields.length)),
    data2: hasData2 ? mapArray(data2Fields, message.data2) : undefined
  };
}

5 · Sensor Manager

Update LGW software in Sensor Manager

Update the LGW software remotely from Sensor Manager and check that the update is complete. The update takes about 3 to 5 minutes, depending on network conditions. The screenshots use an example company called "Sample"; select your own company.

1. Open LGW Calibration

Open Sensor Manager and sign in. In the left menu, select LGW, then Calibration.

Sensor Manager menu: LGW, Calibration
Sensor Manager menu: LGW, Calibration

2. Select your company and connection status

In the Company dropdown, select your company. Place is optional: select one to narrow the list, or leave it blank. Under Connection Status, select connected.

Company and connection status filters
Company and connection status filters

3. Confirm the device list

Check the List section below the filters. Confirm that the devices are shown and that the company above the list is correct.

The device list header
The device list header

4. Select the devices to update

Tick the checkbox on the left of each device to update, and check the Device ID to make sure you selected the right devices. A blue checkbox and a highlighted row mark a selected device.

Selected device
Selected device

5. Choose Update LGW

Above the device list, open the Command dropdown in the for Users tab and select Update LGW.

Command dropdown with Update LGW
Command dropdown with Update LGW

6. Click Send and wait 3 to 5 minutes

Confirm that Update LGW is selected and the right devices are ticked, then click Send next to the Command dropdown. Allow about 3 to 5 minutes for the update to finish.

Update LGW selected, ready to send
Update LGW selected, ready to send

7. Check the software version

Find each updated device in the list and check the GW SW Version column. The update is complete when every selected device shows the latest software version.

GW SW Version after the update
GW SW Version after the update

The version number in the screenshot is an example only; the latest version may differ.