Skip to main content

Hardware Drivers

Drivers translate physical BLE hardware (antennas/gateways and beacons from different manufacturers) into the platform's internal model — normalizing RSSI readings, battery mapping, and payload format. In ION Guard, the drivers do not live in the core: they belong to the Synapsys tracking module (indoor-location), which is distributed as a package and is not part of the core repository.

Scope of this page

The driver contract (interface, methods, and concrete drivers such as the Minew MG4C) is internal to the Synapsys module and resides in app/Modules/IndoorLocation/ — outside the core tree. This page documents only what is observable from the core side (the drivers configuration). The driver contract signatures must be confirmed in the module's own source.

drivers configuration

The module publishes a drivers configuration file with the following structure (keys confirmed in tests/Unit/Config/DriversConfigTest.php):

KeyTypePurpose
registeredarrayDrivers registered/available for the module
rssi_calibration_offsetarrayRSSI calibration offsets applied per driver/device
battery_mappingarrayBattery level mapping from the beacon payload

RSSI calibration connects directly to the tracking calibration process: the offsets defined here adjust the distance estimated from the received signal.

Structure in the module

Within the module, drivers are organized into dedicated directories (see Module System):

app/Modules/IndoorLocation/
├── Contracts/ # Module interfaces (including the driver contract)
├── Drivers/ # Driver implementations per manufacturer
└── config/ # config/drivers.php (registered, rssi_calibration_offset, battery_mapping)

Supported hardware

The Synapsys field gateway is the Radium product (Iongrade's BLE→MQTT antenna). The module is also compatible with third-party gateways — the reference driver is the Minew MG4C. Device details from the user side are in Antennas and Beacons.

Next steps