PulseSensor on the Waveshare ESP32-S3-RLCD-4.2
PulseSensor on the Waveshare ESP32-S3-RLCD-4.2
Try it now: plug the board into USB, click Install, and connect three wires — then watch your own heartbeat draw itself across a crisp 400 × 300 screen, live. No app, no WiFi, no coding, and no backlight to wash out in daylight.
It's called LiveCyberDeck — a pocket cyberdeck built around a screen you can actually read in the sun.
Your heartbeat, live on the reflective screen — a moving wave, your beats per minute, and a heart that blinks with every beat.
A fun, educational biofeedback demo — not a medical device, and not for medical use.
What's a Reflective LCD?
The Waveshare ESP32-S3-RLCD-4.2 is a tiny computer (an ESP32-S3) with a 4.2″ reflective screen — the kind that uses the light already in the room instead of a glowing backlight, like an e-reader. The difference you feel right away: it's sharpest in bright sunlight (right where phone and laptop screens wash out), it's easy on the eyes — clean, inky black with no backlight glare — and with no backlight to power, it runs and runs on a small battery. It looks like e-paper, but it refreshes about 30 times a second, so your heartbeat moves smoothly and live.
Light, low-power, and readable in full sun, it's our hands-down favorite for outdoor and field work — and a genuine relief for anyone whose eyes get tired from backlit LED screens.
Honest note: we don't work for Waveshare, and we don't earn a cent if you buy one. We just love this little screen — the speed, the portability, and that full-sunlight clarity.
Flash It From Your Browser
LiveCyberDeck 1.0.3 · 2026-06-15Plug the Waveshare board into USB-C with a data cable. Use Chrome, Edge, or Brave on a desktop or laptop — phones and tablets can't do browser-flashing yet.
-
Put the board in flashing mode. Hold the
BOOTbutton, tapRSTwhile still holdingBOOT, then let go ofBOOT. (This little dance is needed once each time you flash.) - Click Install above, then pick the board's USB port when your browser asks.
- Watch it go. It erases, loads, and reboots straight into the dashboard — no IDE, no drivers, no command line.
That's the whole setup. Really.
What You'll See
Rest the PulseSensor gently on a fingertip or earlobe, hold still, and the screen comes alive:
An actual LiveCyberDeck screenshot. The wavy line is your pulse, the big number is your heart rate (BPM), and the heart ♥ blinks on every beat.
-
A living waveform. Your heartbeat draws itself across the screen, with little circles popping on each beat and a dashed
TRIGGERline marking where a beat counts. -
Lock-on, step by step. The status reads
SIGNAL SEARCHwhile it finds your pulse, then flips toQUALIFIED BEAT— with a strength meter that fills up like signal bars. - Two big numbers. Beats per minute (BPM) and the gap between beats (IBI), each with a little trend line (a sparkline) so you can watch them move.
- A few friendly extras. A beating heart, plus battery, room temperature and humidity, and how long it's been running.
-
Light or dark. Tap the
KEYbutton to flip the look for the room you're in.
- the waveform has clear, even peaks that match your pulse;
- the BPM number settles down after a few good beats;
- the strength meter fills up; and
- the status flips to
QUALIFIED BEATand the heart starts blinking.
Features
Wire Your PulseSensor
Just three wires. Match them to the labels printed on the board's rear 2 × 8 header — not to the colors from any other kit.
GP1 socket.| PulseSensor Wire | Waveshare Rear Header |
|---|---|
| Red — power | 3V3 |
| Black — ground | GND |
| Purple — signal |
GP1 / GPIO1 / ADC1_CH0
|
3V3, not VBUS. The board reads your pulse on GPIO1, so the purple signal wire goes to the lower-row GP1 socket. Powering from VBUS can flatten the waveform.PulseSensor Playground Tie-Ins
Curious what's under the hood? Every number on the screen comes straight from the open-source PulseSensor Playground library — the very same engine inside the CYD build.
| What you see on screen | Playground call behind it |
|---|---|
| Live waveform | getLatestSample() |
| Beat event / blinking heart | sawStartOfBeat() |
| Filled beat circle (inside a beat) | isInsideBeat() |
| BPM number + sparkline | getBeatsPerMinute() |
| IBI number + sparkline | getInterBeatIntervalMs() |
| Signal-strength meter | getPulseAmplitude() |
Dashed TRIGGER line |
setThreshold(550) |
Quick Troubleshooting
| Problem | Fix |
|---|---|
| Install button does nothing | Use Chrome, Edge, or Brave on a desktop or laptop. Phones and tablets can't browser-flash yet. |
| No port appears, or "failed to connect" | Do the flashing-mode step first: hold BOOT, tap RST, release BOOT. Then click Install and pick the port. Use a real data USB-C cable, plugged straight into the computer. |
| Screen stays blank | Double-check it's the Waveshare ESP32-S3-RLCD-4.2 — this firmware is made for that exact board. |
| Flat or jumpy waveform | Check the wires: signal on GP1, red on 3V3, black on GND. Don't power from VBUS. |
| BPM stays 0 | Hold the sensor with gentle, steady pressure and give it a few beats. An earlobe is often steadier than a fingertip. |
| Screen's hard to read | Tap KEY to switch between light and dark. |
Battery or temp shows --
|
Those are optional: battery needs a Li-ion cell, and temp/humidity needs the onboard sensor. The dashboard runs fine without them. |
Why Call It a CyberDeck?
A cyberdeck is maker slang for a home-built, go-anywhere little computer — rugged, personal, and a bit cyberpunk. The word comes from William Gibson's 1984 novel Neuromancer, where hackers jacked into cyberspace with one. Real-world builders make them from single-board computers, clicky keyboards, low-power screens, and exposed sensor pins for field work. LiveCyberDeck is a pocket-sized cyberdeck with one job: show your heartbeat, anywhere — even in the noon sun.
PulseSensor CyberDeck Matrix
A cyberdeck is whatever board you build it on. These are the PulseSensor CyberDecks so far — same heartbeat engine, different screens:
| CyberDeck | PulseSensor CyberDeck (CYD) | PulseSensor RLCD — LiveCyberDeck |
|---|---|---|
| Board | ESP32-2432S028 "Cheap Yellow Display" | Waveshare ESP32-S3-RLCD-4.2 |
| Screen | 320 × 240 color touchscreen (backlit) | 400 × 300 reflective (no backlight) |
| Best for | Indoors, color & touch | Daylight, outdoors, eye comfort |
| Extras | Touch, speaker beep, rear LED | Battery %, temperature & humidity, sparklines |
| Power pin | IO21 |
3V3 |
| Ground pin | GND |
GND |
| Signal pin | IO35 |
GP1 / GPIO1
|
| Flash | Browser (ESP Web Tools) | Browser (ESP Web Tools) |
Advanced Notes
The full pinout. LiveCyberDeck targets the Waveshare ESP32-S3-RLCD-4.2: ESP32-S3, 16 MB flash, 8 MB PSRAM, and an ST7305 400 × 300 reflective LCD.
PulseSensor signal GPIO1 (ADC1_CH0, rear-header GP1)
Display SCK GPIO11
Display MOSI GPIO12
Display DC GPIO5
Display CS GPIO40
Display RST GPIO41
KEY button GPIO18 (light/dark toggle)
BOOT button GPIO0
I2C SDA / SCL GPIO13 / GPIO14 (SHTC3 @ 0x70)
Battery sense ADC1_CH3 (GPIO4)
PulseSensor Playground expects 10-bit samples, so the firmware calls analogReadResolution(10) at startup. The beat threshold (the TRIGGER line) starts at setThreshold(550).
Get the Source / Get a Sensor
The Source Code
LiveCyberDeck is a free, open-source project for the Waveshare RLCD board — firmware, browser flasher, and wiring docs included.
github.com/WorldFamousElectronics/esp32-s3-RLCD-4.2
MIT licensed — fork it, remix it, build something cool.
Need a PulseSensor?
The PulseSensor Kit comes with a stabilizer ring, color-coded cable, ear clip, finger strap, and insulation dots — everything for the three-wire hookup above.
The Waveshare board is sold separately by Waveshare and the usual electronics shops.
That's it — three wires, one click, and your own heartbeat is on the screen. Go give it a try. ♥
Made by World Famous Electronics. Free and open-source (MIT). An educational biofeedback demo — not a medical device. Heartbeats in your project, lickety-split. ♥