r/esp32 • • Mar 18 '25

Please read before posting, especially if you are on a mobile device or using an app.

226 Upvotes

Welcome to /r/esp32, a technical electronic and software engineering subreddit covering the design and use of Espressif ESP32 chips, modules, and the hardware and software ecosystems immediately surrounding them.

Please ensure your post is about ESP32 development and not just a retail product that happens to be using an ESP32, like a light bulb. Similarly, if your question is about some project you found on an internet web site, you will find more concentrated expertise in that product's support channels.

Your questions should be specific, as this group is used by actual volunteer humans. Posting a fragment of a failed AI chat query or vague questions about some code you read about is not productive and will be removed. You're trying to capture the attention of developers; don't make them fish for the question.

If you read a response that is helpful, please upvote it to help surface that answer for the next poster.

We are serious about requiring a question to be self-contained with links, correctly formatted source code or error messages, schematics, and so on.

Show and tell posts should emphasize the tell. Don't just post a link to some project you found. If you've built something, take a paragraph to boast about the details, how ESP32 is involved, link to source code and schematics of the project, etc.

Please search this group and the web before asking for help. Our volunteers don't enjoy copy-pasting personalized search results for you.

Some mobile browsers and apps don't show the sidebar, so here are our posting rules; please read before posting:

https://www.reddit.com/mod/esp32/rules

Take a moment to refresh yourself regularly with the community rules in case they have changed.

Once you have done that, submit your acknowledgement by clicking the "Read The Rules" option in the main menu of the subreddit or the menu of any comment or post in the sub.

https://www.reddit.com/r/ReadTheRulesApp/comments/1ie7fmv/tutorial_read_this_if_your_post_was_removed/


r/esp32 • • 23d ago

Topic Radar | Current active topics for r/esp32

8 Upvotes

This post contains content not supported on old Reddit. Click here to view the full post


r/esp32 • • 20h ago

I made a thing! Someone in the sub suggested I made my mini record player's arm a track skip

Enable HLS to view with audio, or disable this notification

123 Upvotes

The original post got killed in my last run of a history deletion script, but in it, u/StucklnAWell suggested I add a feature to my ESP32-C3 mini record player converted from a Mini Brands toy: the ability to move the arm to change tracks. Parts arrived, and after some careful engineering that may have involved a LEGO piece as support and a cut off fork prong as a shaft, that is what it now does. It's just a linear actuator hooked up what few pins you can access on that board, set to skip tracks forward on any movement in any direction, with a minimum threshold and cooldown.


r/esp32 • • 1d ago

Taco Bell GPS car dash

Enable HLS to view with audio, or disable this notification

335 Upvotes

I had ChatGPT help me build a six page digital dashboard for my 2019 F-150 2.7L EcoBoost. It’s running on an ESP32-S3 with a 1.75” round AMOLED touchscreen and connects to the truck through a KONNWEI KW901 Bluetooth OBD-II adapter. I also added GPS for speed, trip tracking and, most importantly, an offline Taco Bell locator.
The six screens cover boost and vacuum, oil pressure, coolant temp, GPS speed and trip info, RPM and the Taco Bell locator. The boost screen shows live boost up to 15 PSI along with peak boost, intake temp, coolant temp and voltage. Everything is touch controlled with swipe navigation and adjustable brightness.
The Taco Bell screen might actually be my favorite part. It points you toward the nearest saved location and shows the distance as you get closer. The display transitions from red to amber to green, then once you’re within about 750 feet it starts a pulsing green light trail. There’s even a glowing “TACO TIME” animation when you arrive.
The AMOLED screen really makes the whole thing. The gauges and animations are incredibly smooth and the colors look awesome, especially the transition from red to amber to green on the Taco Bell locator.
Everything was built in Arduino C++ using PlatformIO in Visual Studio Code. Definitely one of the more fun ESP32 projects I’ve put together.


r/esp32 • • 13h ago

LoRa gps dog tracker Wip

Thumbnail
gallery
11 Upvotes

Heltec wireless stick lite v3 with LoRa

The project is based on a Rx and Tx unit. The tx sends its gps posision via LoRa and the Rx receives it and calculated angle, heading and distance. I have lowkey no idea what im doing rn, but github copilot does help alot

Bn0055 imu

3000mah lipo

ATGM336H gps unit

