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
    Products
    • 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 EdgeCare: phase 2 - setup I2C, read MAX30100 and create VI in LabView
  • News
  • Projects
  • Forum
  • Details
  • Leaderboard
  • Files
  • Members
  • 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 17 subscribers
  • Views 11 views
  • Users 0 members are here
  • esp32C6
  • spo2
  • heart rate
Related

EdgeCare: phase 2 - setup I2C, read MAX30100 and create VI in LabView

mihaita802003
mihaita802003 1 hour ago

EdgeCare will be a Multi-Sensor Metabolic & Autonomic Datalogging Wearable with LabVIEW R&D Analytics.

In this port I will explain the connection of MAX30100 to the main ESP32C6,through I2C, issues with this sensor and how the data are displayed on VI created on LabView.

First thing: ESP32C6 pinout;

Xiao ESP32c6 pinout This picture is taken from the official Xiao site: Getting Started with Seeed Studio XIAO ESP32C6 | Seeed Studio Wiki

To use the built in I2C interface, we need to connect the MAX30100 to the following pins:

I2C SDA --> GPIO22 / D4

I2C SCL --> GPIO23 / D5

From master, the data format is simple:

    char dataBuffer[80];
    snprintf(dataBuffer, sizeof(dataBuffer), "%lu,%.1f,%d,%d,%d,%u", 
             counter++, dummyTemp, (int)realHR, (int)dummyGSR, (int)dummyTau, realSpO2);

In order to cover future modifications of the data structure, I set the the MTU (Maximum Transmission Unit) to 512 on both master and client BLE:

BLEDevice::setMTU(512);

For the moment, the master sent to the client the following data:

counter --> used to count the nimber of sending jthe data;

dummy Temp --> randon value (will be replaced with the value from real sensor);

realHR --> real value of Heart Rate, from MAC30100;

dummy DSG --> randon value (will be replaced with the value from real sensor);

dummy Tau --> randon value (will be replaced with the value from real sensor);

real SpO2 --> real value of SpO2, from MAX30100.

In LabView, I create a simple panel with some indicators; some of them are only for debugging and will be eliminated in the final instrument:

VI panel

How its working until now:

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

OBS: I have an issues with my MAX30100 sensor: the pull-up rezistors for I2C communication was not present on the sensor PCB and I have to add them using the soldering iron. After that, the sensor respond correctly to the I2C scanner (for address) and in the main loop.

See you in the next post.

  • 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