ExperimentalPulseSensor Lab

Choose a project.

Four browser-based PulseSensor experiments. Pick one, connect its UNO R4 sketch, and start with the live signal.

APP SCREENSHOT
Live PPG FFT Web Serial tester waiting for USB pulse samples
01WFE source migrated

3D FFT

Turn one live PulseSensor stream into a moving 3D frequency spectrum.

  • UNO R4 target
  • 1 sensor
  • WebGL
Open the Lab build
APP SCREENSHOT
Signal Coach browser dashboard waiting for a PulseSensor stream
02Published beta

Signal Coach

See the raw wave, improve contact and motion, and unlock BPM after the signal settles.

  • UNO R4 WiFi
  • 1 sensor
  • Web Serial
Open Signal Coach
APP SCREENSHOT
Browser-based Pulse Transit Time Lab showing two synchronized PulseSensor channels
03Draft PR

Pulse Transit Time

Compare relative pulse-arrival timing from two synchronized PulseSensors.

  • UNO R4 WiFi
  • 2 sensors
  • 500 Hz
Open the two-sensor Lab
README IMAGE
Four-Channel PPG Web App Live Lab interface reference
04Draft PR

Four-Channel PPG Web App

Inspect four synchronized PPG channels in a browser workflow based on Stevens et al. (2024).

  • UNO R4 WiFi
  • 4 sensors
  • 500 Hz
Open the A0 Lab build

Hardware, provenance, and validation

Project details.

Open a project, connect its matching UNO R4 sketch, and work with the live signal.

Repository status checked August 19, 2026.

01 3D FFT WFE source migrated

Turn a live PulseSensor stream into a moving spectrum. Rotate the view, inspect harmonics, and experiment with the structure behind the waveform.

UNO R4 target · A0 · 115200 baud

  • UNO R4 target
  • 1 sensor
  • WebGL
GitHub source Private ↗

The hardened UNO R4 build is hosted directly in the Shopify Lab. WFE source migration is complete; a physical UNO R4 transport and live-spectrum pass is still required.

WorldFamousElectronics/PPGFFTGAMEENGINEPrivate · main · migrated in PR #1
02 Signal Coach Published beta

Stream one PulseSensor into Chrome. It is the main real-world test and feedback experience for Signal Core: see the raw wave, improve contact and motion, and unlock BPM only after the signal settles.

UNO R4 ready · 115200 baud

  • UNO R4 WiFi
  • 1 sensor
  • Web Serial
Background science · Dr. Doyle reading list

These papers inform quality and failure-mode requirements; the current detector is not a verbatim implementation of either paper.

GitHub source Public ↗

This Shopify-hosted one-sensor build is the current recommended Signal Coach experience. Use it with a real PulseSensor, keep the raw waveform visible, and tell us when the guidance matches—or misses—what happened.

WorldFamousElectronics/PulseSensorPlaygroundPublic · master · docs/signal-coach
03 Pulse Transit Time Draft PR

This standalone two-sensor browser lab compares relative pulse-arrival timing from two synchronized PulseSensors. It is separate from the one-sensor Signal Coach; only the Signal Core algorithm is shared. Real two-sensor validation continues.

UNO R4 draft · 250000 baud

  • UNO R4 WiFi
  • 2 sensors
  • 500 Hz
Background science · Dr. Doyle reading list

Respiration context from Dr. Doyle's list—not direct validation of this PTT method.

GitHub source Public ↗

The standalone two-sensor validation build is hosted in the Shopify Lab. PR #210 remains draft; real two-sensor physiological validation still blocks release.

WorldFamousElectronics/PulseSensorPlaygroundPublic · PR #210 · agent/dual-channel-ptt-web-lab
04 Four-Channel PPG Web App Draft PR

A four-channel Chrome Web Serial app for Arduino UNO R4 WiFi, based on Guylian Stevens, Luc Hantson, Michiel Larmuseau, Jan R. Heerman, Vincent Siau, and Pascal Verdonck, Sensors 24(12):3766 (2024), doi:10.3390/s24123766.

UNO R4 WiFi · A0–A3 · 500 Hz · 12-bit

  • UNO R4 WiFi
  • 4 sensors
  • 500 Hz
Background science · Dr. Doyle reading list

This paper is the direct source for the project’s four-sensor structure, posture protocol, and HR/RR method families.

GitHub source Private ↗

The hardened UNO R4 validation build is hosted in the Shopify Lab. Draft PR #1 remains open; isolation, connected export/reopen, four worn sensors, 20-minute stability, and physiological validation are still required.

WorldFamousElectronics/Four-Channel-PPG-Web-AppPrivate · PR #1 · agent/uno-r4-webserial

One board across the Lab

Arduino UNO R4 WiFi

This is the Lab's target controller: one familiar USB-C board with six analog inputs, 5 V logic, and enough headroom for browser-native PPG experiments.

  • A0–A5One, two, or four PulseSensor channels
  • USB-CDirect Web Serial data—no cloud relay
  • R4 statusTracked separately on every project card
One board. One Lab app at a time.

Disconnect the current Web Serial app before opening the next one. Chrome may remember permission, but independent pages cannot share the active port. App-specific sketches and rates remain in use until we build one shared Lab protocol.

Arduino board documentation

Shared foundation

PulseSensor Signal Core

Internal R&D

Signal Core is the private signal-processing work behind our Lab apps. While it is still changing, Signal Coach is the public build to use, test, and give feedback on.

Latest public test build Use Signal Coach, then tell us what happened.

Connect one PulseSensor to an Arduino UNO R4 WiFi, watch the raw waveform, and follow the placement guidance. Feedback from real sensors and real users helps us decide what belongs in Signal Core.

Public build Signal Coach · Published beta One sensor · UNO R4 WiFi · Web Serial

The underlying Signal Core source, fixtures, and development roadmap remain private while the behavior is still being evaluated. Public status will be reconsidered after real-world testing and review.

Build the Lab with us

Your project here.

Built something surprising with PulseSensor? Share a working demo, an open-source experiment, or a research remake that other advanced users can learn from.

Propose an experiment

Put your project in the Lab.

Send a short description, hardware list, source or demo link, and a screenshot. Tell us what makes the experiment useful to other PulseSensor builders.

Submit a project