This document describes the Bluetooth Low Energy Memfault Diagnostic GATT Service (MDS).

Overview

This service can be used for forwarding diagnostic data collected by firmware through a BLE gateway. The service is designed such that the gateway can be agnostic to the data being forwarded.

Memfault Diagnostic Service (MDS)

GATT Service

Characteristics

WebBluetooth client

We've implemented a reference client in WebBluetooth. Any device which implements the MDS profile can be connected and the WebBluetooth client will forward diagnostic data published.

Notes

Length requirement

If length exceeds negotiated MTU size, it is assumed that client has implemented support for long attribute reads. (iOS & Android both support this). If long attribute reads are not supported for some reason, an MTU needs to be negotiated which exceeds the length of the Project Key and Device Identifier.

Future characteristic updates

If additional characteristics are ever added to the service, they will be appended to the table to minimize impact for clients who have not (correctly) implemented the "Service Changed" characteristic in the Generic Attribute Profile Service.

Restricting access

For production applications and enhanced security and privacy, it is recommended the memfault_mds_access_enabled() be implemented. See function comments here for more details. When implemented, diagnostic data will only be published if the connection is bonded and the link is encrypted.

Development and version guarantees

This GATT service is currently under development and subject to updates and enhancements in the future with no current guarantees for backward compatibility. Client implementations should read the MDS Supported Features Characteristic and only attempt to use the service as it is currently defined if the value is 0x00.