iDVM–510 Bluetooth-LE Description

Document Version: 1.1.1
Date: September 18, 2016

The iDVM–510 multimeter communicates using Bluetooth-LE. This document contains the details about the BT-LE characteristics and values used for accessing the meter and transferring data between the meter and another BT-LE device.

This document reflects changes made in version 1.1 (Build 22) of the iDVM firmware, released in September 2016. This version may require some changes in client software, since some elements of the main “Measurement” characteristic (1000EEF5-0A12-8B1D-4ACC-E552A12EDF15) have changed. See notes below about this and other changes.

Changes from Previous Versions

Connecting to the iDVM–510

Immediately after power on, the iDVM–510 will advertise at a fast rate (20ms interval) for 60s. If no connection is made in 60s, the meter will switch to a slow advertising rate (1285ms interval) and continue advertising indefinitely. Advertising is indicated by a small Bluetooth symbol near the upper-right corner of the meter LCD. Pressing the red Bluetooth button on the meter will re-start advertising, once again at the fast rate.

The advertising time can be changed by writing a new value to the “Connection Timeout” characteristic. This value is the total number of seconds that the meter will advertise, including both fast and slow intervals. A value of 0 (the default) means advertise indefinitely, and the minimum non-zero value is 30.

Only one client connection can be made to the meter at one time. After a client disconnects, the meter will re-start the advertising process.

The meter includes in its advertising packet a short device name of “iDVM–510” and the 128-bit UUID for its main Measurement Service (1000EEE0-0A12-8B1D-4ACC-E552A12EDF15).

Device Information Service

Service UUID: 180A

This is a standard BT-LE Device Information Service. It presents general information about the meter as a Bluetooth-LE device. These characteristics can be accessed using BT-standard 16-bit UUIDs.

iDVM Measurement Service

Service UUID: 1000EEE0-0A12-8B1D-4ACC-E552A12EDF15

The Measurement Service presents characteristics for accessing the iDVM–510’s multimeter and datalogging features, and for reading and writing various settings.

All Measurement Service characteristic UUIDs are 128-bit and are of the form:

1000XXXX-0A12-8B1D-4ACC-E552A12EDF15

where the XXXX values are replaced by a 4-byte sub-UUID specific to each characteristic. For example, the Read Timer Period characteristic has a sub-UUID of EEE1, and so its full 128-bit UUID is 1000EEE1-0A12-8B1D-4ACC-E552A12EDF15. You need to use this full 128-bit UUID to access the characteristic from a client device.

Read Timer Period

UUID: 1000EEE1-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 1-byte unsigned int

The Read Timer Period value determines how fast the iDVM–510 takes samples. The value written to this characteristic is an index into a table of allowed values:

The default value is 1, or 3 samples/sec. Any value written to this characteristic is not saved on power-off.

UTC Time

UUID: 1000EEE2-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 4-byte signed int

This characteristic is used to transmit a UTC time to the meter so that it can timestamp any subsequent datalogging operations. The value is a 32-bit signed integer that represents the number of milliseconds since 00:00:00 UTC on January 1, 1970.

This value is not retained after power-off, and the long-term accuracy of the internal timer of the iDVM–510 is not high, so this characteristic should be re-written occasionally by a client to maintain the validity of datalog timestamps.

Meter Mode

UUID: 1000EEE3-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/N
Value: 1-byte unsigned int

This characteristic holds a 1-byte value that indicates the current measurement mode of the meter. You can notify on this characteristic to be informed of mode changes. The current values are:

Meter Request

UUID: 1000EEE4-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W/N
Value: 18 bytes hex

Internal-use: used for debugging UART communication between DMM and CPU.

Measurement

UUID: 1000EEE5-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/N
Value: 7–8 bytes hex

This is the characteristic used to report measurements taken by the meter in all modes. Notifying on this characteristic will allow the client to receive and report all measurements as they are taken.

For the iDVM–510 the measurement value is prefixed by a single 0x72 byte, followed by 6 or 7 bytes of measurement data. The format is shown below:

