esp‑pulser: ESP32‑S3 + W5500‑based heart‑rate sensor + Ethernet + display system
esp‑pulser is a firmware for ESP32‑S3 MCU that integrates MAX30102 heart‑rate sensor, W5500 Ethernet via SPI, SPI display, and DRV2605L haptic motor
1. Project Overview & Significance
The project consolidates sensor, Ethernet, user interface, feedback (vibration), networking, and firmware update in a single Rust-based embedded firmware.
It demonstrates how WIZnet W5500 can be used not just for simple network connectivity but as the backbone of a full-featured IoT device — combining sensors, data streaming, UI, network comms, and remote update.
2. Technologies / Implementation
Rust + ESP‑IDF for ESP32‑S3.
W5500 SPI-based Ethernet — automatic reconnect, TCP/UDP sockets, IP network.
MAX30102 heart-rate sensor via I2C, 25 Hz sampling + 16-sample averaging + Rust ported signal processing algorithm.
Additional components: SPI-based display for status, DRV2605L haptic driver for vibration feedback on heartbeat detection.
Networking features: UDP streaming of raw & processed data, TCP server for remote commands, OTA update via companion GUI app.
Development environment using VS Code Dev Container / Docker for reproducible build & flash, managing complex dependencies.
3. Flow / Operation
Boot → initialize peripherals (I2C, SPI, Ethernet, display, haptic)
Start Ethernet reconnection loop & IP assignment via W5500
In background task: read heart‑rate sensor periodically → sample → filter/average → compute BPM
On events / periodically:
stream data (raw & BPM) via UDP
accept remote commands via TCP
activate haptic feedback on heartbeat detection
optionally update display with status, IP, connectivity
Support OTA update via companion GUI app
4. Significance for WIZnet + Embedded Systems
Demonstrates a real-world “sensor + network + UI + feedback + update” embedded system using WIZnet W5500 on ESP32 — a useful template for IoT products.
The integration of Rust + WIZnet + peripherals ensures safety, modularity, and portability across hardware platforms.
Offers a practical, open-source reference for developing connected devices using WIZnet modules.
5. Potential Derivative Use Cases & Ideas
Smart healthcare or wearable monitoring devices (heart rate, environment, motion) with Ethernet connectivity and remote monitoring.
Remote IoT nodes for agriculture, environment, industrial monitoring with sensors + network + user interface.
Lightweight data‑streaming nodes for decentralized sensor networks, with OTA and remote management.
Educational kits / reference boards for embedded Rust + WIZnet networking + sensors + UI + networking stack.
Community‑driven DIY / open‑hardware projects combining sensors, network, user feedback, remote updates.