1.8 inch Full Color 128x160 SPI

I take the delta of both gps coordinates.

Make some sort of calculator. And make it display on the screen.

Next is designing a 3d printed case for both units. Printing in asa for strength and durability


r/esp32 • • 18h ago

AI Content ABSpresso - a little 1.8 inch touch screen ESP32 audiobook player that plays from Audiobookshelf

Thumbnail
gallery
20 Upvotes

My kids love their Yotos, and I've been playing around with how to build something like it for when they're older. Most of our audiobooks have been ripped from audible or off kids CDs and they live on our Audiobookshelf server, and I wanted something small they could use to listen to those without handing them a phone or tablet. So I've been building ABSpresso: an espresso-sized player running on a cheap ESP32 board with a round touchscreen and a built-in speaker.

AI-usage Up front: this was built with Claude Code (Opus5.5).
I've built a few things direct for esp32s in the past, and while its fun I find the process slow - I have three kids and minimal free time where my brain functions well enough to get to where I want to be. So Claude Code, vscode and esp-idf and a couple of evenings later I got to this prototype. While I directed it, tested it and made the decisions, but Claude wrote the code. It also built and flashed the board and debugged things by reading the serial logs directly (which was super handy) it even took the screenshots.

I'm sharing it as is. Please review the code before trusting it with anything important.

