MDS BLE gateway script
The MDS BLE gateway is an application used as a client for the Memfault Diagnostic Service (MDS). It forwards data received on the Memfault Diagnostic Service to the Memfault`s cloud for further analysis. The destination data URI and the Memfault project key are read from the service characteristics.
The script scans for the Memfault Diagnostic Service (MDS) UUID in the advertising packets. Once it finds the MDS service UUID, it connects to the remote device and reads the MDS data. The scripts waits for the MDS notifications and forwards them to the URI read from the URI characteristics.
For more details about the Memfault, see Memfault SDK and Memfault integration for details on integration with the nRF Connect SDK.
The script source files are located in the
To install the script’s requirements, run the following command in its directory:
python3 -m pip install -r requirements.txt
This script also requires an the nRF52 Series development kit to run the connectivity firmware that is programmed automatically when running the script.
Using the script
Connect your nRF52 Series development kit to your PC.
Run the script commands in the
Your DK will be programmed with the connectivity firmware. To list the script arguments, run the following command:
python3 mds_ble_gateway.py -h
The following help information describes the script arguments available:
Memfault BLE gateway optional arguments: -h, --help show this help message and exit --snr SNR Segger chip ID --com COM COM port name. For example COM0 or /dev/ttyACM0 --erase, -e Erase target device before flashing the firmware --bond-disable Disable bonding simulation --reconnections RECONNECTIONS Number of reconnection attempts --timeout TIMEOUT, -t TIMEOUT Connection establish timeout in seconds
To use the script without any additional configuration, run the following command:
python3 mds_ble_gateway.py --snr your DK Segger chip ID --com Serial port name
python3 mds_ble_gateway.py --snr 68290047 --com /dev/ttyACM0
The script uses the following Python libraries: