BLE, Peripheral & Scan Config
Controls Bluetooth Low Energy behaviour on the nRF53 (main Bluetooth), the nRF52 (BLE peripheral for Quuppa or legacy GATT), and periodic BLE scanning with optional filters.
Key path: devcfg.ble, devcfg.bleperi, devcfg.blescan
{ "devcfg": { "ble": { "ibIntervalMS": 300, "gattIntervalMS": 300, "major": 1, "minor": 2, "txPower": 8, "uuid": "E2C56DB5DFFB48D2B060D0F5A71096E0", "adname": "infrafon-1234" }, "bleperi": { "state": "QB", "type": 45, "tlmIntervalS": 45, "intervalMS": 300, "durationSecs": 45, "major": 1, "minor": 0x4242, "txPower": 8, "uuid": "E2C56DB5DFFB48D2B060D0F5A71096E0", "adname": "infrafon-1234", "key": "", "dfu_start": false, "reset": false }, "blescan": { "durationMS": 3000, "intervalS": 0, "uuidFilter": "*", "topN": 3, "wantUUID": false, "wantMAC": true, "wantMM": true } }}BLE (nRF53)
Section titled “BLE (nRF53)”This module handles the primary Bluetooth interface. It can broadcast
iBeacon advertisements and expose a GATT service for messaging and alerts.
Both features can be independently disabled by setting their interval to 0.
ibIntervalMS
Section titled “ibIntervalMS”iBeacon advertising interval in milliseconds. Set to 0 to disable
iBeacon broadcasts.
Configuration variables
- Type: integer
- Default:
300
{ "devcfg": { "ble": { "ibIntervalMS": 0 } } }gattIntervalMS
Section titled “gattIntervalMS”GATT service advertising interval in milliseconds. Set to 0 to
disable the GATT service.
Configuration variables
- Type: integer
- Default:
300
{ "devcfg": { "ble": { "gattIntervalMS": 500 } } }major / minor
Section titled “major / minor”iBeacon major and minor fields. These values are automatically overwritten when uplink messages are waiting. The major field becomes the number of pending UL messages, and the minor field encodes an alert bitmask.
Configuration variables
- Type: integer (0‑65535)
- Default:
1(major),2(minor)
{ "devcfg": { "ble": { "major": 100, "minor": 200 } } }The alert bitmask uses bits:
DURESS=0, FALL=1, ASSIST=2, DV=3, TELEM=4, BUTTON=5. Not all are currently implemented.
txPower
Section titled “txPower”Transmit power in dBm.
Configuration variables
- Type: integer
- Default:
8
{ "devcfg": { "ble": { "txPower": 4 } } }16‑byte iBeacon proximity UUID. The least significant byte is set to
1 if there are pending uplink alerts/messages, 0 otherwise.
Configuration variables
- Type: string (32 hex digits)
- Default:
"E2C56DB5DFFB48D2B060D0F5A71096E0"
{ "devcfg": { "ble": { "uuid": "E2C56DB5DFFB48D2B060D0F5A71096E0" } } }adname
Section titled “adname”Advertising name shown in BLE scans. Defaults to cc2-ABCD (last 4
characters of the device ID).
Configuration variables
- Type: string
- Default:
"infrafon-1234"
{ "devcfg": { "ble": { "adname": "my-device" } } }BLE Peripheral (nRF52)
Section titled “BLE Peripheral (nRF52)”This controls the secondary BLE chip, used for Quuppa location tracking
or a legacy GATT service (deprecated in favour of the nRF53 GATT).
The state parameter selects the operating mode.
Sets the operational state of the nRF52.
Configuration variables
- Type: string
- Allowed values:
"QB"(Quuppa),"GATT"(legacy GATT),"IB+GATT"(iBeacon + GATT)
{ "devcfg": { "bleperi": { "state": "GATT" } } }Device type identifier (used internally).
Configuration variables
- Type: integer
- Default:
45
{ "devcfg": { "bleperi": { "type": 50 } } }tlmIntervalS
Section titled “tlmIntervalS”Telemetry reporting interval in seconds (Quuppa only).
Configuration variables
- Type: integer
- Default:
45
{ "devcfg": { "bleperi": { "tlmIntervalS": 30 } } }intervalMS
Section titled “intervalMS”Advertising interval in milliseconds.
Configuration variables
- Type: integer
- Default:
300
{ "devcfg": { "bleperi": { "intervalMS": 200 } } }durationSecs
Section titled “durationSecs”Scan/dwell duration in seconds (Quuppa related).
Configuration variables
- Type: integer
- Default:
45
{ "devcfg": { "bleperi": { "durationSecs": 60 } } }major / minor
Section titled “major / minor”Fixed iBeacon major/minor for the peripheral.
Configuration variables
- Type: integer
- Default:
0x0001(major),0x4242(minor)
{ "devcfg": { "bleperi": { "major": 42, "minor": 84 } } }txPower
Section titled “txPower”Transmit power in dBm.
Configuration variables
- Type: integer
- Default:
8
{ "devcfg": { "bleperi": { "txPower": 0 } } }Proximity UUID (16 bytes). Same default as the nRF53 BLE.
Configuration variables
- Type: string (32 hex digits)
- Default:
"E2C56DB5DFFB48D2B060D0F5A71096E0"
{ "devcfg": { "bleperi": { "uuid": "E2C56DB5DFFB48D2B060D0F5A71096E0" } } }adname
Section titled “adname”Advertising name. Defaults to device ID suffix.
Configuration variables
- Type: string
- Default:
"infrafon-1234"
{ "devcfg": { "bleperi": { "adname": "cc2-ABCD" } } }Authentication key for the Quuppa firmware. Only required when using Quuppa location.
Configuration variables
- Type: string
- Default:
""
{ "devcfg": { "bleperi": { "key": "my-secret-key" } } }dfu_start
Section titled “dfu_start”Set to true to force the nRF52 into DFU mode for a Nordic DFU update.
The peripheral disconnects and reboots into the bootloader.
Configuration variables
- Type: boolean
- Default:
false - One-shot: yes
{ "devcfg": { "bleperi": { "dfu_start": true } } }Set to true to reset the nRF52 immediately.
Configuration variables
- Type: boolean
- Default:
false - One-shot: yes
{ "devcfg": { "bleperi": { "reset": true } } }BLE Scanning (nRF53)
Section titled “BLE Scanning (nRF53)”Periodic BLE scanning reports nearby devices. Results are returned in
devdata.blescan.lastscan. You can filter by UUID and choose which
fields to include.
durationMS
Section titled “durationMS”Scan duration in milliseconds.
Configuration variables
- Type: integer
- Default:
3000
{ "devcfg": { "blescan": { "durationMS": 5000 } } }intervalS
Section titled “intervalS”Interval in seconds between automatic scans. Set to 0 to disable
periodic scanning.
Configuration variables
- Type: integer
- Default:
0(disabled)
{ "devcfg": { "blescan": { "intervalS": 30 } } }uuidFilter
Section titled “uuidFilter”16‑byte UUID filter in hex. Only devices matching this UUID are
included in results. Use "*" to accept all UUIDs.
Configuration variables
- Type: string
- Default:
"*"
{ "devcfg": { "blescan": { "uuidFilter": "E2C56DB5DFFB48D2B060D0F5A71096E0" } } }Maximum number of devices to report.
Configuration variables
- Type: integer
- Default:
3
{ "devcfg": { "blescan": { "topN": 5 } } }wantUUID
Section titled “wantUUID”If true, the device UUID is included in each scan result.
Configuration variables
- Type: boolean
- Default:
false
{ "devcfg": { "blescan": { "wantUUID": true } } }wantMAC
Section titled “wantMAC”If true, the MAC address is included in each scan result.
Configuration variables
- Type: boolean
- Default:
true
{ "devcfg": { "blescan": { "wantMAC": false } } }wantMM
Section titled “wantMM”If true, major and minor values are included in each scan result.
Configuration variables
- Type: boolean
- Default:
true
{ "devcfg": { "blescan": { "wantMM": false } } }Related
Section titled “Related”- BLE Scan Results (Uplink) — data format
- BLE Network Setup — BLE network type definitions (
b1,q1) - WiFi Config — WiFi scanning and ALP