---
title: "esp‑pulser: ESP32‑S3 + W5500‑based heart‑rate sensor + Ethernet + display system"
url: "https://maker.wiznet.io/Lihan__/projects/probers-rust-based-universal-embedded-debugging-toolkit/"
markdown_url: "https://maker.wiznet.io/Lihan__/projects/probers-rust-based-universal-embedded-debugging-toolkit/md"
type: "UCC: User Created Content"
author: "Wiktor Krokosz"
author_url: "https://github.com/krokosik/esp-pulser"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Wiktor Krokosz"
original_url: "https://github.com/krokosik/esp-pulser"
published: "2025-12-05"
language: "en"
hardware: ["Espressif ESP32"]
likes: 0
views: 517
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# 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

Original author: Wiktor Krokosz (source: https://github.com/krokosik/esp-pulser)

## Components

- **Espressif ESP32** x 1 ([docs](https://www.espressif.com/en/products/socs/esp32))

## Article

### 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. Why was Ethernet used?

Despite the ESP32‑S3 having built-in Wi‑Fi, an external Ethernet chip (W5500) was used for the following reasons:

** Ethernet is commonly used in industrial and medical environments**

- In hospitals, laboratories, and industrial settings, **wired Ethernet is the standard** communication method.

- **Wi‑Fi is prone to latency, disconnections, and security concerns**, making it unsuitable for fixed-location biomedical data acquisition systems.

- **Ethernet offers stable and low-latency communication**, ideal for real-time data transmission.

**Wi‑Fi support in Rust is complex to implement**

- Using **Wi‑Fi in Rust via ESP-IDF** requires complex configuration and is harder to debug.

- In contrast, **W5500 is an SPI-based hardware network chip**, which is **simpler to control in Rust**.

- For experimental projects using Rust, Ethernet provides **lower implementation complexity and greater stability**.

https://3d-storyge.tistory.com/26

### 2. Technologies / Implementation

#### sensor - MAX30102

![](https://maker.wiznet.io/upload/ckeditor5/634091887%5F1765181547%2Epng)

#### MCU - ESP32-S3

![](https://maker.wiznet.io/upload/ckeditor5/634091887%5F1765181855%2Epng)

Rust + ESP‑IDF for ESP32‑S3.

W5500 SPI-based Ethernet .

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.

---

Source: https://maker.wiznet.io/Lihan__/projects/probers-rust-based-universal-embedded-debugging-toolkit/
