-
Notifications
You must be signed in to change notification settings - Fork 3
VSM Watch User Guide
-
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 |