Table of Contents
Part 1: System Concept and Architecture
Part 2 : Sponsored Kit Overview
Part 3 : Alternatives for Heart Rate, SpO₂, and Temperature Sensing
Part 4 : MAX30208EVSYS Evaluation System – Technical Overview & Operation
Part 5 : Reverse-Engineering the MAX30208EVSYS Communication Protocol
Part 6 : Communicating with the MAX30208EVSYS in LabVIEW
Part 7 : Building a Cross-Platform Qt6 Desktop Application for the MAX30208EVSYS Temperature Sensor
Part 8 : STM32 Pulse Oximeter & Heart Rate Monitor (MAXREFDES117 + USB CDC)
Part 9 : MAXREFDES117 – JSON Data Acquisition via USB-CDC in LabVIEW
Part 10 : Building a Real-Time Sensor Data Visualizer for MAXREFDES117 / USB CDC
Part 11 : Research Workstation System Architecture
Part 12 : Combined Pulse Oximeter & Temperature Monitoring System in LabVIEW
Part 13 : Dual-Port Biomedical Telemetry Dashboard - Integrating STM32 (MAXREFDES117) and MAX30208EVSYS in C++ and Qt
This section describes the implementation of serial communication and data parsing for retrieving sensor telemetry from an STM microcontroller. The firmware transmits structured data frames via USB-CDC using a JSON format (e.g., {"bpm": 73, "spo2": 98, "filtered_ir": 4425.22}).
-
VISA Serial Configuration: Opens and configures the virtual COM port with a baud rate of 115,200 bps, 8 data bits, 1 stop bit, and no flow control.
-
Data Stream Cleaning: Incoming raw strings from
VISA Readare processed through the Trim Whitespace function to strip out hidden carriage return and line feed characters (\r\n), ensuring stable parsing. -
String Scanning: LabVIEW extracts numerical parameters (
bpm,spo2, andfiltered_ir) to feed real-time indicators and logging modules.

Handling Status Messages and Sensor States
To prevent parsing errors (such as Error 85: Scan failed) when the sensor sends status updates instead of numeric values (e.g., when no finger is detected on the sensor, resulting in {"status": "Missing finger on the sensor"}), specific error-mitigation strategies are applied:
-
Stream Robustness: Modernizing the firmware to output standardized numeric frames (e.g., zeros) during idle or error states ensures continuous and uninterrupted data parsing in LabVIEW.
-
Alternative Conditional Routing: Using string-matching functions (
Match Pattern) allows the application to dynamically detect status strings and safely route them to user interface warning messages without crashing the main acquisition loop.
Real-Time Telemetry Visualization
The user interface leverages native LabVIEW display elements optimized for biomedical signal monitoring:
-
PPG Waveform Monitoring: The floating-point
filtered_irsignal is routed directly into a Waveform Chart, providing a continuous, scrolling historical plot of the photoplethysmogram (PPG) heart pulse wave. -
Vital Signs Indicators:
-
Heart Rate (BPM): Displayed via numeric indicators or custom gauge meters for immediate numerical feedback.
-
Blood Oxygen Saturation (SpO2): Configured with a strict numerical range scaled from 0 to 100 (
Maximum = 100) to accurately reflect standard percentage-based clinical boundaries.
-

