PulseSensor on the Waveshare ESP32-S3-RLCD-4.2

Sunlight-Readable CyberDeck

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.

The LiveCyberDeck dashboard on a Waveshare ESP32-S3-RLCD-4.2: a live pulse waveform with a dashed TRIGGER line, QUALIFIED BEAT status with a signal-strength meter, big BPM 72 and IBI 833 panels with sparklines, and a header showing battery, temperature, humidity, and uptime.

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-15

Plug 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.

This browser can't flash over USB. Open this page in Chrome, Edge, or Brave on a desktop or laptop. USB flashing is blocked. Make sure the page is loaded over HTTPS.
  1. Put the board in flashing mode. Hold the BOOT button, tap RST while still holding BOOT, then let go of BOOT. (This little dance is needed once each time you flash.)
  2. Click Install above, then pick the board's USB port when your browser asks.
  3. 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:

LiveCyberDeck firmware screenshot: the live pulse waveform with beat circles and a dashed TRIGGER line, a QUALIFIED BEAT strength meter, big BPM (72) and IBI (833) panels with sparkline trends, and a header with a beating heart, battery, temperature, humidity, and uptime.

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 TRIGGER line marking where a beat counts.
  • Lock-on, step by step. The status reads SIGNAL SEARCH while it finds your pulse, then flips to QUALIFIED 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 KEY button to flip the look for the room you're in.
You'll know it's working when…
  • 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 BEAT and the heart starts blinking.

Features

Made for sunlight. Reads clearer the brighter it gets — right where phone and laptop screens wash out.
Easy on the eyes. Crisp, inky black with no backlight glare — a relief if LED screens give you eye strain.
All-day battery. No backlight to feed, so it sips power (and shows its own charge %).
Field-ready. Light, low-power, and sunlight-readable — our favorite for outdoor work.
Smooth and live. Looks like e-paper, but refreshes about 30× a second, so your pulse moves in real time.
BPM & IBI sparklines. Your recent beats trend across mini graphs, so you can watch them rise and fall.
Senses the room. An onboard sensor reads temperature and humidity.
Works on its own. No WiFi, no app, no IDE — it boots straight into the dashboard.

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.

Line art of the Waveshare rear 2x8 header with GP1 highlighted for the PulseSensor signal wire
The signal wire goes to the lower-row GP1 socket.
Three-wire schematic: PulseSensor red to 3V3, black to GND, signal to GPIO1 / ADC1_CH0
The whole hookup: three wires, three pins.
PulseSensor Wire Waveshare Rear Header
Red — power 3V3
Black — ground GND
Purple — signal GP1 / GPIO1 / ADC1_CH0
One thing to get right: use 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.

Get the PulseSensor Kit

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.