Show Custom Payoad
Program your application to encode custom payload using the type/value library so that it creates a Sensor Widget in your Dashboard.
Overview
Hubble uniquely provides 13 bytes of customizable data in the Bluetooth® Low Energy (BLE) advertisement payload, enabling you to transmit actionable sensor and status information from your connected devices on our global network (see Custom Payload).
Use the custom payload to add device-level intelligence to your solution: go beyond pure locationing to building a full telemetry channel for your product.
Dashboard Visualization
Micro-telemetry encoded using the type/value index can be visualized directly in your Hubble Dashboard (log in or sign up).
When a device transmits a payload that contains a known type-value pair defined in the table below, the Device Detail view in Dash will atuomatically:
- Decode the payload inline in the Packet History widget, creating a data log.
- Plot time-series data in the Sensor Widget, for recognized data types that return a range of values.
Supported Type-Value Pairs
If a payload byte sequence matches a type ID in this table, the Dashboard will decode and display that reading. Unrecognized type IDs are shown as raw base64 encoded strings.
Environmental
| Type ID | Sensor Name | Value Format | Unit |
|---|---|---|---|
0x01 | Temperature (High Res) | Signed 16-bit integer × 0.01 | °C |
0x02 | Temperature | Signed 8-bit integer | °C |
0x03 | Humidity | Unsigned 8-bit integer × 0.5 | % |
0x04 | Barometric Pressure | Unsigned 16-bit integer × 0.1 | hPa |
0x05 | CO₂ | Unsigned 16-bit integer | ppm |
0x06 | Air Quality Index | Unsigned 8-bit integer | — |
0x07 | Light Level | Unsigned 16-bit integer | lux |
0x08 | UV Index | Unsigned 8-bit integer × 0.1 | — |
0x09 | Sound Level | Unsigned 8-bit integer | dB |
Motion & Position
| Type ID | Sensor Name | Value Format | Unit |
|---|---|---|---|
0x10 | Accelerometer | Three signed 16-bit integers (x, y, z) | mg |
0x11 | GPS | Two signed 32-bit integers (lat, lon) × 1×10⁻⁷ | — |
0x12 | GPS Delta | Two signed 16-bit integers (lat∆, lon∆) × 1×10⁻⁴ | — |
0x13 | Orientation | Unsigned 16-bit integer × 0.01 | ° |
0x14 | Motion Detected | Unsigned 8-bit integer (bit 0 = motion) | — |
Power
| Type ID | Sensor Name | Value Format | Unit |
|---|---|---|---|
0x20 | Battery Percent | Unsigned 8-bit integer | % |
0x21 | Battery Voltage | Unsigned 16-bit integer × 0.001 | V |
Generic
| Type ID | Sensor Name | Value Format | Unit |
|---|---|---|---|
0x30 | Counter (8-bit) | Unsigned 8-bit integer | — |
0x31 | Counter (16-bit) | Unsigned 16-bit integer | — |
0x32 | Counter (32-bit) | Unsigned 32-bit integer | — |
0x33 | Raw Byte | Unsigned 8-bit integer | — |
0x34 | Raw Word | Unsigned 16-bit integer | — |
0x35 | Raw DWord | Unsigned 32-bit integer | — |
0x36 | Percentage | Unsigned 8-bit integer × 0.5 | % |
Reach Out: Want to see a specific data type added for Dashboard to decode? Please submit feedback.
Programming Your Device
When generating a BLE advertisement from your application firmware, pass your custom data using the Device SDK Functions API. The custom payload field accepts any byte sequence you choose.
To have your payload automatically decoded and visualized in the Dashboard, encode it using the Hubble type-value format:
- First byte must be the type byte for the specific type/value pair.
- Following byte(s) must be the value byte(s).
- Values use little-endian encoding for multi-byte integers.
- Multiple readings can be concatenated in a single payload, but only the first type/value pair is decoded.
See NovelBit's Hubble Tutorial using Nordic's nRF54L15, including step-by-step instructions to transmit temperature sensor reading as custom payload.