r/esp32projects

▲ 1.1k r/esp32projects+5 crossposts

Built a PS4-controlled RC lawn mower using an ESP32 — here’s how it works

So I’ve been building a remote-controlled lawn mower using an ESP32 and a PS4 controller, and I’m pretty happy with how the software has come together. Wanted to share the details for anyone doing something similar.
The hardware:
• ESP32 as the brain
• Two Cytron 13A MD13S DC motor drivers for the tank-style drive tracks
• Three relays — an arm relay, a mower motor relay, and a turbo relay
• PS4 DualShock controller connected wirelessly via Bluepad32
How the controls work:
The unit drives in tank mode. You can toggle between dual-stick (each stick controls one track independently) and single-stick (left stick Y = throttle, left stick X = steering mix) by pressing the PS button. The controller LED changes colour to show which mode you’re in — blue for dual stick, green for single stick.
The mower blade has a safety start sequence. When you press R1, an arm relay fires first and holds for 500ms, then the motor relay latches on and both stay high together. Press R1 again and both drop simultaneously. This gives a deliberate two-stage interlock before the blade spins up.
There’s also a turbo relay on Triangle that flashes the controller LED white while active.
The D-pad works as a secondary driving option. The speed ceiling is set by how hard you squeeze L2 — the harder you’ve squeezed it, the faster the D-pad will drive. L1 resets that speed back to zero. Clever for creep mode.
The analog sticks use a gentle S-curve so the low end is slow and precise, and it ramps up more aggressively toward full deflection.
On disconnect, everything shuts down immediately — motors stop, all relays drop. No runaway mower.
The PS4 LED tells you everything at a glance:
• Solid blue = dual stick mode
• Solid green = single stick mode
• Flashing red/blue or red/green = mower motor relay is latched on
• Flashing white = turbo active (white takes priority)
Why Bluepad32 over the PS4Controller library?
Bluepad32 pairs by just holding the PS button — no sixaxispairer tool needed. It also gives you proper analog trigger values, a cleaner API, and it’s actively maintained. Highly recommend it for any ESP32 gamepad project.
Happy to share code if anyone’s interested.

u/shanebou24 — 5 days ago
▲ 1.5k r/esp32projects+3 crossposts

32x8 LED Matrix for the whole tall display. The ship has a magnet embedded in the part that slides inside the track. 2 hall-effect sensors, one on each end of that track to get the full range (that was pretty much dictated by the width of the matrix).

More on the project: I'm trying to make more little projects like this one, having one bigger puzzle-box in mind called Space Cadet. So at least for the interesting parts I'll post on my youtube channel when they are ready.

The line between self-promotion and genuine sharing is very thin, so take it as you like, but here's the (hopefully reproducible) build video: https://www.youtube.com/watch?v=EnAbbKRL5Cc

u/iuliuscurt — 8 days ago
▲ 145 r/esp32projects+2 crossposts

Astronomy Micro Station

Astronomy Micro Station for LILYGO T-Display S3 Pro

A standalone astronomy display for the LILYGO T-Display S3 Pro (ESP32-S3).
Tracks the sun, moon, and light conditions — sunrise, sunset, golden hour, blue hour, twilight phases, moon phase and illumination — across four touch-navigated screens. Data fetched from ipgeolocation.io and cached locally for offline use.

https://github.com/sfrechette/astro-micro-station

u/sfrechette — 2 days ago
▲ 563 r/esp32projects+2 crossposts

Work in progress! I was inspired by numerous #Minecraft inspired IRL compass and the fact i could not buy it was the driving force to develop one.

The needle animation works fine; it is the first step in order to make the final product.

I built it from ground up (Custom LED matrix, 3d printed housing), if anyone needs more details on the hardware or anything related to the project feel free to comment and ask away.

P.S. It is still a prototype so it's a little a little janky and the custom PCB is held by some tape.

