DM Dot Glow - Third-Party LED Control
Discover how to enhance your LED lighting setup using DM Dot Glow for seamless third-party control and customization options.
Table of Contents
This article explains how a third-party application can control the LED on a DM Dot Glow over Bluetooth® Low Energy. It covers the one-time setup in the Digital Matter BLE Provisioning Tool, and the single command your application sends to switch the LED on, off or flashing.
Requirements
- DM Dot Glow firmware v1.4 or later.
- Digital Matter BLE Provisioning Tool.
- Your third-party application
Overview
The Dot Glow accepts a dedicated LED command that a third-party application can send with a single Bluetooth write. No Digital Matter encryption or proprietary handshake is involved. Integration has two parts:
- One-time setup in the BLE Provisioning Tool. Third-party LED control is disabled by default. The device owner enables it by setting the LED Auth Level and, if required, a 4-digit PIN. This cannot be done from a third-party application and must be done from the Digital Matter BLE Provisioning Tool.
- LED commands from your application. Once enabled, your application connects to the Dot Glow and writes LED commands (on, off or flashing), including the PIN if one was set.
All other device functions (configuration parameters, firmware updates and device administration) are only available through Digital Matter's BLE Provisioning Tool.
Step 1: One-time setup in the BLE Provisioning Tool
The LED settings are found in the device’s LED parameters. They can be applied with a configuration template, in bulk or to individual devices. See Digital Matter BLE Provisioning Tool
| Setting | Options | Purpose |
|---|---|---|
| Auth Level |
Unsecured, Secured with Pin, or Encrypted. (If you select Encrypted, the LED can only be controlled from the Digital Matter BLE Provisioning Tool) |
Decides whether LED commands are accepted, and whether a PIN is checked |
| Pin | 4 digits | The PIN your application must include in every command. Only shown when Secured with Pin is selected |
Auth Levels
| Value | Name in the app | Behavior |
|---|---|---|
| 0 | Unsecured | Any connected client can control the LED. The PIN field is ignored, but must still be sent. |
| 1 | Secured with Pin | Every command must include the 4-digit PIN. If the PIN is wrong, the command is rejected and the device disconnects. |
| 2 | Encrypted | Factory default. Third-party LED control is disabled. Every command is rejected and the device disconnects. |
PIN
- The PIN is exactly 4 decimal digits (0 to 9), chosen by whoever provisions the device.
- Each digit is sent as its own byte with a value from 0 to 9. PIN 1234 is sent as
01 02 03 04, not as the ASCII string “1234” (31 32 33 34), which would be rejected as a wrong PIN. - The app does not allow PIN 0000 with Secured with Pin.
Note: The PIN is sent unencrypted over the air. Treat it as a light-weight protection against accidental or casual use, not as a security credential.




