VSM Watch User Guide - ArrowElectronics/Vital-Signs-Monitoring GitHub Wiki
-
Introduction
β1.1 Purpose -
Hardware
β2.1 Watch Connections
ββ2.1.1 Boot mode Buttons
ββ2.1.2 USB Connections
ββ2.1.3 Nordic BLE Dongle Setup -
Quick Start Guide
β3.1 Updating Firmware
β3.2 Connecting to the Watch
ββ3.2.1 Connecting using USB (Cradle)
ββ3.2.2 Connecting using BLE
β3.3 Basic Wavetool View Controls
β3.4 Multiview Application
ββ3.4.1 Running Use-cases for the Multiview
ββ3.4.2 Multiview Usecases
βββ3.4.2.1 Usecase1 - ADPD High Performance
βββ3.4.2.2 Usecase2 - ADPD + EDA
βββ3.4.2.3 Usecase3 - ADPD + ECG
βββ3.4.2.4 Usecase4 - PPG + ECG (High Performance)
βββ3.4.2.5 Usecase5 - ADPD Multislot
ββ3.4.3 Configuring Use-cases for the Multiview
ββ3.4.4 Multiview Controls
βββ3.4.4.1 DCB Access
βββ3.4.4.2 Low Touch Configuration
β3.5 AWT Extension Modules
β3.6 Logging Data in Local Files
β3.7 NAND Flash Logging
ββ3.7.1 Logging in NAND Flash
ββ3.7.2 Retrieving data from NAND Flash -
FAQs
β4.1 What happens when a connection fails?
β4.2 Can I stream data when NAND flash logging is enabled?
β4.3 What are the restrictions of streaming data using BLE?
β4.4 How do I change the Filter settings in JSON file?
β4.5 How to flash firmware when firmware update gives the warning βTarget not foundβ?
The ADI VSM Study Watch is a product designed to showcase the capabilities of ADIβs sensors for measuring vital signs.
Figure 1: ADI VSM Watch Framework
Purpose
The purpose of this document is to explain the steps on how to connect and run the ADI VSM Study Watch to analyze VSM application data using ADIβs Wavetool Software.
Please refer to the to the ADI VSM Study Watch datasheet for detailed hardware information.
The watch comes with a charging cradle β with micro USB charging capability
Figure 2: ADI VSM Study Watch with charging cradle
Figure 3: Navigate and Action Buttons
There are two micro USB ports in the cradle.
- Data micro USB port for charging and connecting to the Wavetool
- External electrode micro USB port for connecting to the external electrode
Figure 3A: USB Connection
To connect the watch in the Wavetool software using BLE the user needs to program the nRF52840 Dongle. Please follow the steps below to program the BLE dongle to be discovered as a COM port in Wavetool.
-
Install nRfConnect from the given link - https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop - Download the latest version for Windows.
-
Install the Programmer and open the Programmer
Figure 4: nRF Connect App
- Plug in the BLE dongle and put the device in Boot mode by pressing the black button as shown in the figure. A LED will start blinking red.
Figure 5: Nordic BLE Dongle
- Select the dongle via the nRF Connect Programmer
Figure 6: Connecting the BLE Dongle in Boot mode
-
Add HEX file from the path β <WAVETOOL_INSTALL_FOLDER> \etc\BLEDongle\ADIBLEDongle_S140.hex
-
Write the firmware to the dongle. The messages as shown in the figure below will indicate the completion of the firmware update.
Figure 7: Firmware Update Completion
- Unplug and re-plug the dongle.
The below sections will detail the steps involved in connecting the Wavetool to the watch and successfully running the VSM applications.
Figure 8: Wavetool Software Main Window
If this is your first time using the watch, then please update the firmware. Otherwise you can skip this section and proceed to connecting with the Watch.
BY DOWNLOADING, REPRODUCING, DISTRIBUTING OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS SET FORTH IN THE PROVIDED SOURCE CODE SOFTWARE LICENSE AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS AND CONDITIONS, YOU MUST NOT DOWNLOAD, INSTALL OR OTHERWISE USE THE SOFTWARE DOWNLOADING, REPRODUCING, DISTRIBUTING OR OTHERWISE USING THE SOFTWARE CONSTITUTES ACCEPTANCE OF THIS LICENSE. THE SOFTWARE MAY NOT BE USED EXCEPT AS EXPRESSLY AUTHORIZED UNDER THIS LICENSE.
Please follow the steps below to update the firmware for the watch.
- Please remove all the USB Serial Devices and the BLE Dongle since Wavetool automatically selects the first device COM port for updating the firmware
- Attach the watch to the charging cradle.
- Connect the watch to the PC through USB.
- Open Wavetool Software.
- Click on the FW Update.
- Select βPerseusβ.
- Hold down both the βNavigationβ and βActionβ buttons for 5 seconds and confirm the bootloader icon in display.
- Click on βContinueβ to finish the Firmware update.
Note: In case after hitting continue, wavetool selects incorrect com port to upload the firmware, remove the dongle connected to your computer and try again.
Figure 9: Firmware Update Window in Wavetool
- Attach the watch to the charging cradle.
- Connect the watch to the PC through via USB(Recommended not to use USB hub). NOTE: Make sure your watch is not be in bootloader mode before connecting. In Bootloader mode, you will see an UP arrow on watch.
- Open the device manager and check the appropriate COM Port for the connected USB.(ex. It will show NRF Connect USB CDC ACM (COM6)).
- Open Wavetool Software.
- Click on Connect, then select Cable option.
- Select the appropriate COM port of the watch and connect.You can refer the device manager to find the watch COM port.
Figure 10: USB Cable connection to the Watch
- On successful connection the following message will be displayed after that WT will display the supported applications.
Figure 11 : Device Connected
Figure 12 : Application Selection
- Connect the BLE dongle to the PC.
- Update the BLE firmware as explained in Section 2.1.3 (If needed).
- Open Wavetool Software.
- Click Connect, then select BLE option.
- Select the appropriate COM port and click on βScanβ.
Figure 13 : BLE Connection
- Select the BLE device from the list shown and double click to connect. MAC ID of the watch could be read from Settings- > MAC id sub page. On plugging in dongle to WT & scanning, MAC ID of the watch could be checked against the scan list shown in WT.
- On successful connection βWatch Foundβ message will be displayed after that WT displays the supported applications.
β
Basic View Controls
The controls of the view are as explained below:
- Play: Start streaming data from the sensors
- Stop: Stop streaming data from the sensors and clear the plots
- Pause: Pause the streaming and show the current data on the plots
- Settings: Opens the configuration settings to set the configuration for the use case.
- UDP: Send the graph data through the UDP
- Nandflash logging: Logs the selected data streams into the NAND Flash
- Log: Save the data from the sensors into a JSON and CSV file in local PC
- DCB (Device Configuration Block) Access: The nRF52840 MCU has a NOR flash which enables user to save and load the config in the local flash. This utility will enable users to write, read, erase the config in the NOR flash
- Low Touch (LT) Logging: This allows user to configure the LT configuration via nandflash and DCB. LT config and tuning view is explained separately in the upcoming sections
-
Filter: This allows user to set an appropriate filter for the raw PPG data stream.
β a. Type: The filter type is to choose the type of the filter like BandPass (BP), Moving Average or Low Pass and is limited to a set of filters defined in the β<WAVETOOL_INSTALL_FOLDER >\etc\FilterConfig\FilterType.jsonβ file.
β Tap Count: The number of taps for the filter type chosen - AGC (Automatic Gain Control): This option is to enable or disable the AGC for the LED which is selected in the slot selection
- SQI (Signal Quality Index): The SQI feature is supported for PPG signal frequencies ranging from 25-100Hz. The SQI score is a floating-point value between 0(poor signal quality) and 1(excellent quality).
This is the application which will enable users to analyse a combination of VSM applications in a single view
- Open Wavetool
- Update the firmware for the watch (If needed)
- Connect using BLE or USB
- Open Multiview under the Applications box.
- Select the necessary use case to be analysed
- Configure their settings such as Filter type, Slot selection, AGC Enable, etc.
- Press βPlayβ to analyse the data streams
Figure 15: Multiview
Note: Deselecting the applications from application selection window before starting stream will remove the graph for that sensor and make more room for the sensor of interest
β Usecase1 used to analyse the ADPD at high data rate. The default settings are ADPD β 500Hz, ADXL β 50Hz and Temperature β 1Hz
Figure 16: Multiview ADPD + ADXL
β Usecase2 used to analyse the EDA along with the ADPD application. The default settings are ADPD β 100Hz, ADXL β 50Hz, EDA β 30HZ ODR, 100Hz Excitation Frequency and Temperature β 1Hz
Figure 17 : Multiview ADPD + EDA
β Usecase3 used to analyse the ECG along with the ADPD application. The default settings are ADPD β 100Hz, ADXL β 50Hz, ECG β 250HZ and Temperature β 1Hz
Figure 18 : Multiview ADPD + ECG
β Usecase4 used to analyse the PPG and ECG. The default settings are PPG β 50Hz, ECG β 1000HZ and Temperature β 1Hz
Figure 19 : Multiview PPG + ECG
β Usecase5 used to analyse ADPD with multi slot settings and their AGC. The default settings are ADPD β 100Hz and ADXL β 50Hz
The slots selection and AGC settings can be changed in the slot selection window
Figure 20 : Slot selection
Figure 21 : Multiview ADPD multislot
The Multiview will allow users to run a combination of VSM apps as defined in the "<WAVETOOL_INSTALL_FOLDER >\etc\MultiviewProperty.json"
Itβs advisable to use the use case with the default views supported and it depends on the applications to be analysed.
To modify the existing use case
β 1. Modify the JSON entry with
ββ a. βFreqβ: Sampling rate for each of these applications
These are the use cases supported in the Multiview and its default frequency values. These values will be loaded when we are switching between the use cases.
Figure 22: Multiview Use-case Definition File
This utility will enable users to write, read, erase the config in the NOR flash
Figure 23 : DCB Access
Read: Read DCB config from NOR flash
Write: Write DCB to config into NOR flash (existing DCFG)
Erase: Erase DCB contents in the NOR flash
Once a DCB is written, it will be persistent between watch resets, until it is explicitly deleted. The application would work with DCB configuration, if available (default firmware configuration is overridden).
If the particular use case DCB is written to the NOR flash, then the application works with the configuration irrespective of the use case. Write the corresponding DCB configuration for the corresponding use case.
Alert messages for DCB present based on the applications supported by the particular use case are provided as below and it is represented in the application selection also.
Figure 24 : DCB in Multiview
Low touch (LT) allows for a few unique features when using the watch. It allows the watch to be preconfigured to automatically log specific data streams if the watch is on the userβs wrist (based on a capacitance measurement) β when it is off the wrist, the device will stop logging and then go to a lower power state. This mode is used to start/stop logging without the use of button/tool
Figure 25 : Low Touch Tuning Selection
When the Low Touch Configuration is clicked the above alert message is displayed to enter into the Low Touch Tuning window in order to tune the wrist detect on/off for the low touch application.
The wrist detection is based on capacitance change that is detected by the touch sensor, at the bottom part of watch. There would a change in capacitance, when watch is placed on wrist from where it was kept initially β another surface like air or a table. This difference in capacitance is not a fixed value and varies between person to person and even from one watch to another. To improve the accuracy for wrist detection and thus to improve the LT application, the latter works with a default firmware lcfg, which is reconfigurable. LowTouch tuning window of WT serves this purpose.
By clicking βYesβ it will direct to the LowTouch tuning window as below
Figure 26 : Low Touch Tuning FW Lcfg
Follow the steps to write the capacitance values to the Default/Modified FW Lcfg.
Figure 27 : Low Touch Tuning Wrist detect DCB
For wrist detect DCB, we have options to read and delete the wrist detect capacitance values which is already written in the DCB.
If the wrist detect DCB is already present when the LT view is opened, then the warning will be shown as βWRIST_DETECT_DCB is presentβ.
After the tuning is done, LowTouch Config window is displayed as below
Figure 28 : Low Touch Config
LowTouch Config window is to be used to write the LT configuration file β either the DCB file or the NAND config file onto the watch by clicking the Enable button. The corresponding message will be displayed as below
Figure 29 : Low Touch Config Success
Deletion of the config file is also done using the Disable button, if LT logging is not started.
After writing the config file to the watch, the LT application gets launched and it starts/stops logging depending on the wrist ON/OFF. The corresponding messages will be displayed in the AWT.
Figure 30 : Low touch started
Figure 31 : Low touch stopped
Once LT config file is written into the Watch from LT Logging View of the Multiview, the user can disconnect from the WT, to do further tests. On connecting a Watch to AWT, it detects if LT application is active. User should accept to switch Watch to normal mode to continue using the AWT. The LT config files (both DCB and nandflash) get deleted when the Watch switches to the normal mode.
Figure 32 : Low touch mode
Switching to normal mode from LT mode fails, if LT logging is in progress. Watch needs to be taken off the wrist, to stop LT logging. If even after removing the Watch, LT logging continues, (this can happen if LT tuning is not proper), then user can disable LT app from the Watch display. From LOW_TOUCH_LOGGING page in Watch display and within that the LT APP sub-page, press action button to disable the LT Application. After this connect Watch to AWT and accept to switch to Normal mode. If wrist detect DCB is present,then user will be asked whether to delete this DCB or not.
After switching back to the normal mode, the below message will appear and the connection will be established
Figure 33 : Watch normal mode
The configuration of settings will be based on the use-case selected. A separate config for ADPD, ADXL, ECG, etc will be provided as shown in the figure below. Users can
- Load a saved config file
- Save the current config in a new file
- Apply the modified config to the system
Figure 34: Multi-view Configuration
Wavetool allows user to transfer graph data (applications selected in the use case) via UDP to an external application for post processing.
Graph Data Sources | |
---|---|
ADPD4100 | 0XA1 |
ADXL | 0XB0 |
PPG | 0XC0 |
RESERVED | 0XC1 |
ECG | 0XC2 |
EDA | 0XC3 |
TEMP | 0XC4 |
0 | 1-2 | 3-4 | 5-8 | 9-20 | 21 | 22-23 | 24 -β¦ | |
---|---|---|---|---|---|---|---|---|
Source | Length | Seq No | Timestamp | Slot, Info | Int Status Flag | Reserved | Data (double β 8bytes each) | Interrupt Status |
Source | 0xB0 β ADPD4x00 data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
Timestamp | Current time in milliseconds |
Slot Info | Slot Info |
[0] - D1: 1- enabled, 0 -disabled | |
[1] - D2: 1- enabled, 0 -disabled | |
[2] - S1: 1- enabled, 0 -disabled | |
[3] - S2: 1- enabled, 0 -disabled | |
[4] - L1: 1- enabled, 0 -disabled | |
[5] - L2: 1- enabled, 0 -disabled | |
Interrupt Status Flag | Interrupt Status Flag |
[4] | |
0 - Interrupt Data Not available | |
1 - Interrupt Data Available | |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat |
Interrupt Status data | All Interrupt data is in 8-byte doubles format. Where the double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. |
0 | 1-2 | 3-4 | 5 | 6-8 | 9-10 | 11 -... |
---|---|---|---|---|---|---|
Source | Length | Seq No | No of Sample | Reserved (Header Info) | Reserved (Info) | Data (double β 8bytes each) |
Source | 0xB0 β ADXL data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
No of Sample | Number of samples in the packet |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat. β Data format : [TS, X, Y, Z] |
0 | 1-2 | 3-4 | 5 | 6-8 | 9-10 | 11 -... |
---|---|---|---|---|---|---|
Source | Length | Seq No | No of Sample | Reserved (Header Info) | Reserved (Info) | Data (double β 8bytes each) |
Source | 0xC0 β PPG data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
No of Sample | Number of samples in the packet |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat. β Data format : [TS, ADPD, X, Y, Z, HR] |
0 | 1-2 | 3-4 | 5 | 6-8 | 9 | 10 | 11 | 12-13 | 14 -... |
---|---|---|---|---|---|---|---|---|---|
Source | Length | Seq No | No of Sample | Reserved (Header Info) | Sensor Type | Algo/Electrode Type | Lead Status | Reserved | Data (double β 8bytes each) |
Source | 0xC2 β ECG data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
No of Sample | Number of samples in the packet |
Sensor Type | Sensor Info [3:0] 0 - AD7689 1 - AD5940 2 - AD4000 3 - None Reserved [7:4] |
Algo/Electrode Type | Algo Info [3:0] 0 - None 1 - Sport 2 - Monitor Electrode Info [7:4] 0 - None 1 - Case/Watch 2 - Lateral/External |
Lead Status | Lead Info [1:0] 0 - OFF 1 - ON |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat. β Data format : [TS, ECG, HR] |
0 | 1-2 | 3-4 | 5 | 6-8 | 9 - 10 | 11 -... |
---|---|---|---|---|---|---|
Source | Length | Seq No | No of Sample | Reserved (Header Info) | Reserved (Info) | Data (double β 8bytes each) |
Source | 0xC4 β Temperature data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
No of Sample | Number of samples in the packet |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat. β Data format : [TS, Temp1, Temp2] |
0 | 1-2 | 3-4 | 5 | 6-8 | 9 - 10 | 11 -... |
---|---|---|---|---|---|---|
Source | Length | Seq No | No of Sample | Reserved (Header Info) | Reserved (Info) | Data (double β 8bytes each) |
Source | 0xC3 β EDA data packets |
Length | Total UDP Packet Length |
Seq No | Sequence number for packet count from 0 to 0xFFFF, rolls over |
No of Sample | Number of samples in the packet |
Impedance /Admittance | Sensor Info [3:0] 0 - Impedance 1 - Admittance |
Data (Timestamp& Data) | All data is in 8-byte doubles format. Dependent on Slot Info. The double type complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic. See: DoubleDataFormat. β Data format : [TS, Module, Phase] |
The Graph data is packetized and sent via the port settings as specified in the Settings window.
Figure 35: UDP Settings for Data Transfer
In the Multiview the UDP transfer is enabled as shown in figure below.
Figure 36: Multiview UDP enable
The AWT External Modules which contains the parser to extract the data from the Wavetool to different applications such as:
- Python
- LabView
- Matlab
These parser modules and examples to get the data out from Wavetool can be found in https://github.com/analogdevicesinc/ApplicationsWaveTool.
Raw data can be logged in local files which are stored in JSON or CSV file format.
Figure 37 : Open Log
After the log stops the click to open log hyperlink showed in the bottom of the view. By clicking the hyperlink opens the location where the log stored.
The log folder can be opened from the open logs folder in settings window logging tab.
Figure 38: Logging Settings
The log folder contains the m2m2, JSON and CSV files
Figure 39: Log Folder
Figure 40: Log Files
The m2m2 file is the log file that was retrieved from the device
The CSV and JSON folders contain equivalent files generated from the m2m2 file
The CSV folder contains the logging data and summary
Figure 41: CSV Folder
ADPDAppStream_Combined_CSV log file is shown below
Figure 42: CSV Data
JSON folder contains the JSON file which is converted from the m2m2 file
Figure 43 : JSON Folder
Figure 44: JSON Data
When a user wants to log data the watch they can enable the NAND flash logging.
While the NAND flash logging, the user can go to any other application and stream and stop the data, that doesnβt affect the NAND flash logging. NAND flash logging stops when the user disables the logging.
Logging of data into the Nand flash can be enabled by modifying the settings in Wavetool.
- Connect to the watch using BLE
- Open Wavetool Main window
- Open Settings -> Log -> Logging
Figure 45: Logging Settings in Main window
- Select what will be logged and enter a use ID which will be stored in summary file for reference
- Turn logging on in the respective view.
Figure 46: NAND Flash Logging Settings
β Assuming data is logged into the NAND flash in the watch, follow the below steps to retrieve the data from the NAND flash
- Connect the Perseus watch to the Wavetool via USB
- Open Wavetool Software Main window
- Go to Settings -> Log -> Download Logs
- Select the relevant Log file to download
- Click on βGet Logβ to save the log to the PC
- Click on βOpen Logsβ to open the folder where the logs are stored on the PC.
- The m2m2 file is the log file that was retrieved from the firmware.
- The CSV and JSON files folders contain equivalent files generated from the M2M2 file in the Wavetool.
- Click on βFS Clearβ to clear the logs on the NAND Flash
- Click on βFS Resetββ to reset filesystem. Note that this will clear all logs on the NAND Flash
Figure 47: Download Log from NAND Flash
β If the connection fails, the following alert will be displayed.
Figure 33 : Connection Failed
β If BLE doesnβt respond the following alert will be displayed.
Figure 34 : BLE Connection Failure
β Yes. We can stream the data when NAND flash logging is enabled.
β The maximum rate that can be streamed over BLE is 6.5KB/sec. Any configuration to run more that that rate will result in noisy signal and packet loss.
β To change an existing filter property, edit the β<WAVETOOL_INSTALL_FOLDER >\etc\FilterConfig\FilterType.jsonβ file.
β βFilterNameβ: Some specific name for the filter to be listed in the dropdown of the Wavetool FilterType options
β βPassTypeβ: Type of filter such as MOVING_AVG, DELAY, BPF, LPF, BIQUAD. Currently these are the only filter types supported in the Wavetool.
β βLowFrequency_3dbβ: This is the Low frequency cut off of the LPF and BPF filters
β βHighFrequency_3dbβ: This is the High frequency cut off of the BPF filter
ββ 1. Select the watch COM port. Right click and select properties as like in the below image
Figure 50 : Watch COM port properties
ββ 2. Select Driver and click Update Driver
Figure 51 : Update driver
ββ 3. Select Browse my computer for driver software
Figure 52 : Browse driver software
ββ 4. Select let me pick from a list of available drivers on my computer
Figure 53 : Pick the available driver on computer
ββ 5. Deselect Show compatible hardware and select Nordic Semiconductor ASA, then from the Model select nRF Connect USB CDC ACM and click Next to update the driver
Figure 54 : Install the driver
ββ 6. Do the firmware update again
Term | Description |
---|---|
FW | Firmware |
BLE | Bluetooth Low Energy |
PPG | Photoplethysmography |
ECG | Electrocardiography |
SPO2 | Saturated Peripheral Oxygen |
ODR | Output Data Rate |
MCU | Micro Controller Unit |
AGC | Automatic Gain Control |
HRM | Heart Rate Measurement |
MIPS | Million Instructions Per Second |
LT | Low Touch Application |