u/Own-Zombie-1503 — 8 days ago
▲ 121 r/esp32projects+1 crossposts

I turned a $60 espresso machine into a self-hosted web app with an ESP32

three weeks ago id never soldered anything. now i have a Tru espresso machine that holds boiler temp at ±0.5°C, hosts its own web UI at frank.local, and switches between brew and steam modes from my phone.

i call him Frank (Frankenstein) because his guts are everywhere and he's held together by hope.

what's inside:

- ESP32 running a custom PID control loop

- K-type thermocouple + MAX31855 amp clamped to the boiler

- 40A SSR replacing the original bimetal thermostat (which was swinging ±15°C around target)

- SSD1306 OLED with a custom startup animation (Frank opens his eyes, blinks, then a "FRANK IS AWAKENING" loading bar)

- ESPAsyncWebServer hosting a control panel at frank.local

- separate PID tunings for brew (gentle, accurate) vs steam (aggressive, recovers fast)

biggest gotcha: the original control board kept overriding my SSR until i traced the circuit and realized the board was the upstream controller. tapped mains directly, let the ESP32 take full control of the heater, and now the original board just handles the pump and front buttons.

questions for the community:

- any tips for tuning steam mode PID on a low-thermal-mass thermoblock? recovery is faster now but still slower than i'd like

- thinking about adding a TRIAC dimmer for pressure profiling next, has anyone done this on a vibratory pump?

happy to share the firmware if anyone wants to do something similar.
Also check out the repo! -> https://github.com/mufferio/esp32-espresso-mod

u/Mooferman05 — 4 days ago
▲ 37 r/esp32projects+6 crossposts

Coming soon: run FastFluid on your own LED setup

Something strange is emerging from the solver.

What started as “just some colorful smoke” slowly turned into a deep dive into numerical instability, fluid dynamics, pressure projection, divergence control and the weird art of balancing equations exactly at the edge of total chaos.

Every swirl on screen is real simulated motion.
No keyframes. No prebaked animation.
Just velocity fields, advection, pressure solves and controlled chaos.

And sometimes uncontrolled chaos.

Coming soon:

A highly stylized real-time fluid simulation system built from scratch — designed for LED visuals, generative motion and beautiful mathematical instability.

P.S. Unmute for a nice soundtrack.

P.P.S. I asked my AI crew for a little write up, what I actually did in the last weeks. Here is what they came up with, entirely based on real events:

He originally just wanted to make “some colorful smoke-like fluid motion” for LED visuals.
How hard could it possibly be?

A few days later he found himself at 6 AM still staring at several hundred megabytes of solver array dumps, trying to understand why a single velocity cell near the boundary had suddenly decided to turn the entire simulation into pixel salad.

He was naive enough to even start investigating it, and autistic enough to actually follow the problem all the way down to the point where he truly understood why the solver kept exploding.

At first everything was innocent.
A grid.
Some arrays.
A little dye.
A bit of motion.

Then came the moment he realized:
A fluid simulation is not animation at all.

It is controlled numerical instability.
Suddenly he had to learn, in depth, about:

  • divergence
  • pressure projection
  • semi-Lagrangian advection
  • Gauss-Seidel relaxation
  • incompressibility
  • timestep stability
  • floating point precision
  • why “stable fluids” are not actually stable if you keep injecting energy into the system

Very quickly he learned: if you simply move velocity through the grid, everything explodes.
So he learned projection.
Pressure fields.
Divergence removal.
And for the first time the simulation actually started looking like fluid.
First Eureka moment.

Then he implemented vorticity confinement.
And suddenly the fluid had character.
Swirls. Energy. Motion. That organic “life” inside the flowfield.

For about 30 seconds.
Then everything exploded again.

That was the next lesson: Numerical solvers rarely fail instantly.
They accumulate error slowly. Invisibly. Frame by frame.
One tiny divergence error survives projection.
Advection transports it.
Vorticity confinement amplifies it.
Pressure correction overcompensates.
Energy starts feeding back into itself.
And ten seconds later the entire simulation just explodes.

So he started building debugging tools:

  • velocity maps
  • divergence visualizers
  • pressure displays
  • vorticity heatmaps
  • energy monitors
  • instability detectors
  • statistical entropy spike detection

Not because it looked cool.
Because without them you are completely blind.

At some point he finally understood why real fluid solvers become so insanely complicated.
Because every new feature quietly destabilizes three other systems.

More swirl?
 → unstable curl amplification.
Less dissipation?
 → energy accumulation.
Larger timestep?
 → projection can’t converge fast enough.
Too few solver iterations?
 → divergence survives.
Too many iterations?
 → performance dies.
Float32 precision?
 → tiny drift accumulates forever.

And still, there were these magical moments.
Like when the three emitters interacted for the first time and suddenly formed these huge rotating structures entirely on their own. No animation. No keyframes. Just equations interacting with equations.

Or the moment he realized:
The most beautiful fluid motion exists exactly at the edge of instability.
Too stable = dead.
Too unstable = explosion.

The sweet spot in between?
That’s the actual solver.

And eventually you stop feeling like you are programming graphics.

You are dancing with differential equations.

youtube.com
u/StefanPetrick — 5 days ago
▲ 93 r/esp32projects+1 crossposts

Made a esp32 desk pet as a gift for a friend.

It has a humidity sensor, temp sensor (dht22) a light sensor, a small speaker, and a touch module. powered by the usbc.

The cat sleeps when its dark, yawns when coming back to awake, purrs when touched. is thirsty when its hot and shivering when its too cold.

It also has a long press timer, that essentially makes it work as a work timer where it starts buzzing in about 22 mins asking to be pet. (get up and take a break).

Ive never been good at electrical stuff even in college but I really loveee working with esp32 now. I learnt so many things from reading pin out diagrams to soldering to diffrent ways these components talk to each other !

Im gonna make more stuff, i really love this new hobby.

The full thing is mounted and soldered on a prefboard in a watch box with pins because I really couldnt get around to learning 3d printing before their birthday lol.

Anyways here is the github repo and Its made in rust,
https://github.com/Joshuajrodrigues/esp-pet

u/stfuandkissmyturtle — 4 days ago
▲ 59 r/esp32projects+3 crossposts

I got tired of dealing with Indian Customs asking more than twice of what I already paid for a Beeline Moto2, and can’t afford to buy another one at the prices its available at these days (which is unreasonable for an Indian market IMO, where you can get a RE Tripper Pod for 5000 INR and get 60% of the functionality, or buy an old phone & permanently mount it to your bike for a MUCH better experience)

There are a few people trying to do something similar for an Indian market but none of them seem to be open source or have shown any signs commercial availability anytime soon.

So, I decided to get an ESP32S3 with a circular screen - total cost close to 3000, and designed an end to end system that relays navigation info while keeping the form factor EXTREMELY small (so it doesn’t look out of place on a bike, and can be made to look like a part of the bike with 3D Printing, which a phone mount will never be able to achieve)

I’m still struggling with navigation via OpenStreetMap since Google Maps wants money for everything and I’ll need even more money to build an actual iOS app since Apple would want a developer certificate to publish apps… Can anyone help with either of these next steps ?

[OC]

u/utterly_lazy — 10 days ago
▲ 17 r/esp32projects+1 crossposts

Advice needed. Any reason this couldn’t flash Bruce Firmware?

Freenove makes a version of the CYD and I think it looks really cool but the first thing I want to do with it is flash Bruce on it. Any reason I’d have trouble with that or is there anything different I might have to do differently than with a “regular degular” Cheap yellow display? Advice would be greatly appreciated, still learning.

u/Melted_cheese6969 — 3 days ago
▲ 23 r/esp32projects+1 crossposts