Step 2: Finding a Dot Glow
Scan for Bluetooth devices and match on the advertised device name.
A Dot Glow advertises as DM followed by 6 uppercase hexadecimal characters: its serial number, derived from the last three bytes of its MAC address. All Dot Glow MAC addresses start with 48:E6:C6:D, so in practice the name is DM0 followed by the last 5 hex digits of the MAC address:
Example:
Advertised name: DM0A1B2C
MAC address: 48:E6:C6:DA:1B:2CThe serial number is printed on the device label, so either the label or the MAC address is enough to find the right unit.
- Once out of Shipping Mode, the Dot Glow advertises every 10 seconds by default (configurable in the BLE Provisioning Tool). Allow at least 20 seconds of scanning before concluding a device is not in range.
- Devices in Shipping Mode advertise a shorter payload, but keep the same name, so scanning by name works in both states.
Important: Only one client can be connected to a Dot Glow at a time. While a client is connected, the device stops advertising, so it will not be detected by gateways until the connection ends. Keep connections as short as possible to avoid the Dot being reported as lost.
Step 3: Sending LED commands
Service and characteristic
| Item | UUID | Operation |
|---|---|---|
| LED service | 44696769-7461-6c20-4d61-747465720400 |
Discover service |
| LED command characteristic | 44696769-7461-6c20-4d61-747465720402 |
Write with response, 11 bytes |
The characteristic is write-only. Reading it returns zero bytes.
Command format:
Write exactly 11 bytes to the LED command characteristic, using a write with response. All multi-byte values are little-endian.
| Offset | Size | Field | Accepted values | Description |
|---|---|---|---|---|
| 0 | 4 | PIN | 4 bytes, each 00 to 09 | One byte per digit. Required for Secured with Pin; ignored for Unsecured, but must be present |
| 4 | 1 | Mode | 0 off, 1 on, 2 flashing | Any other value is rejected |
| 5 | 1 | Brightness | 0 to 100 | Percentage of maximum brightness. 0 turns the LED off in any mode |
| 6 | 2 | Duration | 2 to 1800 | Seconds. The LED turns off when the duration expires |
| 8 | 2 | Period | 25 to 10000 | Milliseconds. Flashing mode only |
| 10 | 1 | Duty cycle | 0 to 100 | Percentage of each period the LED is lit. Flashing mode only. 0 turns the LED off; 100 behaves as steady on |
- Always send all 11 bytes, including for Off. Fields that do not apply are ignored, but must be present. Sending fewer than 11 bytes causes undefined behavior.
- Values outside the accepted range are adjusted to the nearest limit, not rejected. For example, a brightness of 150 runs at 100, and a duration of 5000 seconds runs for 1800.
| Command | Mode | Required fields | Ignored fields |
|---|---|---|---|
| Off | 0 | None | Brightness, duration, period, duty cycle |
| On | 1 | Brightness, duration | Period, duty cycle |
| Flashing | 2 | Brightness, duration, period, duty cycle | None |
Note: The accepted values above are shown in decimal. In the command, each value is sent as raw bytes (shown in hexadecimal in the examples below), with 2-byte values in little-endian order. For example, a duration of 10 seconds is sent as 0A 00, and a period of 500 ms as F4 01.
Examples
The examples below use Secured with Pin and PIN 1234 (01 02 03 04), unless stated otherwise.
Flash at 50% brightness for 10 seconds, 500 ms period, 50% duty cycle:
01 02 03 04 | 02 | 32 | 0A 00 | F4 01 | 32
PIN mode 50% 10 s 500 ms 50%The same command with Auth Level Unsecured (PIN ignored, zeros sent):
00 00 00 00 | 02 | 32 | 0A 00 | F4 01 | 32Steady on at full brightness for 30 seconds:
01 02 03 04 | 01 | 64 | 1E 00 | 00 00 | 00Turn the LED off immediately:
01 02 03 04 | 00 | 00 | 00 00 | 00 00 | 00Recommended sequence
- Scan for the Dot Glow by name.
- Connect.
- Write the 11-byte command, with response.
- Check the write result. Success means the command was accepted.
- Disconnect.
The Dot Glow completes the on or flashing sequence on its own, so there is no need to stay connected.
Device behavior and errors
| Situation | Behavior |
|---|---|
| Connected, no valid command received | The device disconnects after 20 seconds |
| After a valid command | You may stay connected and send more commands. The device disconnects 300 seconds after the last command |
| Wrong PIN, or Auth Level is Encrypted | The write fails with ATT error Write Not Permitted (0x03) and the device disconnects immediately |
| Mode is not 0, 1 or 2 | The write fails with Write Not Permitted (0x03). The connection stays open |
| Brightness, duration, period or duty cycle out of range | The value is adjusted to the nearest limit and the write succeeds |
| New command while one is running | The new command replaces the running one. Off cancels any sequence in progress |
Protecting battery life
The LED and the Bluetooth connection are the Dot Glow’s two largest power consumers. Careless use can significantly shorten the device’s life.
- Keep connections short. Connect, write, confirm and disconnect. An open connection keeps the radio active and stops the device advertising.
- Keep LED sequences short. Use the shortest duration that meets your need, and send an Off command when the indication is no longer needed.
- Prefer flashing over steady on. At the same brightness and duration, flashing with a 50% duty cycle uses roughly half the energy of steady on.
- Use the lowest brightness that works. 30% to 50% is clearly visible indoors and uses far less energy than 100%.