IOx Gateway 2021

9.5.1 - 2026-09-28

  • Network Protocol: 1.17

  • Identifier Dictionary: 17

Fixed

  • Firmware version parsing error causing Skyresponse transmitter update to fail

9.5.0 - 2026-09-21

  • Network Protocol: 1.17

  • Identifier Dictionary: 17

This version significantly improves time sync accuracy throughout the network and
adds support for uplink quality test and multicast write.

Salto users: Note that the Salto sync interval has been increased from 1 minute to around 60 minutes.

Added

  • Added properties:

    • 0x830A - Run Uplink Quality Tests

    • 0x8865 - Salto Sync

    • 0x8414 - Advertisement Counter

    • 0x8102 - Reset Cause

  • Added events:

    • 0x8102 - Reset Cause (reported after a reset)

  • Updated MT2 to version 2.5.0

    • Added timeSync and prevTime to timestamped data

    • Added multicast-write and multicast-write-decoded

  • Updated Management API to version 10

    • Added multicast-write

  • Generate errorcode 19 (WatchdogReset) when a device watchdog reset is detected

  • Try to free up memory when usage exceeds 80 MB

Removed

  • Removed reporting of cpu-temperature

Changed

  • Changed time sync interval from 24 to 1 hour. Removed all log output by printing to log with DBG level instead of INFO.

  • Salto sync interval has been increased from 1 minute to around 60 minutes. Explicit sync can be requested using the salto-sync property.

  • Updated to Alpine Linux 3.23.6

Fixed

  • Prevent “false” time jump warnings during startup while waiting for NTP sync.

9.4.0 - 2026-06-18

  • Network Protocol: 1.16

  • Identifier Dictionary: 16

Added

  • Skyresponse support (BETA)

  • Wait for NTP sync at startup before starting BLE GW. Wait up to 120 seconds.

  • Check NTP sync status on time sync

  • Added time jump monitoring. Generate warning if detected. Trigger time sync if time jump is detected.

  • On time sync, print time drift (ms and ppm) for previous period (24h) to log

  • Added properties:

    • 0x8012 - Device Management Enabled

    • 0x9817 - Skyresponse Config (BETA)

    • 0x8106 - CPU Temperature

Removed

  • Removed serial port alias ‘usb_modem’. Serial port device-id must be specified during installation.

Changed

  • Updated to Alpine Linux 3.23.4

Fixed

  • Fixed JSON encoding for default-pins-state

9.3.0 - 2026-03-13

  • Network Protocol: 1.16

  • Identifier Dictionary: 14

Added

  • Added backfill support

  • Updated MT2 to version 2.4.0

    • New reporting topics: timestamped, timestamped-decoded

    • New request topics: ack, ack-decoded

  • Support for optional secureFlags and networkId in storage-mode-event

9.2.2 - 2026-02-27

  • Network Protocol: 1.15

  • Identifier Dictionary: 13

Fixed

  • Fixed issue where MBE backend API failed to load. This bug was present in versions 9.0.0 to 9.2.1.

9.2.1 - 2026-02-13

  • Network Protocol: 1.15

  • Identifier Dictionary: 13

Fixed

  • Fixed incompatibility issue in secure mode.

9.2.0 - 2026-02-10

This release should not be used, due to an incompatibility issue with older extender versions in secure mode.

  • Network Protocol: 1.15

  • Identifier Dictionary: 13

Added

  • Allow firmware download of block sizes up to 160 byte (typically 128 or 160)

  • Added 128-byte block broadcast support

    • New optional FLAGS.B128 bit in 0x8124 - Start Firmware Broadcast (explicit override)

    • New optional b128 JSON property added to start-firmware-broadcast (v13)

  • New property:

    • 0x8011 - Device Management Connected

Changed

  • Do not abort firmware update (download) unless firmware is confirmed not found

  • Made 0x8860 - Salto Config (salto-config) readable (apiKey redacted)

  • Increased SHIP (Salto Space) HTTP request timeout from 15s to 30s

  • Increase default firmware broadcast interval to 2000 ms in secure mode (still 500 ms in legacy mode)

  • Update to Alpine Linux 3.22.3

Removed

  • Removed Salto property:

    • 0x8861 - Salto Endpoint (BETA)

Fixed

  • Reduce chance of firmware updates failing with error 250

  • Throttling firmware block traffic correctly for all blocks sizes during firmware update (download)

  • Set scan-mode when extender connects to the same route (typically after a reset)

9.1.1 - 2025-12-02

  • Network Protocol: 1.14

  • Identifier Dictionary: 12

Changed

  • Increase MaxCount from 256 to 10000 in Salto requests

9.1.0 - 2025-11-25

  • Network Protocol: 1.14

  • Identifier Dictionary: 12

Added

  • Support for device alias

    • Salto door/user’s name used as alias

  • Added errorcode/warning 2000 (Battery Low, <= 20%)

Changed

  • Improved timer accuracy

Removed

  • Removed Salto properties:

    • 0x8862 - Salto Rssi Threshold (BETA)

    • 0x8863 - Salto Office Mode Rssi Threshold (BETA)

    • 0x8864 - Salto Office Mode Rssi Hysteresis (BETA)

  • Removed loading of rssi threshold and hysteresis from Salto door general purpose field

  • Removed Salto office mode support

  • Salto NEAR feature currently requires nearRssiThreshold >= -40 (rssi-throttling-mode)

Fixed

  • During firmware download large firmware blocks were sent too quickly

9.0.0 - 2025-10-28

  • Network Protocol: 1.13

  • Identifier Dictionary: 12

Added

  • MT2 2.3.0

    • Add certificate authentication. New config properties: certificate, privateKey.

    • New config property: keepAlive. Default value: 15.

    • New config property: ignoreRevocationErrors. Default value: true.

  • Add unconnected devices to network-tree property. Bump to version 3.

Changed

  • Update to Alpine Linux 3.22.2

  • Allow devices without children to join at the same route without causing changes to the tree.

    • A node restarting will now connect/reconnect faster and the whole network does not need to start scanning.

  • Update MQTTnet library

  • Diagnostics 1.1.0

    • Don’t set retain flag when publishing

  • Increase Management connection watchdog from 1 to 24 hours

  • Change loglevel to Debug for Salto sync

  • Reduce size of .tar output file

Removed

  • Remove unused/experimental backends: AWS, Azure, GCP and EclipseHono

  • Don’t enforce TLS 1.2 for MQTT secure connections (let OS decide)

Fixed

  • Add alias ‘usb_modem’ to serial device

  • More efficient memory usage when upgrading device firmware

8.0.0 - 2025-06-25

This release adds support for secure mode.

  • Network Protocol: 1.12

  • Identifier Dictionary: 11

Added

  • Secure mode support

    • New network-mode: Discovery (4)

    • Network time support

  • Root Certificates management

  • Salto Systems integration (BETA)

  • MT2 Backend API 2.2.0

  • Improvements to CLI (v0.3)

  • Support for new storage mode advertisement format with adv. name: MTxxxx / MTxxxxS

  • Uplink RSSI (rssi) added to device objects in network-tree property value. Version bumped to 2.

  • Throttle storage-mode-event at 30s interval. This limits upstream backend traffic.

  • New properties:

    • 0x800A - Provision

    • 0x800B - Network ID

    • 0x800C - Network Fingerprint

    • 0x800D - Provision Legacy

    • 0x8104 - Time

    • 0x8030 - Add Root Certificate

    • 0x8031 - Remove Root Certificate

    • 0x8032 - Root Certificates

    • 0x8033 - Root Certificate Fingerprints

    • 0x8860 - Salto Config (BETA)

    • 0x8861 - Salto Endpoint (BETA)

    • 0x8862 - Salto Rssi Threshold (BETA)

    • 0x8863 - Salto Office Mode Rssi Threshold (BETA)

    • 0x8864 - Salto Office Mode Rssi Hysteresis (BETA)

Changed

  • Zero-length byte array property/measurement values are translated to JSON null instead of an empty string (“”)

Fixed

  • Downstream throughput performance improvements

  • Don’t crash if backend config is unsupported or invalid. Backend config will be ignored in this case.

7.1.0 - 2024-09-23

  • Network Protocol: 1.11

  • Identifier Dictionary: 10

Added

  • New power saving network modes:

    • Hourly Scan (2)

    • Daily Scan (3)

  • New CLI command (v0.2):

    • list network-interfaces

  • MT2 Backend API 2.1.0:

    • New optional extenderId parameter added to property read/write

Changed

  • Status code 5 (No Route) is returned if the gateway is unable to route read/write property request to unconnected device. Previously status code 2 (Device not found) was returned.

  • New BLE GW firmware: 1.2.1.

  • Alpine Linux: 3.20.3

  • .NET version: 8.0.401

Fixes

  • Fixes and improvements in BLE GW firmware (1.2.1).

7.0.0 - 2024-06-18

Initial release.

Network Protocol: 1.11 Identifier Dictionary: 10