Byte B1 is the raw meter-mode value, before any parsing is done. The values in this byte therefore differ from the Meter Mode Characteristic, and are shown below:

The individual bits of the Flags byte (B2) indicate various states of the meter. The meanings of these bits have changed with recent hardware and firmware. Client programs need to check the “Hardware Revision” and “Firmware Revision” characteristics in the Device Information Service before parsing this byte.

For meters with “Hardware Revision” of “1.1” or higher and “Firmware Revision” of “1.1 (22)” or higher (latest values), the meaning of the Flags bit values are:

For all other values of “Hardware Revision” and “Firmware Revision”, the legacy values are:

Note that client apps that want to parse AC/DC mode from all meters, regardless of hardware and firmware version, should simply look at b1 of the Flags byte and interpret a 1 as AC mode and a 0 as DC mode.

For bytes B5-B6, there are a few special BCD values to indicate non-numeric measurements:

Recording Parameters

UUID: 1000EEE6-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 5 bytes hex

This characteristic is used to specify parameters for datalogging on the meter (triggered by pressing “REC” button on meter). The value is 5 bytes:

These values are saved in the meter’s flash memory so that they will be retained when the meter is powered off.

The allowable sample period values are shown below. These are approximate values; the actual recording rate will vary from session to session but should be close to the specified rates:

Recording Status

UUID: 1000EEE7-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/N
Value: 8 bytes hex, as of FW Build 21 (previously 4 bytes)

This characteristic reports the current datalogging status of the meter. The value consists of 1 byte for the recording/not-recording state, 3 bytes for the number of samples recorded so far, and (as of firmware v1.1 Build 21) 4 bytes for the elapsed recording time (in ms):

Recording Token

UUID: 1000EEE8-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/N
Value: 20 bytes hex (max)

The recording token is information written to the meter’s flash memory when datalogging starts. It contains information that a client can use to determine the time and parameters for the last datalogging session.

If the meter had been supplied with a UTC value (via characteristic 1000EEE2-0A12-8B1D-4ACC-E552A12EDF15) before datalogging, the nonce value in the token will be a UTC timestamp at the start of recording. Otherwise it will be a 2-byte random number.

Recording Access Point

UUID: 1000EEE9-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W/N
Value: 20 bytes hex (max)

This characteristic is used to download the datalog samples. The protocol for doing so will be covered in a separate document.

Meter Response

UUID: 1000EEEA-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W/N
Value: 18 bytes hex (max)

Internal-use: used for debugging UART communication between DMM and CPU.

Transmit Power

UUID: 1000EEEB-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 1-byte signed integer

This characteristic can be used to read or set the TX-Power level of the meter’s Bluetooth radio. It has 4 allowed values:

Any value written to this characteristic is not saved after power-off; the value reverts to the default of 0dBm on power-on.

The iDVM–510 also supports the standard Tx-Power characteristic (2A07), but that characteristic is read-only. This characteristic can be used to change the transmit power.

Connection Timeout

UUID: 1000EEEF-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 2-byte unsigned integer

The time in seconds to advertise and wait for a client to connect, including an initial fast advertising period (20ms interval) of 60s and a secondary slow advertising period (1285ms). The default value for this characteristic is 0, which means indefinite advertising.

The minimum non-zero value for this characteristic is 30. This value is written to flash and will be saved after power-off.

Device Name

UUID: 1000EEF0-0A12-8B1D-4ACC-E552A12EDF15
Properties: R/W
Value: 20 bytes ASCII (max)

Writing to this characteristic allows a client to set the GAP device name, which is usually displayed in most bluetooth-device lists in client apps. This value is saved to flash and will be saved after power-off.

Note that many mobile devices and apps don’t update this value immediately; either a timeout must pass, or the user has to turn Bluetooth off and back on, to update device name values.

Battery Service

Service UUID: 180F

This is a standard Bluetooth-LE Battery Service.

Battery Level

UUID: 2A19
Properties: R/N
Value: 1-byte unsigned int

This characteristic reports the state of the meter’s 9V battery; the value is a percentage with a max of 100.