MAXREFDES117#: Heart-Rate and Pulse-Oximetry Monitor

作者:Maxim Integrated

Wearable devices hold the potential to transform health and medical monitoring. Heart rate, specifically, provides tremendous insight into heart function and health, during both activity and rest. Innovation and development of both optical semiconductors and lower-power integrated circuits makes the transition to wearables possible. Until now, only large organizations, with deep development budgets, could deliver such advanced products.

The Maxim MAXREFDES117# delivers the promise of wearable devices to all developers. This unique design measures both heart rate and pulse oximetry. The MAXREFDES117# features the MAX30102 with integrated red and IR LEDs for heart-rate and SpO2 detection. This configuration ideally detects heart rate and pulse ox on a person’s fingertip, earlobe, or other fleshy extremity. The small board size of 12.7 mm x 12.7 mm (0.5 in x 0.5 in) is ideal for wearable applications and may be stitched into fabric for immediate prototyping. Firmware is available for both Arduino and mbed platforms, enabling users to develop with virtually any platform. The user needs to provide a 2 V to 5.5 V supply capable of providing the 1.5 mA (typical at a 3.3 V input), perfect for virtually any battery or Arduino and mbed form-factor board.

The MAXREFDES117# design utilizes the heart-rate/SpO2 sensor (MAX30102), an efficient, low-power step-down converter (MAX1921), and an accurate level translator (MAX14595). The entire design typically operates at less than 5.5 mW when using with the example firmware. A block diagram of the system is shown in Figure 1.

Block diagram of Maxim MAXREFDES117# reference design

Figure 1: MAXREFDES117# reference design block diagram.

Note: The controller board is powered separately.

The MAXREFDES117# reference design is a PPG-based heart-rate and SpO2 monitor subsystem. The circuit utilizes the MAX30102 heart-rate/SpO2 sensor with integrated red and IR LEDs. The step-down converter MAX1921 converts the 2 V to 5.5 V supply input and generates the 1.8 V rail for the heart-rate sensor. The MAX14595 level translator provides an interface between the heart-rate/SpO2 sensor and the controller board, which generally uses a different logic level.

Detailed description of firmware

The MAXREFDES117# can be used with virtually any microcontroller that has an I2C interface. The Arduino and mbed example firmware have been tested on the following development platforms:

mbed:

Arduino:

Users may read sampled data, calculated heart rate and SpO2 through a terminal program, allowing analysis on excel or any third-party software. The simple process flow is shown in Figure 2.

Diagram of Maxim MAXREFDES117# firmware flowchart

 

Figure 2: The MAXREFDES117# firmware flowchart.

The complete source code, including the heart-rate/SpO2 algorithm, is provided to accelerate development. Code documentation can be found in the corresponding firmware platform files (Arduino Platform or mbed Platform).

Heart-rate accuracy varies depending on the chosen platform. The tested mbed platforms give more accurate heart-rate/SpO2 calculations than the tested Arduino platforms because the mbed platform controllers have more SRAM than the Arduino platform controllers. For the example firmware, mbed platforms store 5 seconds of samples collected at 100 sps, while the Arduino platforms store 4 seconds of samples collected at 25 sps.

The SpO2 calculation is based on the equation shown below. However, determining the constants (C1, C2, and C3) requires a comprehensive clinical study of pulse-oximetry data from a statistically significant population set using this hardware. Such a clinical study is beyond scope of this design. Therefore, the calculated SpO2 value may have an error.

SpO2 = C1 × AverageRatio2 + C2 × AverageRation + C3

Where AverageRatio is the average ratio of IR and red LED readings. C1, C2, and C3 are constants.

MAXREFDES117# mbed Quick Start Guide