Can I flash onto this? What would I need to do? Looking to make a marauder / deauth type thing. Please help!!

u/Luckyxx26 — 11 days ago
▲ 15 r/esp32projects+2 crossposts

This is YUMO-CYBER — my first ever electronics build. using Arduino IDE. I designed the interface and firmware myself.

Touchscreen UI, live weather, NFC read/write, and WiFi scanning.

All running on ESP32 development board with a TFT touchscreen display.

Would love to hear what you think — still learning! 🙏

🚀 FEATURES

📶 Connect to WiFi Networks
Scans and connects to nearby WiFi networks.

🌐 Remote Control via Network
Send and receive commands over WiFi.

🌤️ Live Weather Data
Displays real-time weather information.

🔔 Smart Alerts & Notifications
Alarm alerts and system notifications.

📲 NFC Communication
Tap and interact with NFC tags or devices.

🪪 NFC Card Read / Write
Read and write NFC cards and tags.

🖥️ Touchscreen TFT Display
Interactive interface with touch navigation.

🎨 Custom UI Design
A custom designed cyber-style interface.

🧠 On-Device Processing
All logic runs locally on the ESP32.

⚡ Low Power Operation
Designed for portable battery use.

🔒 Secure WiFi Communication
Encrypted network communication.

u/YUMOBUILDS — 5 days ago

Hi, what do you think of my project?

I’ve been working on a mobile app that lets me create BLE-based control panels for ESP32 devices.

Right now it supports:

toggles/buttons

PWM sliders

live sensor values

custom device cards

local BLE communication

The goal is to avoid building a new app UI for every small hardware project.

u/Dry_Engineer194 — 4 days ago
▲ 15 r/esp32projects+2 crossposts

I Built a smart cube on ESP32-S3 — round touch display, 6-axis IMU auto-rotation, RGB LED filaments, 6 smart faces. Full source on GitHub.

What is it and why I'm sharing

This is the YUMO CUBE — my third build, designed and built entirely by me from scratch. I'm sharing it because I've made the full source code open source so anyone can build their own, and I'd love feedback from the community on what to improve or add next. It's a desk gadget built around the Waveshare ESP32-S3 Touch LCD 1.46B, housed in a hand-bent brass wire sculpture I made myself. The cube has 6 faces, each running a different "smart" app on a 412×412 round capacitive touch display.

What does it do?

The QMI8658 6-axis IMU detects orientation in real time, whichever face is up becomes the active app automatically.

The 6 faces are:

live clock (NTP + IP geolocation timezone), weather station (OpenWeatherMap, refreshes every 10 min), SD card photo gallery (JPEGDEC hardware-accelerated), joke fetcher (Official Joke API), tilt controlled mini game, and a personal workout timer. Four flexible RGB LED filaments run on the rear face, individually addressable and synced to the active app.

Hardware: No custom PCB , the Waveshare ESP32-S3 board is all-in-one with the display, touch, and IMU already on board. The only external wiring is the RGB LED filaments connected to pins 12 and 13, and a LiPo battery connected to the board's dedicated battery pins. That's it very approachable to replicate.

Stack: LVGL 9.2.2 on FreeRTOS, built with PlatformIO. All UI layouts and screens were designed by me in SquareLine Studio and exported directly into the project. Core 0 handles heavy tasks; Core 1 is dedicated to 60fps LVGL rendering. 16MB Flash with PSRAM support, custom DMA buffer padding. WiFiManager captive portal on first boot , no hardcoded credentials. Power latching cuts battery completely after 3-second button hold; IMU wake-on-motion brings it back.

The engineering challenge: Getting LVGL 9 to run stutter-free on a round display while simultaneously polling the IMU, fetching API data, and driving addressable LEDs across both cores was the core puzzle. Memory was tight — PSRAM fallbacks and careful DMA buffer alignment were essential. The round display boundary for the physics mini-game also needed a custom collision approach since LVGL doesn't handle circular constraints natively.

