PPG Wrist Pulse Sensor Module
The PPG Wrist Pulse Sensor Module is a compact photoplethysmography (PPG) sensor designed for wrist, arm, or finger pulse measurement, delivering a continuous analog pulse waveform and a selectable square-wave heart-rate output compatible with common microcontroller platforms. The module operates from a 5V supply, consumes under 10mA in typical use, and exposes an XH2.54-4P interface for direct connection to Arduino and STM32 development boards, enabling straightforward integration into wearable and prototype projects.
Features
- Uses green-light PPG (PhotoPlethysmoGraphy) for stable pulse signal acquisition.
- Dual output modes: continuous analog pulse waveform and digital square-wave pulse output.
- Compatible with 5V systems and communicates via an XH2.54-4P connector for easy hookup.
- Low current consumption (<10mA) for battery-powered and wearable applications.
- Library and example code available (Arduino library “CheezPPG”) with 125Hz sampling and serial output for raw, filtered, peak, HR, and HRV data.
- This is a static detection sensor. Do not move it randomly or press it too tightly during measurement.
- This product is not a professional medical device and cannot be used as an auxiliary accessory for diagnosis and treatment.
PINOUT
Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 5VDC |
| Operating Current | <10mA |
| Analog Output | 0-3.3V |
| Digital Output | 0/3.3V |
| Module Interface | XH2.54-4P |
| Dimensions | 26mm x 26.4mm |
Applications
- Wrist or finger heart-rate monitoring for wearable prototypes and hobby projects.
- Real-time HR and HRV data collection for biofeedback and fitness experiments.
- Integration into health-adjacent prototypes, research demos, and interactive installations.
- Teaching and learning tool for embedded signal processing and PPG fundamentals.
Package Contents
- 1x PPG Wrist Pulse Sensor Module.
- 1x XH2.54-4P to 4-pin Dupont 30cm cable (for Arduino/MCU connection).
- 1x Wrist Strap.
Arduino Tutorial

Software Requirements:
- Arduino IDE >=2.3
- Library files
Sample Code:
/*
Serial output:
The baud rate is 115200
Sampling rate: 125Hz
Serial output content (ASCII):
Raw data, smooth filter data, band pass filter data, heartbeat detection data, heart rate data, HRV (SDNN) data
*/
#include "CheezPPG.h"
#define INPUT_PIN A0 // PPG Pin
#define SAMPLE_RATE 125
CheezPPG ppg(INPUT_PIN, SAMPLE_RATE);
void setup()
{
Serial.begin(115200);
ppg.setWearThreshold(80); // Set the wearing threshold. If wearing detection is not required, it can be set to -1
}
void loop()
{
if (ppg.checkSampleInterval())
{
ppg.ppgProcess();
Serial.println(
String((int)ppg.getRawPPG()) + "," + // Raw data
String((int)ppg.getAvgPPG()) + "," + // Smooth filter data
String((int)ppg.getFilterPPG()) + "," + // Bandpass filtered data
String((int)ppg.getPpgPeak()) + "," + // Heartbeat detection data
String((int)ppg.getPpgHr()) + "," + // Heart rate data
String((int)ppg.getPpgHrv()) // HRV(SDNN) data
);
}
}
You can view the experimental results through the “Serial Port Plotter” on the Arduino IDE




Reviews
There are no reviews yet.