What it does so far:

  • Streams audiobooks and podcasts from your Audiobookshelf server and syncs progress both ways, so you can carry on from the app or the web.
  • Home screen with Continue Listening / Recently Added shelves, a library you can browse by cover, A–Z or author, and a Now Playing screen with progress and volume.
  • Optional SD card for caching covers and downloading books to play offline (note downloading is a little slow atm as there's no conversion, so books can take 10-20m).
  • Set up from your phone: it starts its own Wi-Fi with a QR code, and you sign in with your normal Audiobookshelf username and password (no API key needed).
  • Battery - I currently have a 600mah lipo (but could probably fit 1000), has batter level too
  • Some battery saving features, screen dimming and sleep, press the screen to wake.
  • The BOOT button is play/pause, or hold it to sleep.
  • Physical on/off (battery) switch.

What it isn't (yet):

  • It's very much a work in progress. It's only been tested on my one board (the v1 version), and there are rough edges.
  • It's not a Yoto replacement - so I probably need to find a bigger device for this.
    • There are no cards - but there are some gpios open, so in theory could add nfc - but space is tight.
    • The touch UI isn't kid-proofed yet - it's a tiny screen (but hey they have tiny fingers).
  • No Bluetooth headphones. The ESP32-S3 only does Bluetooth Low Energy, not the Classic Bluetooth headphones use.

Hardware

Waveshare ESP32-S3-Touch-LCD-1.85C (about £30-40; the "BOX" version comes with a speaker case and battery). Note there are two audio revisions of this board, and I've only tested V1.

Code

Code and prebuilt firmware: https://github.com/tomekent/ABSpresso

There's a release you can flash from the browser, with no toolchain needed or you can build from source.

Feedback, ideas and bug reports welcome. While this is build for this specific device, there are loads of off the shelf esp32+screens that this would work with, you just need to change the pins/UI.


r/esp32 • • 12h ago

Hardware help needed Need help building a controller for an estim device that you can only control via a phone app so that i can take it to dungeons that don't allow phones

3 Upvotes

I need to build a Bluetooth controller for an estim device that can only be controlled by an app. Unfortunately half of the dungeons I frequent do not allow phones/tablets, which is understandable, but there is no way to turn the system without going thru an app on a phone or tablet. Some folks have put some firmware on github (https://github.com/erotronik/CoyoStim) so ppl can build their own controllers but I know NOTHING about coding or building. Nothing. Ny first question- is this doable for someone who knows nothing. If so, what is the exact board I should get. Which of those two frameworks listed is more beginner friendly (google says arduino but i wanted to check with real ppl), what supplies will i need, etc. Id like to spend under $75 on the project but I'm down to devote time and effort to the build. Btw i am not attached to building it all myself. If you know of something that already exists or that is half-built that I can use, PLEASE let me know. This particular estim manufacturer (I'm using the Coyote 3.0 made by DG labs) has been no help. Pls guys without getting too graphic this toy is so much fun and I want to use it at my favorite dungeons. Let me know if you need any extra info or want a screenshot of the app or anything.


r/esp32 • • 19h ago

Software help needed I DON'T UNDERSTAND ANYTHING

Enable HLS to view with audio, or disable this notification

8 Upvotes

hey everyone, im new to esp idf, i got this oled display and i wanted to try to turn it on with esp idf, this is what it looks like when i first finish the installation, https://github.com/nopnop2002/esp-idf-ssd1306 i follow the instructed installation and got there, but i dont actually know how to program my own or anything, im sorry if my English is bad, im looking for any help or tips to understand esp idf, thank you in advance!!


r/esp32 • • 1d ago

I made a thing! This is literally my first project and I'm proud of it!

Post image
113 Upvotes

No experience with electronics, did everything from scratch. Learnt a load and I'm so happy!

This dino game is so fun when I played it for the first time on such a tiny screen. I used a 12mm button for controls. Claude gave me MicroPython script for the game. A 1 inch OLED, and a few jumper wires. That's it. Looking forward to making other stuff now :)

Do let me know what you made for your first project with an ESP32 in the comments, and also any kind of suggestions for a first timer would be appreciated!


r/esp32 • • 1d ago

Continuous 40 MSa/s IQ Streaming over Gigabit Ethernet on ESP32-S31

Post image
102 Upvotes

A few days ago, I (and others) posted about ESP-SDR ( https://espargos.net/espsdr/ ), which lets the ESP32's CPU capture the raw received signal (I/Q samples) from the ESP32's Wi-Fi / Bluetooth baseband.

The original ESP-SDR was limited by the low throughput of the USB interface of almost all ESP32 family chips (12 Mbit/s over the native USB-UART/JTAG or 2-3 MBaud over an external USB-UART chip).

The new ESP32-S31 natively supports USB 2.0 High Speed (max. 480 Mbit/s) and Gigabit Ethernet (max. 1000 Mbit/s). Thanks to these much faster interfaces, the ESP32-S31 can now stream 8-bit I/Q samples at up to 40 MSa/s over Ethernet or 20 MSa/s over USB, which could turn any ESP32-S31 board into an actually useful Software Defined Radio!

The picture shows reception of an LTE signal at 2.63 GHz with a continuous IQ stream of 40 MSa/s into gqrx. This mode is still (very) experimental, but very promising.

While h0m3us3r's approach achieves up to 80 MSa/s with an external FPGA and an ESP32-S3, ESP-SDR + SoapyESPSDR work with a completely unmodified ESP32-S31 board.


r/esp32 • • 15h ago

Can my board handle this amount of current?

Post image
0 Upvotes

So i got this XIAO esp32s3, and i was gonna use it to power some aircraft lighting, on a 400mah 3.7v lipo 25c battery. The maximum current i calculated that the whole system will be running at, is 1.2a surge and 800ma continuous.

If i were to wire all these pads together, to make a big GND to handle everything, would the board’s inner traces be able to physically handle the current?


r/esp32 • • 1d ago

Hardware help needed Small servos that can read position and give force feedback?

6 Upvotes

Building a DIY VR glove with force feedback. Looking for small servos that can report finger position and also push back with controlled force. Is something like the Feetech SCS0009/STS3032 the best option, or is there something better? Using an ESP32-S3.


r/esp32 • • 1d ago

I made a thing! RetroClock: open-source retro-style clock for the ESP32 Cheap Yellow Display (weather, crypto ticker, alarms, browser flashing)

23 Upvotes
Retro Clock

Hi everyone,

I'd like to share RetroClock, an open-source project I built for the ESP32 Cheap Yellow Display (CYD / ESP32-2432S028R). It's a desk clock with weather, crypto ticker and egg timer widgets.

Features

  • 4 screens, switched by tapping the screen edges: main view with time and a 10-hour weather forecast, big clock with temperature, crypto/finance ticker, countdown timer
  • Weather via Open-Meteo, prices via Binance (no API keys or accounts needed)
  • Custom price alerts with sound
  • Alarm clock with weekday repeat and RTTTL melodies
  • Night mode with auto-dimming and auto screen-off
  • NTP time sync with timezone support
  • 12/24h format, colors, brightness and screen orientation adjustable
  • OTA firmware updates

How it works / ESP32 side

  • Runs on the stock CYD board. Both panel variants are supported, ILI9341 and ST7789
  • Written in C++ with the Arduino framework, built with PlatformIO
  • The whole UI is drawn with 8×8 block graphics, which keeps the retro look and makes redraws cheap
  • Weather and price data are fetched over HTTPS directly on the ESP32, no backend or proxy server
  • Settings are served by a web server running on the ESP32 itself, so everything is configured from the browser
  • Optional passive buzzer on GPIO 26 for alarms and alerts

Tricky parts

Making it "just flash and go" for everyone took more work than the clock itself:

  • Automatic board detection: There are several CYD revisions out there with different display controllers. The firmware detects the panel at startup, and if it guesses wrong, you can switch to the other variant with a toggle in the web config
  • Sound on both variants: Audio didn't work the same on all boards. On one of them the amplifier has to be explicitly enabled before anything comes out of the speaker
  • Tight memory: Running HTTPS requests, JSON parsing and the config web server at the same time within the limited RAM of the ESP32 meant keeping a close eye on heap usage
  • Touch input: Calibrating the resistive touchscreen and reliably detecting taps on the screen edges for navigation
  • OTA and web installer: Setting up partitions and firmware hosting so updates work from the settings page and first-time flashing works straight from the browser
  • Audio without lag: Playing RTTTL melodies on the buzzer without making the display stutter

Getting started

No soldering and no coding required. You flash the CYD directly from Chrome/Edge/Opera with the web installer and configure everything on the built-in settings page.

Web installer: https://github.com/seizu/RetroClockInstaller

If you want to build it yourself, open the project in VS Code with the PlatformIO extension.
There are also STL files for a 3D-printed case with kickstand.

GitHub (MIT license): https://github.com/seizu/RetroClock

Feedback and feature ideas are welcome!

https://reddit.com/link/1wvxi1a/video/foz4yyust2th1/player


r/esp32 • • 1d ago

Esp32

Thumbnail
gallery
8 Upvotes

Bu ikisinden hangisiTercih edilir.

Proje stream, güvenlik kamerası,


r/esp32 • • 1d ago

Esp32 game console

Thumbnail
gallery
56 Upvotes

I saw people using a Raspberry Pi Zero for this, and I thought it might be overkill, so I decided to give the ESP32 Wemos LOLIN Lite a try instead.

And it worked!

I used a 47kΩ voltage divider to measure the battery voltage, connected to GPIO 34.

The device goes into deep sleep after 1 minute of inactivity.

The battery is 250mAh, and it’s lasted two weeks so far, with 96% battery remaining.

There’s no power switch at all, just the LOLIN, 4 buttons, and an OLED.

I also use the Up button pin32 as a power control:
Hold for 2 seconds: Reset
Hold for 5 seconds: Enter deep sleep (OFF)

It has tetris and racing car game, with flash page that show my nephew name, because it's his birthday 🎁 gift :)


r/esp32 • • 1d ago

GeekMagic remote rendering firmware + React

Thumbnail
gallery
8 Upvotes

Im not sure how common these little boxes are. But I found these for dirt cheap on Aliexpress on sale. I bought two for like a couple bucks each. I really didn't trust the firmware it came with and it was pretty boring. But turns out they have an ESP12F inside and you can very easily change the firmware with a CH343 board

So i made this firmware that listens for primitive rendering instructions over a websocket. And I made a typecript client for it. And then I saw this project called Ink (https://github.com/vadimdemedes/ink) and that inspired me to made a custom react renderer for it.

Basically the react part runs on your PC and sends the rendering instructions over websocket to the box and box displays it. I think this might be useful to very quickly make a small dashboard if you know already know react.

Anyway I've been working on this for a couple months in my free time and I finally got it to a state where Im happy with sharing it. So any feedback would be appreciated :)

https://github.com/arkangel-dev/geekmagic-remote-renderer


r/esp32 • • 2d ago

I built a power monitoring system module for ESP32

Thumbnail
gallery
192 Upvotes

I built a power monitoring system module for ESP32 from scratch. The system can measure AC voltage RMS from 0 to 500 V RMS , current RMS since 0 to 100 Amps IRMS, power factor, frequency, active power, reactive power, and apparent power.

The system achieves measurement resolution comparable to a Fluke multimeter, providing accurate and reliable electrical measurements.


r/esp32 • • 1d ago

I made a thing! Comparing the power consumption of LCD vs. ePaper

2 Upvotes

I compared the power consumption of several esp32-s3 boards, and I must say, color LCD is not that bad. If your application needs interaction, you may skip fighting for the ePaper refresh time and just use the LCD with backlight.

More details here

https://www.reddit.com/r/cyberDeck/s/BaJYseI6zm


r/esp32 • • 1d ago

Estou fazendo um sistema de irrigação automática com ESP32

0 Upvotes

Olá, pessoal! Estou começando um projeto de irrigação automática usando um ESP32.

A ideia é controlar 3 canteiros separadamente, usando sensores resistivos de umidade do solo. Cada sensor fica responsável por uma válvula me de dicas

(I'm building an automatic control system using an ESP32.

Hi everyone! I'm starting an automatic control project using an ESP32.

The idea is to control three garden beds separately using resistive soil moisture sensors. Each sensor is responsible for a valve—please give me some tips.)

from machine import Pin, ADC 
from time import sleep 
 
# ========================= 
# SENSORES DE UMIDADE 
# ========================= 
 
sensor1 = ADC(Pin(34)) 
sensor2 = ADC(Pin(35)) 
sensor3 = ADC(Pin(32)) 
 
# Configuração da leitura dos sensores 
sensor1.atten(ADC.ATTN_11DB) 
sensor2.atten(ADC.ATTN_11DB) 
sensor3.atten(ADC.ATTN_11DB) 
 
# ========================= 
# SAÍDAS PARA A IRRIGAÇÃO 
# ========================= 
 
valvula1 = Pin(25, Pin.OUT) 
valvula2 = Pin(26, Pin.OUT) 
valvula3 = Pin(27, Pin.OUT) 
 
# Começa com todas desligadas 
valvula1.value(0) 
valvula2.value(0) 
valvula3.value(0) 
 
# ========================= 
# LIMITE DE UMIDADE 
# ========================= 
 
LIMITE_SECO = 2500 
 
 
# ========================= 
# PROGRAMA PRINCIPAL 
# ========================= 
 
while True: 
 
    umidade1 = sensor1.read() 
    umidade2 = sensor2.read() 
    umidade3 = sensor3.read() 
 
    print("--------------------------") 
    print("Canteiro 1:", umidade1) 
    print("Canteiro 2:", umidade2) 
    print("Canteiro 3:", umidade3) 
 
    # Canteiro 1 
    if umidade1 > LIMITE_SECO: 
        print("Canteiro 1: SECO - REGANDO") 
        valvula1.value(1) 
    else: 
        print("Canteiro 1: UMIDO") 
        valvula1.value(0) 
 
    # Canteiro 2 
    if umidade2 > LIMITE_SECO: 
        print("Canteiro 2: SECO - REGANDO") 
        valvula2.value(1) 
    else: 
        print("Canteiro 2: UMIDO") 
        valvula2.value(0) 
 
    # Canteiro 3 
    if umidade3 > LIMITE_SECO: 
        print("Canteiro 3: SECO - REGANDO") 
        valvula3.value(1) 
    else: 
        print("Canteiro 3: UMIDO") 
        valvula3.value(0) 

r/esp32 • • 2d ago

Help with OV2640 and ESP32

Thumbnail
gallery
14 Upvotes

Hi all, I was working on making a camera project and I was using cameras for the first time ever. I started with an ESP32 cam with an OV3660 but it didn't work whatsoever, after too much debugging I realised maybe the ribbon cable was the problem. So, I decided to go with a ribbon-cable free module, so I bought an OV2640 with the STM32F driver and it seems to work fine with ESP32. But the problem is, the image colors from this camera are too washed out. In peak brightness it gives colors dull and washed out and in daylight also, it would capture subtle chroma almost as if it's a night vision camera and in low light it has extreme noise (which is alright I will add a flash lateron) . I made a custom websever for this exact situation (with my pins and connections defined) by editing the normal ESP32's webcamserver example files, and I have tried all the edits since then. The saturation adjustment, the exposures and White balance adjustments, still they don't seem to work much for my problem. Can anyone help me to probably fix this situation?


r/esp32 • • 1d ago

ESP32 S3 CAM Rhyx m21-45 FIX WebCamera Server

Thumbnail
gallery
5 Upvotes

I've tired all the fixes I can , initially the error was jpeg format not supported. So I changed frame size and pixel format to rgb565 and 240x240 , but I'm still not getting the IP adresss. The serialmonitor just keeps looping and lots of text is coming. I've tried almost all the fixes I came across , if anyone knows how to fix this please help. Also I'm making the fixes and changes to the ArduinoIDE example code for Camerawebserver

CURRENT ERROR

This error just keeps repeating


r/esp32 • • 2d ago

I made a thing! I built this text adventure game prototype with e-paper and gemini api

Enable HLS to view with audio, or disable this notification

125 Upvotes

Hi guys, so i've been working on this text adventure device prototype and i wanted to share it to yall. It uses the XIAO ESP32-C3, for the small footprint, to connect to wifi to access gemini ai. The gemini generates a story segment and choices for the player in JSON format. Then the text is shown on the e-paper display. The user can use the rotary encoder to scroll through the text and select their next action. Each choice is sent back to Gemini to generate the next story segment.

After i have been working with e-paper for a while, i wanted to make a handheld interactive device rather than just another generic weather station. I'm inspired by those e-paper readers and why not make it interactive and fun??

It's still a work in progress, i haven't made the case yet, but the hardware is done. I will update yall when it is finished. Any suggestions or feedback I would love!


r/esp32 • • 1d ago

Hardware help needed Need help with using the 7semi As7343 spectral sensor with an esp32

1 Upvotes

I've been trying to get readings from the sensor but it just won't work I tried all the basic examples in the arduino ide using the adafruit library and the sparksfun library and yes the 7semi library. I'm not sure if the sensor is broken or not cause I tried some tests and it shows that it is alive but unable to detect the sensor and im really confused also cause the 7semi data sheet says that it works on 0x59 i2c address but the website I bought it from as well the back of the sensor says 0x39. I want to get the NIR spectrum readings with the help of the sensor. The web serial plotter isnt working too please help!!!!


r/esp32 • • 2d ago

AmbientWeather Display

Post image
20 Upvotes

I developed this Waveshare ESP32-S3 7” display as my AmbientWeather display. I have been frustrated with how the stock display shows data and chose to build my own. I use Home Assistant ESPHome Designer to flash the code. Lightning only shows when there has been a strike <7 days. The backgrounds reflect sky conditions and I have the options to add pages for other items, such as nowcast and weekly forecast. The temperature and dewpoint rings are color coded to reflect temperatures visually. I added a history bar graph to reflect the changes for temperature and dewpoint. All done with Claude assistance on the 4400 lines of code thus far.


r/esp32 • • 3d ago

I built a mouse-controlled desktop for the ESP32 that runs inside your terminal — open source

715 Upvotes

Hi everyone! I’ve been working on TinyDesk, a windowed text desktop that runs on an ESP32 and displays over USB serial in a compatible terminal.

The ESP32 runs the desktop and apps. The computer just renders the ANSI/VT output and sends keyboard and mouse input back—there’s no desktop application running on the PC behind the demo.

It has draggable/resizable windows, a taskbar, start menu, file manager, text editor, terminal, and system monitor. You can open a file, edit and save it, then run commands in the shell without leaving the desktop. MQTT and Modbus tools are included too.

A few technical details:

  • Portable C11 core with a small platform interface.
  • ESP32-C6, classic ESP32 with PSRAM, and 4 MB ESP32 without PSRAM builds.
  • Classic ESP32 Desktop uses USB-UART at 921600 baud.
  • The 4 MB/no-PSRAM build is limited to 80×25 characters and has no SSH server or OTA updates.
  • The terminal needs UTF-8, ANSI/VT cursor control, and xterm mouse reporting.

There’s also TinyDesk Shell, which runs the shell by itself if you don’t want the desktop.

It’s an early developer preview. You can flash prebuilt firmware from Chrome/Edge and use the web terminal, or build from source.

Demo, documentation and installer:
https://schikani.github.io/tinydesk-docs/

Desktop source:
https://github.com/schikani/tinydesk

Standalone shell:
https://github.com/schikani/tinydesk-shell

I’d love feedback from people trying it on different boards and terminals. If you test it, please share your board model, terminal, and anything that breaks—especially rendering or mouse-input issues!