Source code: https://github.com/yumobuilds/yumo-smart-cube

Parts: Waveshare ESP32-S3 Touch LCD 1.46B/ 1.5mm brass rods/ flexible LED filament/ 3.7V 1200mAh LiPo/ MicroSD card.

Libraries: LVGL 9.2.2 · ArduinoJson 7/ WiFiManager/ JPEGDEC/ SensorLib.

Happy to answer questions. What would you add to the cube?

u/YUMOBUILDS — 5 days ago
▲ 2 r/esp32projects+1 crossposts

IR remote as input device

hey, can i reverse it by simply connecting the output pins of a cheap ir remote to esp32 to convert the remote into a low cost imput device for esp32. as i not want the problem the ir haves that it not works from all the angles.

reddit.com
u/One-Long7446 — 4 days ago
▲ 34 r/esp32projects+4 crossposts

👾Now control MicroCast from your browser!

✅ Web UI - microcast.online

✨ What's New:

🔌 Web Serial Bridge — connect via USB and control the device without flashing the firmware

🌐 Full-featured Web UI — feed, profile, posts, likes, and comments in pixel style

🔔 Browser Notifications — notifications about new posts even with the tab minimized

⚡️ Pixel Sci-Fi UI — same style as on the device: cyan, yellow, green glow

🔥Update via OTA (Settings → Check Updates), M5Launcher, or M5Burner!

----------------------------------------------------

Github: https://github.com/digital-farms/MicroCast

u/KotovMp3 — 11 days ago
▲ 45 r/esp32projects+2 crossposts

I was working on an ESP project and needed something simple:

When someone connects to WiFi → open a page automatically (like in hotels).

But every time I tried to do it, it turned into:

- weird DNS stuff

- lots of code

- examples that were too complicated

So I made a small library that just does this part.

You keep your normal WebServer, and just add:

portal.begin(server);

That’s it.

Now when a phone connects to your WiFi, the page opens automatically.

It works on ESP32 and ESP8266, and you can choose where to redirect (like "/home").

No frameworks, no WiFi setup magic — just plug it into your project.

Repo:

https://github.com/OrkaLxrd/TinyPortal

If anyone has ideas how to improve it — I’m open 🙂

u/Agitated-Repeat4533 — 11 days ago
▲ 16 r/esp32projects+1 crossposts

I built Pixel Pets, an open-source virtual pet family for M5Stack hardware.

https://preview.redd.it/ryo0gqturyyg1.jpg?width=4032&format=pjpg&auto=webp&s=465c615b68b64a144d9853a89252b546cddd389f

It started as a father-and-son maker project and turned into a small family of pets:

- Muffin: CoreS3 + Module-LLM, with offline voice interaction

- Visu: CoreS3 without the LLM module

- Goo-Goo: Core2 version

- Pip: StickC PLUS2 companion that can send treats/gestures via ESP-NOW

The pets have moods, needs, mini-games, sounds, touch/button/IMU reactions, weather/moon awareness and ESP-NOW friendships.

The idea was to make something playful for kids, but still inspectable and hackable for adults.

No cloud account, no tracking, no subscription.

GitHub:

https://github.com/marceld23/Pixel-Pets

Project page:

https://marceld23.github.io/Pixel-Pets/

I’d love feedback from other M5Stack users. Especially curious what hardware variant people would actually build first.

Which variant would you build first: Core2, CoreS3 or StickC companion?

reddit.com
u/KatastrophalKlang — 11 days ago
▲ 1 r/esp32projects+1 crossposts

A standalone, private communication node that doesn't need the internet. Connect to its local Wi-Fi and chat anonymously with anyone nearby.

"The Vault" is a dedicated hardware messaging device based on the ESP32 architecture. It creates a localized "digital safe zone" where users can communicate without leaving any trace on the global web. No apps, no cloud, no tracking.

reddit.com
u/Gero1987 — 9 days ago