

The Heart Sensor (MAXREFDES117), manufactured by Analog Devices, is a compact and highly accurate device designed to monitor and measure heart rate and rhythm. It utilizes optical technology to detect blood flow changes in the body, making it ideal for non-invasive heart rate monitoring. This sensor is widely used in fitness tracking devices, wearable health monitors, and medical applications to assess cardiovascular health.








The following table outlines the key technical details of the MAXREFDES117 heart sensor:
| Parameter | Value |
|---|---|
| Manufacturer | Analog Devices |
| Part ID | MAXREFDES117 |
| Operating Voltage | 1.8V to 5.5V |
| Operating Current | 5.5mA (typical) |
| Communication Interface | I2C |
| Sensor Type | Optical (PPG - Photoplethysmography) |
| Wavelengths | Green (537nm), Red (660nm), IR (880nm) |
| Sampling Rate | Configurable (up to 100Hz) |
| Dimensions | 12.7mm x 12.7mm |
| Operating Temperature | -40°C to +85°C |
The MAXREFDES117 heart sensor has the following pin configuration:
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (1.8V to 5.5V) |
| GND | 2 | Ground connection |
| SDA | 3 | I2C data line |
| SCL | 4 | I2C clock line |
| INT | 5 | Interrupt output (optional, active low) |
0x57. Ensure no address conflicts if multiple I2C devices are used.Below is an example of how to interface the MAXREFDES117 heart sensor with an Arduino UNO:
#include <Wire.h> // Include the I2C library
#define SENSOR_I2C_ADDRESS 0x57 // Default I2C address of MAXREFDES117
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Check if the sensor is connected
Wire.beginTransmission(SENSOR_I2C_ADDRESS);
if (Wire.endTransmission() == 0) {
Serial.println("Heart sensor detected!");
} else {
Serial.println("Heart sensor not detected. Check connections.");
while (1); // Halt execution if sensor is not found
}
}
void loop() {
// Request data from the sensor
Wire.beginTransmission(SENSOR_I2C_ADDRESS);
Wire.write(0x00); // Example register address to read data
Wire.endTransmission();
Wire.requestFrom(SENSOR_I2C_ADDRESS, 2); // Request 2 bytes of data
if (Wire.available() == 2) {
uint8_t msb = Wire.read(); // Most significant byte
uint8_t lsb = Wire.read(); // Least significant byte
int heartRate = (msb << 8) | lsb; // Combine bytes into a single value
Serial.print("Heart Rate: ");
Serial.println(heartRate);
} else {
Serial.println("Failed to read data from sensor.");
}
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected
0x57) is used.Inaccurate Readings
No Data Output
Ambient Light Interference
Can the MAXREFDES117 be used with 3.3V microcontrollers?
What is the maximum sampling rate of the sensor?
Is the sensor suitable for medical-grade applications?
Can the sensor measure SpO2 (blood oxygen levels)?
By following this documentation, users can effectively integrate the MAXREFDES117 heart sensor into their projects and troubleshoot common issues.