Required equipment:

  • Windows PC with a USB port
  • MAXREFDES117# board
  • 5 pieces of wires to connect the MAXREFDES117# to the controller board
  • One of the three supported controller boards previously listed (Maxim Integrated MAX32600MBED#, NXP FRDM-KL25Z, or NXP FRDM-K64F)
  • One micro USB cable (for MAX32600MBED# and FRDM-K64F)
  • One mini USB cable (for FRDM-KL25Z)

Procedure:

The reference design is fully assembled and tested. Follow the steps below to verify board operation:

  1. Create an account on http://developer.mbed.org to use their online compiler.
  2. Import the demo program from https://developer.mbed.org/teams/Maxim-Integrated/code/RD117_MBED/
  3. Connect the MAXREFDES117 to the controller board (see appropriate table entries for the specific controller boards):
MAX32600MBED# port MAXREFDES117 port
P26 SDL SDA
P27 SCL SCL
P20 SCK RX INT
3.3V VIN
GND GND
FRDM-K64F port MAXREFDES117 port
E25 SDA
E24 SCL
D1 INT
P3V3 VIN
GND GND
FRDM-KL25Z port MAXREFDES117 port
E0 SDA
E1 SCL
D1 INT
3.3V VIN
GND GND

Table 1: MAXREFDES117# connections to mbed controller boards

  1. Connect the controller board to the PC with a USB cable.
  2. In the MBED compiler, click the button at the upper right hand corner to select the appropriate controller board.
  3. Compile and download the resulting binary to your mbed platform.
  4. Open Hyperterminal or a similar terminal program on the PC. Find the appropriate COM port and configure the connection for 115200, 8-N-1 with no flow control.
  5. Put a finger on top of the U1 on the MAXREFDES117#, contact with an earlobe is also sufficient. Constant pressure yields the best result.
  6. Press any key on the terminal program and the system will start the conversion.
  7. From left to right, the first two columns show the data for the red and the IR LED receiver. The third and fifth columns show the calculated heart rate and SpO2 values. The fourth and sixth columns show the validities of the heart rate and SpO2 calculations.

MAXREFDES117# Arduino Quick Start Guide

Required equipment:

  • Windows PC with a USB port
  • MAXREFDES117# board
  • 5 cables with grabber clips on both ends.
  • One of the three supported controller boards (Adafruit Flora, Lilypad USB, or Arduino UNO board)
  • One micro USB cable (for Lilypad or Flora)
  • One A to B USB cable (for Arduino UNO) Procedure

Procedure:

The reference design is fully assembled and tested. Follow the steps below to verify board operation:

  1. If Arduino IDE is not installed on the PC follow the getting started guide to install the Arduino IDE on the PC.
  2. If Adafruit Flora board is selected as the controller board:
    1. Follow the Adafruit Windows Driver installation guide to install the driver.
    2. Follow the "Adafruit Arduino IDE setup guide" to install the Arduino IDE and support files for Adafruit Flora board.
  3. Download the source code RD117_ARDUINO.zip file and unzip it in a desired location.
  4. Double click the RD117_ARDUINO.ino to open the project in Arduino IDE.
  5. Connect the MAXREFDES117 to the controller board (see appropriate table entries for the specific controller boards):
Flora port MAXREFDES117 port
SDA SDA
SCL SCL
D10 INT
3.3V VIN
GND GND
Lilypad USB port MAXREFDES117 port
2 SDA
3 SCL
10 INT
+ VIN
- GND
Arduino UNO port MAXREFDES117 port
SDA SDA
SCL SCL
10 INT
3.3V VIN
GND GND

Table 2: MAXREFDES117# connections to Arduino controller boards

  1. Connect the controller board to the PC with a USB cable.
  2. In the Arduino IDE, click on the Tools menu and make sure the appropriate board is selected.
  3. Select the proper communication port in the Tools menu.
  4. Press the Upload menu item in the Sketch menu to upload the firmware to the board.
  5. Open Hyperterminal or a similar terminal program on the PC. Find the appropriate COM port and configure the connection for 115200, 8-N-1 with no flow control.
  6. Put a finger on top of the U1 on the MAXREFDES117#, contact with an earlobe is also sufficient. Constant pressure yields the best result.
  7. Press any key on the terminal program and the system will start the conversion.

Example output of the Maxim MAXREFDES117#

Figure 3:  Example output of the MAXREFDES117#

  1. From left to right, the first two columns show the data for red and IR LED receiver. Third and fifth columns show the calculated heart rate and SpO2 values. The fourth and sixth columns show the validities of the heart rate and SpO2 calculations.

Lab Measurements

Equipment used:

  • MAX32600MBED#
  • Adafruit Flora
  • Adafruit BlueFruit
  • Polar H7 Bluetooth Smart Heart-Rate Sensor
  • Android tablet

Figure 4 and Figure 5 show how the MAXREFDES117 calculated heart rate compared to the Polar H7 chest strap. The data in Figure 4 were taken while the person was sitting still for 20 minutes. The data in Figure 5 were taken while the person was walking at a normal speed for 20 minutes.

Graph of Maxim mbed + MAXREFDES117# heart heart-rate data

Figure 4: For sedentary test, over 99% of the mbed + MAXREFDES117# heart heart-rate data are less than 5 beats/min delta from the Polar H7 chest strap.

Graph of Arduino + Maxim MAXREFDES117# heart- rate data

Figure 5: For moving test, over 92% of the Arduino + MAXREFDES117# heart- rate data are less than 10 beats/min delta from the Polar H7 chest strap.

 

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Maxim Integrated

Article contributed by Maxim Integrated.