element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products & Partners
    Products & Partners
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Smart Home & Healthcare Challenge
  • Challenges & Projects
  • Design Challenges
  • Smart Home & Healthcare Challenge
  • More
  • Cancel
Smart Home & Healthcare Challenge
Forum VitalSense – Part 7 : Building a Cross-Platform Qt6 Desktop Application for the MAX30208EVSYS Temperature Sensor
  • News
  • Projects
  • Forum
  • Details
  • Leaderboard
  • Files
  • Members
  • DC
  • More
  • Cancel
  • New
Join Smart Home & Healthcare Challenge to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 0 replies
  • Subscribers 18 subscribers
  • Views 46 views
  • Users 0 members are here
Related

VitalSense – Part 7 : Building a Cross-Platform Qt6 Desktop Application for the MAX30208EVSYS Temperature Sensor

jelektro
jelektro 2 days ago

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

1. Motivation & Background

When working with high-accuracy temperature sensors such as the Maxim Integrated MAX30208 (delivering clinical-grade accuracy), developers frequently encounter a major bottleneck: vendor lock-in and restrictive software ecosystems.

Official evaluation software provided by manufacturers is typically restricted exclusively to Windows, leaving Linux workstations, developer laptops running Ubuntu, and edge single-board computers (SBCs) like Raspberry Pi unsupported. Furthermore, proprietary tools often lack flexibility for multi-sensor scaling, real-time CSV streaming, or automated remote storage management.

image

To overcome these hardware and OS constraints, MAX30208 EVSYS Desktop Monitor was engineered from scratch using modern C++ and Qt6. It provides engineers and researchers with a responsive, multi-threaded telemetry station that runs seamlessly across Windows, Linux, and embedded SBC environments.

image

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

2. Key Capabilities & Features

  • Cross-Platform Portability: Built with CMake and Qt6, ensuring native execution on Windows, Linux, and ARM-based single-board computers.

  • Plug & Play Auto-Detection: Automatically scans available system serial ports and connects to the evaluation kit using dynamic device descriptor matching, removing the need for manual COM port configuration.

  • Non-Blocking Multi-Threaded Architecture: Utilizes a dedicated background thread (SerialWorker + QThread) combined with thread-safe Qt signals and slots, ensuring the user interface remains completely smooth and responsive during heavy polling or file I/O operations.

  • Real-Time Multi-Channel Plotting (QCustomPlot): Dynamically renders high-refresh-rate temperature curves for all sensors discovered on the I²C bus, complete with zoom, pan, and live color-coded legends.

  • Interactive Vertical Thermometer Widget: Features an intuitive, gradient-styled vertical progress bar acting as a visual thermometer alongside the main plot for quick status checks.

  • Hardware Register Map Viewer: Provides a custom QAbstractTableModel interface to inspect, read (r), and write (w) internal device registers (0x00 to 0xFF) on the fly.

  • Remote MicroSD Card Management: Enables users to check onboard storage status (f), download internal log files (g1), and clear storage memory (g2) directly from the desktop GUI.

  • Streamlined Data Logging: Automatically captures real-time telemetry into structured CSV files (.csv) for post-processing and compliance reporting.

3. System Architecture & Tech Stack

  • Language: C++17

  • Framework: Qt6 (Core, GUI, Widgets, SerialPort)

  • Charting Library: QCustomPlot

  • Build System: CMake

image

UI Tabs & Functional Breakdown

1. Live Chart Tab (Main Dashboard)

The primary workspace designed for real-time telemetry observation and quick visual assessment.

  • Top Compact Info Bar: Displays the current connection status (e.g., active COM port name) and a real-time numerical readout of the primary sensor's temperature (Live Value) formatted to three decimal places.

  • Vertical Thermometer Widget: Positioned on the left side, this gradient-styled vertical progress bar acts as a visual mercury column that provides an intuitive, at-a-glance thermal indicator.

  • Multi-Channel QCustomPlot Area: Occupies the main right-hand portion of the window. It renders smooth, color-coded temperature curves for all sensors discovered on the I²C bus simultaneously. It features interactive zoom, pan, and a live legend.

image

2. Register Map Tab

An advanced hardware debugging interface providing transparent access to the internal register architecture of the MAX30208 sensors.

  • Interactive Table View (QTableView): Powered by a custom QAbstractTableModel, it displays all core device registers from address 0x00 (Status) through 0xFF (Part Identifier).

  • Detailed Mapping: Columns explicitly outline the register Address, Register Name, current Value (Hex), and a functional Description (e.g., FIFO configuration, high/low alarm thresholds, and GPIO settings).

image

3. Alarm Thresholds Tab

A dedicated control panel for configuring high and low temperature warning limits.

  • Input Controls: Allows engineers to specify precise high-temperature thresholds (e.g., default set to 37.5'C).

  • Hardware Triggering: Clicking the "Save Alarm High" button invokes background routines that automatically translate the floating-point Celsius value into 16-bit Two's complement register bytes and writes them directly to the sensor's threshold registers (0x10 and 0x11). When breached, the UI visually highlights the temperature label in warning red.

image

4. Event Log Tab

The system audit trail and diagnostic log viewer.

  • Chronological Tracking: Records significant background events, such as successful hardware initialization, device discovery counts, USB serial disconnections, auto-reconnect attempts, and critical hardware errors.

  • Timestamping: Every log entry is prefixed with an exact system timestamp (hh:mm:ss) to aid in debugging communication drops or signal integrity issues.

image

5. MicroSD Card Tab

An embedded storage management interface for the evaluation kit's onboard logging capabilities.

  • SD Status (f): Queries the storage subsystem to verify if a card is present, formatted, and operational.

  • Download Logs (g1): Remotely pulls historical data logs stored on the kit's internal card and displays the text dump directly in the scrollable preview box.

  • Clear Card (g2): Issues a hardware wipe command to flush and clear stored logs directly from the desktop software.

image

  • Sign in to reply
  • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube