Custom Payload
Transmit data from your Bluetooth® Low Energy (BLE) device to build an intelligent, distributed system that creates value for your customers.
Using Custom Payloads
Hubble uniquely provides 13 bytes of customizable data in the BLE advertisement payload, enabling you to transmit actionable sensor and status information from your connected devices on our global network.
Terrestrial Network already provides approximate device location. Use the custom payload to add device-level intelligence to your solution.
Program your application to encode custom payload using a predefined type/value library so that it populates the Sensor Widget in your Hubble Dashboard.
Structured Micro-Telemetry
You can structure the custom payload as micro-telemetry to communicate state transitions, alerts, and periodic sensor sampling from the device.
Example: Temperature Reading
As an example, send a temperature reading in the payload that the Sensor Widget will display in your Hubble Dashboard.
The high-resolution temperature item in the Sensor Widget uses a signed 16-bit integer (structured as little-endian) in hundredths of a degree Celsius. (This means you must multiply your temperature by 100 to preserve its decimal places. The Sensor Widget will divide by 100 to report the correct temperature.)
Example: Temperature Reading displayed on Sensor Widget
| Custom Payload (Hex String) | Byte 1 (Type) | Byte 2 (Value LSB) | Byte 3 (Value MSB) | Type | Raw Integer | Scaled Value | Unit |
|---|---|---|---|---|---|---|---|
01 D6 0A | 0x01 | 0xD6 | 0x0A | Temp (High Res) | 2774 | 27.74 | °C |
Decoding the payload:
- Byte 1: Type identifier -
0x01= Temperature (High Res). - Bytes 2-3: Signed 16-bit integer (to account for negative temperatures) structured as little-endian: least-significant byte (LSB) first, most-significant byte (MSB) second. Data should be in hundredths of a degree Celsius.
- Raw Integer: Combine bytes as signed int16 (
0xAD6= 2774). Written in big-endian convention for ease of reading. - Scaled Value: Divide by 100 to get decimal precision (2774 → 27.74°C).
On the Satellite Network, custom payloads must be of length 0, 4, 9, or 13. For this example, pad the payload to 4 bytes by appending a trailing 0x00.
Structured Micro-Telemetry
Your custom payload does not need to adhere to the Sensor Widget formatting. You may fill in custom data however your application requires, then decode it yourself. You can structure the custom payload as micro-telemetry to communicate state transitions, alerts, and periodic sensor sampling from the device.
Industry Examples
Below are general examples of what you can fit inside 13 bytes, optimized for different use cases.
| Use Case | Example Custom Payload (13 bytes) |
|---|---|
| Asset Tracking Capture activity beyond location for supply chain logistics and asset management. | - 1 byte: battery level (0-100) - 1 byte: device state (e.g., 0x01 = moving, 0x02 = idle) - 2 bytes: impact count (int16) - 9 bytes unused |
| Cold Chain Reduce spoilage of perishables by monitoring temperature and humidity. | - 2 bytes: temperature (signed int16) - 2 bytes: humidity (signed int16) - 2 bytes: pressure (signed int16) - 2 bytes: CO2 (int16) - 1 byte: battery level (0-100) - 4 bytes unused |
| Inventory Management Maintain warehouse and yard visibility. | - 4 bytes: location ID - 1 byte: state change - 2 bytes: timestamp offset (for state change) - 1 byte: tamper event (flag) - 1 byte: battery level (0-100) - 3 bytes unused |
| Equipment Monitoring Send meter readings and sensor data from fixed position devices and machines. | - 1 byte: operating mode or error code - 2 bytes: meter reading (signed int16) - 8 bytes: GPS coordinates (lat/long) - 2 bytes unused |
| Environment and Agrotech Monitor climate and environmental inputs. | - 2 bytes: ambient temperature (signed int16) - 2 bytes: air quality (signed int16) - 2 bytes: light intensity (int16) - 2 bytes: wind speed (int16) - 2 bytes: CO2 (int16) - 1 byte: battery level (0-100) - 2 bytes unused |
ℹ️ Was this page useful? Please give us feedback.