Skip to content

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
}
}
}

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.

iBeacon advertising interval in milliseconds. Set to 0 to disable iBeacon broadcasts.

Configuration variables

  • Type: integer
  • Default: 300
{ "devcfg": { "ble": { "ibIntervalMS": 0 } } }

GATT service advertising interval in milliseconds. Set to 0 to disable the GATT service.

Configuration variables

  • Type: integer
  • Default: 300
{ "devcfg": { "ble": { "gattIntervalMS": 500 } } }

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.

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" } } }

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" } } }

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 } } }

Telemetry reporting interval in seconds (Quuppa only).

Configuration variables

  • Type: integer
  • Default: 45
{ "devcfg": { "bleperi": { "tlmIntervalS": 30 } } }

Advertising interval in milliseconds.

Configuration variables

  • Type: integer
  • Default: 300
{ "devcfg": { "bleperi": { "intervalMS": 200 } } }

Scan/dwell duration in seconds (Quuppa related).

Configuration variables

  • Type: integer
  • Default: 45
{ "devcfg": { "bleperi": { "durationSecs": 60 } } }

Fixed iBeacon major/minor for the peripheral.

Configuration variables

  • Type: integer
  • Default: 0x0001 (major), 0x4242 (minor)
{ "devcfg": { "bleperi": { "major": 42, "minor": 84 } } }

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" } } }

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" } } }

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 } } }

Periodic BLE scanning reports nearby devices. Results are returned in devdata.blescan.lastscan. You can filter by UUID and choose which fields to include.

Scan duration in milliseconds.

Configuration variables

  • Type: integer
  • Default: 3000
{ "devcfg": { "blescan": { "durationMS": 5000 } } }

Interval in seconds between automatic scans. Set to 0 to disable periodic scanning.

Configuration variables

  • Type: integer
  • Default: 0 (disabled)
{ "devcfg": { "blescan": { "intervalS": 30 } } }

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 } } }

If true, the device UUID is included in each scan result.

Configuration variables

  • Type: boolean
  • Default: false
{ "devcfg": { "blescan": { "wantUUID": true } } }

If true, the MAC address is included in each scan result.

Configuration variables

  • Type: boolean
  • Default: true
{ "devcfg": { "blescan": { "wantMAC": false } } }

If true, major and minor values are included in each scan result.

Configuration variables

  • Type: boolean
  • Default: true
{ "devcfg": { "blescan": { "wantMM": false } } }