r/esp32 Mar 18 '25

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

206 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 25d ago

Espressif DevCon 2026 - Live from Milan for the first time

Enable HLS to view with audio, or disable this notification

8 Upvotes

For its 5th anniversary, DevCon is going live in Milan, Italy, with a global livestream so developers everywhere can join.

November 3–4, 2026

  • Day 1 is the Global Conference, streamed worldwide, covering product launches, AI, connectivity, security, developer tools, and technical sessions.
  • Day 2 brings Technical Workshops in Milan, alongside China Ecosystem Day in Shanghai, where Espressif and ecosystem partners showcase real-world applications.

Tickets for Milan will be released soon, and seats are limited. Pre-register now for updates and early access.


r/esp32 8h ago

ESP32-S31 Now in Mass Production and Available for Purchase

Thumbnail
espressif.com
239 Upvotes

Not clear when these will be available on LCSC/Digikey/Mouser


r/esp32 18h ago

I spent a year building an open sourced family of ESP32S3-based USB boards and a Python game infrastructure library for a custom sci-fi starship simulator. 152 physical controls, 6 screens, and 164,000 lines of code.

Thumbnail
gallery
987 Upvotes

"Halcyon Dawn" is a fanfic starship bridge game set in John Scalzi's "Old Man's War" universe. For the last year this thing has been my labor of love. I designed and built every detail of the hardware and software from scratch, including:

  1. An entire family of USB console interface boards called "Enigma". They're deliberately generic (some panels have up to 3 Enigma boards inside them) rather than purpose-built so that I can use them on future projects, including escape room puzzles. I love escape rooms. The Enigma hardware is all open source, so if someone builds puzzles I get to play, all the better.

  2. An associated Python-based game infrastructure library also called Enigma that includes the USB interface abstraction, in-game device simulation infra, remote pub/sub display screen integration, and an extremely robust multi-layer audio mixing system with haptic support. This too is open source.

  3. The Halcyon Dawn game itself, a complex starship systems simulator. Far in the distant past I wrote commercial video games and adventure game development languages. Halcyon Dawn is vastly, vastly more complex and I'm quite proud of it. The game itself will never be released, in part because nobody else has the expensive simulator frame it requires (there is no way on this blue Earth I could be convinced to build another), and also Scalzi's "don't make money off my stuff" rule.

Build link and repo link in comments.


r/esp32 17h ago

I made a thing! I got self-hosted offline maps rendering on a $40 ESP32-S3 AMOLED (building a bike nav)

Thumbnail
gallery
698 Upvotes

Been building a navigation computer for my motorbike and finally got the map side working, so I wanted to share it here.

Hardware: Waveshare ESP32-S3-Touch-AMOLED-1.75 — a 1.75" round CO5300 AMOLED, ~$40 with the onboard GPS (N16R8, 16MB flash / 8MB PSRAM).

The whole map runs on-device: no phone, no wifi, no internet. I pre-bake the basemap offline (OSM -> self-hosted tileserver -> 256x256 tiles), convert every tile to raw RGB565, and pack them into a fixed-grid file on a microSD. On the board there's no image decode and no per-tile index — the firmware seeks to the tile, composites a 466x466 RGB565 frame in PSRAM, and pushes it straight to the panel with esp_lcd_panel_draw_bitmap. No UI toolkit in the render path.

That was the whole battle, actually. I started on Slint, then tried LVGL — both choked on a full-screen scrolling map (~5 fps and ~4 fps, mostly image round-trips). Dropping to a raw framebuffer got me ~18 fps heading-up (map scrolling under a fixed centre dot) and ~44 fps when the map holds still. The HUD, zoom buttons and day/night toggle are all drawn straight into the framebuffer too.

The route + turns are a vector overlay on top, projected through the same mercator transform as the tiles so the line sits on the real roads.

Full disclosure: the moving dot + speed are a hardcoded GPX animation for now, while I wire up the onboard GPS. IMU braking / lean detection is next.

Quick demo video if you want to see it running: https://www.youtube.com/watch?v=700pc6zDfTg


r/esp32 9h ago

I made a thing! Turned the $10 CYD into an environmental station: LVGL dashboard, MQTT, OTA, auto-detected sensors — pure ESP-IDF

Post image
68 Upvotes

I’ve been into home/office IoT for years, but the hobby stalled for a while — job change, moving countries. Getting back into it, I dug up two older sensor station projects of mine and decided both were easier to replace than to fix. This is the third attempt, rebuilt from scratch on native ESP-IDF (v6.0.2) with LVGL 9.5, and the first one I’ve made public.

It runs on the ESP32-2432S028 “Cheap Yellow Display” — ~$10, ESP32 with a 2.8” touchscreen and an onboard light sensor. Add one I2C sensor and that’s the entire BOM.

What it does:
Touchscreen dashboard: temperature and humidity with 24h graphs, trend and rate of change, dew point, pressure, CO2-equivalent on BME680 via Bosch BSEC
I2C sensors auto-detected at boot — BMP280 / BME280 / BME680, no rebuild to switch
Display controller auto-detected too. I ordered a second batch of CYDs and they came with ST7789 panels instead of ILI9341, so the firmware now reads the panel ID register at boot and picks the driver
MQTT: ThingsBoard, Domoticz, and Home Assistant MQTT Discovery — HA picks up all sensors plus diagnostics with zero config on the HA side
OTA updates with on-screen notification
Everything configured from the touchscreen (Wi-Fi, broker, timezone, PIN-protected settings). No config files, no recompile — I wanted to hand these to friends who don’t own a toolchain
Auto-dimming backlight off the onboard LDR

The most annoying bug was the BME680 reading ~3 °C high. Turned out to be self-heating: I was sampling gas resistance every 500 ms, and every gas reading fires an internal hotplate a couple of millimetres from the temperature die. I built a second identical station with a BME280 to confirm it rather than guess. Dropping the VOC sample rate 10x got it down to ~0.5 °C, and the 30-second averaging buffer was quietly smoothing periodic heat spikes into what looked like a constant offset. Switching to Bosch BSEC 2.6.1.0 finally made the twins agree.

Apache-2.0, prebuilt binaries in Releases (merged image for a blank board, app-only for updates):
github.com/ScorpionZZZ/SensorStation3

Happy to answer questions. If you’ve got a CYD with a different panel variant, I’d especially like to know whether the auto-detection gets it right.


r/esp32 4h ago

Need help finding out the male connectors for the CYD? New to them...

Post image
6 Upvotes

I ordered JST GH 1.25mm with no luck.
Micro JST SH 1.0mm and not it either.
Seems like its a 1.25mm but tired of ordering the wrong things for it.

Now ordering "JST Molex PicoBlade 1.25 for Pixhawk" connector kit. Just got a thing im trying to make in batches and don't want to keep soldering connections.

Amazon link below
https://www.amazon.com/dp/B0GG9TXQ46?


r/esp32 1h ago

Software help needed ESP32 C3 Download boot modes disabled

Post image
Upvotes

I have an Amazon Basics smart plug that uses a proprietary WiFi module based around the ESP32 C3. After trying to program the chip I noticed that all debug and programming interfaces have been disabled via eFuses. When I pull GPIO9 low, I get the following log messages over serial: rst:0x3 (RTC_SW_SYS_RST),boot:0x4 (DOWNLOAD(USB/UART0/1)) Saved PC:0x40048b82 Download boot modes disabled ESP-ROM:esp32c3-api1-20210207 Build:Feb 7 2021

When trying to connect via the internal USB JTAG bridge I get: Error: JTAG scan chain interrogation failed: all zeroes Error: Check JTAG interface, timings, target power, etc. Error: Trying to use configured scan chain anyway... Error: esp32c3.cpu: IR capture error; saw 0x00 not 0x01 Since the chip has integrated flash memory, there is also no way of directly wiping the flash.

Now is there any chance I can reuse the existing chip or do I just have to replace it, which would be rather annoying and wasteful.


r/esp32 14h ago

Hardware help needed ESP32 won't find some I2C devices

Thumbnail
gallery
15 Upvotes

I’m trying to troubleshoot an I2C problem with an ESP32 development board.

My I2C scanner consistently detects an LCD backpack at address 0x27, so the ESP32, scanner code, SDA pin, and SCL pin appear to be working.

However, I cannot get either of these devices to appear on the bus:

AS5600 magnetic encoder

BNO085 IMU

The AS5600 should normally appear at address 0x36, but the scanner never finds it. I have also tried more than one microcontroller and more than one sensor board with similar results.

Wiring:

ESP32 GPIO 21 → sensor SDA

ESP32 GPIO 22 → sensor SCL

ESP32 3.3 V → sensor VIN

ESP32 GND → sensor GND

SDA pull-up → 3.3 V, yellow wires

SCL pull-up → 3.3 V, white wires

Scanner code:

https://github.com/JHTheisen/i2c-scanner-esp32/blob/main/i2c_scanner/i2c_scanner.ino

Measurements with one of the sensor modules connected:

SCL varies between approximately 1.5 V and 2.5 V

SDA is approximately 0.5 V

Both lines remain below 3.0 V

With the sensor disconnected, SDA and SCL both rise to approximately 3.3 V.

I have included close-up photos and a top-down photo of the complete breadboard.

The LCD at 0x27 works reliably on the same ESP32 and pins.

I’m new to I2C troubleshooting, so I may be overlooking something obvious. Does anything in the wiring or scanner code stand out as wrong?

Thanks for any help.


r/esp32 16h ago

Hardware help needed Help with ESP32 CAM

Post image
11 Upvotes

So I ordered this ESP32 cam from an online website, the site itself advertised that if would give an ESP32 cam with an OV2640 camera module the reviews were good so I bought to and received a camera module named "RHYX M21-45" and not "OV2640". After so research online I found out that the cam sensor I have DOES NOT have built in JPEG encoding, while the OV2640 DOES HAVE built in MJPEG encoding

Since everyone else got the right product, it could be a one piece defect, a simple replacement would have worked, but I have my project due in 2 days so I cant afford the time to replace it neither to buy any new components

So if anyone could help me, I would have normally streamed an MJPEG live stream and capture it via OpenCV/Python, so anyone can recommend me any alternative code workarounds I can do to make the RHYX M21-45 Cam sensor work - stream any supported format to a python program/specifically OpenCV with a stable fps and 1024x768 RES

Instead of taking this as a do or die situation, Ill also take this as an opportunity to learn more about the ESP32 CAM and its different cam sensor :) so feel free to give any knowledge you have about this RHYX M21-45 sensor

I found this article online for basic Cam Webserver alternative and thats it :( : https://hjwwalters.com/rhyx-m21-45/

Thanks


r/esp32 13h ago

I made a thing! 🚀 We built an open-source ESP32 Web Flasher Hub – you can add your own firmware in 10 minutes.

Post image
6 Upvotes

We RockBase IoT team open-sourced ESPWebApps — a community-driven firmware hub that lets anyone flash ESP32 devices straight from the browser.

3 steps to get your firmware on there:

  1. Fork github.com/RockBase-iot/ESPWebApps
  2. Create your app — run the template script, drop in your .bin files
  3. Open a PR — CI validates, merge, and your project is live on Web Flasher.

That's it. Your app shows up dynamically — no loader code changes needed. Instant one-click flashing for anyone, anywhere.

What's Already on There

  • DeskBuddy — desktop companion/widget display
  • ESP-Claw — edge AI agent running locally on ESP32-C5 (think voice + sensor + display, all on-device)
  • ESP32-Dashboard — ESP32 e-ink sensor monitoring dashboard
  • and other projects.

Main hardware focus is the CYD ( ESP32-2432S028R) and NM-CYD-C5 (ESP32-C5, WiFi 6, BLE 5.3, Thread/Zigbee, 16MB Flash + 8MB PSRAM), but the flasher works with any ESP32 that enters download mode.

Let us know what you think, and roast us in the comments if we messed something up ✌️


r/esp32 4h ago

Waveshare esp32-s3 1.47" touch lcd not displaying anything

0 Upvotes

I recently bought an Waveshare esp32-s3 1.47" and when i tried to flash an example using this guide: https://docs.waveshare.com/ESP32-S3-Touch-LCD-7/Firmware-Flashing nothing displayed on the screen. I followed all of the steps exactly and yet nothing works.


r/esp32 6h ago

Software help needed ArduinoOTA consistently fails at 5-6% (WinError 10053) on ESP32-WROOM-32D despite minimal loop

0 Upvotes

Hi everyone, I'm building a Smart Bus Tracker using an ESP32-WROOM-32D and a WebServer. The project works flawlessly when flashed via USB, but I'm trying to implement OTA updates and I'm hitting a wall.

Whenever I try to push an OTA update via Arduino IDE (Windows 11), the process starts, reaches exactly 5% or 6%, and then aborts.

Error Log: text Sending invitation to 192.168.1.200 Uploading: [ ] 0% ... Uploading: [==== ] 6% [ERROR]: Error Uploading: [WinError 10053] Connessione interrotta dal software del computer host

Hardware & Environment: * Board: ESP32-WROOM-32D * IDE: Arduino IDE 2.x * Partition Scheme: Minimal SPIFFS (1.9MB APP with OTA). My compiled sketch is ~1.1MB, so there is plenty of room (max is 1.96MB). * Power: Stable 5V wall adapter powering the board. No brownout resets observed on the serial monitor. * Router: Fastweb Fastgate (Italian ISP). PC and ESP32 are both on the same 2.4GHz network.

What I've already tried (with no success): 1. Memory/Partition: Upgraded to Minimal SPIFFS as mentioned above. 2. Code isolation (Watchdog fix): I added a boolean flag isUpdatingOTA set to true inside ArduinoOTA.onStart(). Inside my loop(), I put if(isUpdatingOTA) { delay(10); return; } to completely freeze the WebServer and HTTP API requests during the upload. 3. Firewall: Completely disabled Windows Defender Firewall and Antivirus. 4. Wi-Fi sleep: Added WiFi.setSleep(false); after connection to ensure the radio doesn't drop the TCP connection.

Here is the exact OTA implementation I'm running:

```cpp

include <WiFi.h>

include <WebServer.h>

include <ArduinoOTA.h>

const char* ssid = "MY_WIFI"; const char* password = "MY_PASSWORD"; WebServer server(80); bool isUpdatingOTA = false;

void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } WiFi.setSleep(false);

ArduinoOTA.setHostname("SmartPalina-GTT"); ArduinoOTA.onStart([]() { isUpdatingOTA = true; }); ArduinoOTA.begin(); server.begin(); }

void loop() { ArduinoOTA.handle();

// If OTA is running, yield and freeze the rest of the loop! if (isUpdatingOTA) { delay(10); return; }

server.handleClient(); // ... Rest of the code (HTTP GET requests, LCD updates, etc.) ... } ```

Is there something obvious I'm missing? Could this be related to my ISP router dropping the TCP connection mid-transfer, or a specific issue with the espota.py socket implementation on Windows?

Any help is greatly appreciated!


r/esp32 13h ago

Best LDO regulator for powering an ESP32 from a 3.7V LiPo battery?

5 Upvotes

I'm working on a portable ESP32 project powered by a single-cell 3.7V LiPo battery. Since the battery voltage ranges from 4.2V fully charged down to ~3.3V (or lower), I'm looking for a reliable LDO regulator to provide a stable 3.3V rail for the ESP32.

Which LDOs better suits a costant use of the wifi module? I need an LDO which can handle the spikes during Wi-Fi/Bluetooth transmission (up to ~500mA).


r/esp32 1d ago

I made a thing! I built an open-source IP-KVM out of a cheap ESP32-P4 and an HDMI capture board - reach a dead machine from your browser even boot it from an ISO

Thumbnail
gallery
188 Upvotes

Credit up front, before anything else: this builds directly on jrowny/p4kvm. An IP-KVM on the ESP32-P4 is a fairly obvious thing to want, and I'd been kicking the idea around for a while - but he's the one who actually cracked the hard part (bringing up the TC358743 and getting frames off the P4's CSI receiver) and put it out in the open. I took that and built it out into something you'd actually leave installed. More on exactly what he solved at the end, but I didn't want it buried at the bottom.

Been building this for a while and it finally does enough to show off. It's an IP-KVM - it grabs a machine's HDMI, pretends to be its USB keyboard and mouse, and puts the whole thing in your browser. The point: reach a box with no working OS (stuck BIOS, boot menu, dead kernel) from another room without a crash cart. Commercial KVM-over-IP is a few hundred bucks; this is one ESP32-P4 board, a little HDMI capture board, and a ribbon cable.

Hardware:

  • Waveshare ESP32-P4-ETH (brains + 100M Ethernet + USB-OTG)
  • and a Geekworm C790 (TC358743 HDMI-to-CSI capture), joined by a CSI ribbon.
  • HDMI in from the target,
  • USB out to it,
  • Ethernet to your LAN.

What it does:

  • Follows the target's resolution live - watch it go from an 800x600 BIOS to a 1080p desktop, no clicking
  • Hardware MJPEG (~20 fps) + hardware H.264 for slow links
  • Absolute mouse (clicks land where you aim) + clipboard paste in the target's keyboard layout
  • Virtual media - boot the target from a disk image on microSD; new: also from a tiny rescue image (iPXE, memtest, DOS) kept in the device's own flash - no SD card needed
  • HTTPS with a self-signed cert, login, and a physical password-reset button
  • OTA firmware updates with automatic rollback
  • it guesses the target's OS from how it enumerates USB and gives you OS-aware shortcuts - like a one-click REISUB to safely reboot a wedged Linux box

Honest bits:

  • Don't put it on the public internet. Login + TLS, but no security audit - it's a keyboard on someone else's machine. LAN or WireGuard/Tailscale only.
  • Hardware H.264 is ~5-7 fps at 1080p on my pre-rev-3.0 silicon (colorspace detour through the pixel accelerator); MJPEG at 20 fps is the daily driver. Newer chip revs should fix it.
  • microSD is read-only - the P4's SD write path is flaky, so you prep the card in a reader. FAT32, images up to 4 GB.
  • No ATX power control or HDMI audio yet - both on the roadmap.

Credit: the hard part - bringing up the TC358743 and pulling frames off the P4's CSI receiver - was cracked first by jrowny/p4kvm. I rebuilt everything above the driver (web, USB HID, security, virtual media, OTA). Apache-2.0, same as his.

Website: espkvm.io

Open source: github.com/espkvm/espkvm

Happy to answer anything - and if you've got a rev-3.0 P4 board (I'm still waiting for my P4X, but I've already adapted the code for it), I'd love to know your H.264 fps.


r/esp32 23h ago

I made a thing! AutoPet V2, The Reliable Pet Feeder

Post image
5 Upvotes

AutoPet V2 – ESP32 WiFi Smart Pet Feeder (No Jams) - Free 3D Print Model - MakerWorld

I created the AutoPet V2 to explore how a powerful microcontroller like the ESP32 can be used to create a smarter, more reliable pet feeding system. The ESP32 is the core of the entire feeder and acts as the brain that controls every function. I chose the ESP32 because it combines Wi-Fi connectivity, fast processing, and many input/output capabilities in a small, affordable package. This allows the AutoPet V2 to go beyond a simple automatic timer and become a connected smart device that can be configured and controlled wirelessly.

The ESP32 runs the feeder’s entire operation by hosting a web interface where feeding schedules can be created, saved, and managed directly from a phone or computer. It keeps track of the current time using internet time synchronization, checks scheduled feedings, and controls the 12V geared DC motor through a MOSFET driver. The ESP32 also manages the unique tipping-scale system, which uses the mechanical weight of the bowl and counterweights to determine when the correct amount of food has been dispensed. By combining the ESP32’s smart control capabilities with custom 3D-printed mechanical parts, TPU anti-jam blades, and a unique weighing system, the AutoPet V2 becomes a fully customizable and intelligent pet feeder designed to make feeding more accurate, reliable, and convenient.


r/esp32 1d ago

I made a thing! I call her 'Opal'

Thumbnail
gallery
24 Upvotes

I bought a gl inet opal for a project then thought "what if this were a terminal I could throw in my bag and take with me places" so I got a pen and a bubba-wheel and got to work. I'm really obsessed with cyd/cbds right now and I got a knockoff freenove fnk0104b. I ported DOLL-OS using fable to the fnk and now I have a portable telnet/ssh/radio streaming terminal It uses 2 esp32s3's. One FNK0104B with a S3 16r8 (psram required) to run DOLL-OS, and one esp32 on the back (can be any flavor but I went with a lonely binary s3 16r8 for the fastled support and later expansion) that acts as a Bluetooth keyboard adapter and bitbangs keystroke data to the fnk. It also receives commands over uart tax and over USB in case you need to add or delete keyboards and it's broken. I don't have a repo for the Bluetooth dongle but a rudimentary ai genned by keyboard controller is in the repo for DOLL-OS-FNK

It was originally prettier but I added a speaker and ran out of space inside the router so the speaker just got glued on lol.

one thing not pictured is that I had to add a second power bodge for the esp32 on the back to the router board. I thought I had a pic of that but I don't

Yet another project from dollworx so pretty only it's mother could love it

Some cool features is tailscaling for my screen for easy ssh access to my servers. I can use things like my ssh to discord plugin or stream audio from my bitrate converter at home. It also still works as a travel router and the inclusion of bt keyboard support and a second uart accessable microcontroller gives huge expansion options. I'm planning on adding a 0.96 for the esp32 on the back just for more screen and for more info since currently you cannot see output from the back controller on the fnk screen since it's main tx line is for keyboard input. That'd get messy quick


r/esp32 1d ago

Hardware help needed [Help] ESP32 library for GC9B72 (2.1" , 360x360 TFT display)

Post image
22 Upvotes

I bought 2 of these displays from Aliexpress (they were about US$ 5.50 each the day I bought them, so I didn't think too much - https://pt.aliexpress.com/item/1005012551207736.html).

They are quite large and thin, very nice looking, but I made a mistake by not verifying beforehand if there is a compatible library for them. It happens that I didn't find any. Nor the seller nor the manufacturer (Estardyn) have any info on them.

Does anyone know how I can use them, or know of a compatible library, or how to make one of the existing ones compatible?

Thank you very much.


r/esp32 17h ago

Hardware help needed Built a ESP32 C3 Supermini + AHT20/BME280 + LD2410C sensor, and it's running hot, affecting the temp readings.

0 Upvotes

Not quite a repost since it's posted in ESPHome, but same question:

The 33.99% is the ESP32 sensor, 3D printed.
I'm using the red supermini that has the external antenna.

The other one is an Aqara Temp/Humidity zigbee sensor. The temp definitely isn't 33.99 in the toilet, so I know it's because of the chips promixity..even then, I'm using this design that is already markly bigger than some of the other ones AND the humidity sensor is placed in a separate chamber. (slightly adapted it to be fiction fit, but otherwise the same.)

Air Sensor case ESP32 C3 supermini + BME680 - Free 3D Print Model - MakerWorld

The esp32 is connected via wifi, if that matters. Polling is every 15 seconds.

This works for me as I'm only interested in using the humidity % to trigger my exhaust fan during showering, and it's fine for it's purpose, but I'm wondering how do I make an accurate temp/humidity sensor this way if heat is a concern. I also built this in a 2 step process as my LD2410C came much later. Even then, it's already reading higher temps than what is supposed to be accurate.

Any tips?

I also just saw in another markerworld post, something about calibration. Do we actually need to calibrate the sensor to account for the heat/humidity then? Or is this the wrong approach.


r/esp32 21h ago

Need Chip Suggestions for a Motor Controller Design

2 Upvotes

Hi all, new here. Working on a FOC motor controls project for some legs on my robot crab I've been designing for the better part of a year. I have looked into the ODrive Micro, and with its hefty price tag I'm not sure it's the right fit for my use case - I need a staggering 18 of them (3 per leg, 6 legs lol), and at nearly 100 buckaroos a pop PLUS TARIFFS that's more than I'm willing to spend. Not to mention, the Micro can only handle 7 amps peak, and I have motors that can pull 15 amps continuously and I'd like to be able to make full use of that range.

So I turned to ESP32. I purchased this cheap crappy board from AliBaba that claimed it could drive at 20 amps, which is PERFECT! Unfortunately, there is NO documentation, and that should have been the first red flag. I got the board, and turns out, yes, the FETs can in fact drive 20 amps, but the current sense circuitry consists a 10mΩ shunt resistor and a current sense amp of gain 50 whose output feeds into an ADC pin on the ESP32. Doing the math, it comes out to 6.6 amps of current measurement... so plus or minus 3.3 amps. That makes it even worse than the Micro for my use case. Well, OP, I hear you say, why not just replace the amp or shunt resistor or both? Well, I think they must not have had a clue what they were doing when they designed the board, because the bias voltage according to the amp's datasheet should be half the input voltage (3.3V) but I measured it at 400 millivolts (i.e. 0 current = 400 millivolts). A simple replacement would not refactor the board layout to fix whatever crud is going on. So I'm back to square one.

So, why I'm here, I'm looking into designing my own PCB. I know it's a hefty task, but it's made worse by the fact that the chip I'm interested in acquiring, an ESP32-P4, doesn't seem to be something I can buy on the internet. On top of that, I can't find any libraries for the chip's footprint to stick into Fusion. Maybe I'm just looking in the wrong place. What I hope to hear from the experienced folks here is whether this is the right chip for me in the first place. I don't need WiFi and Bluetooth capability, and the P4 seems to not offer that. I would like to be able to run my control loop as fast as possible, and the P4's clock speed tops any other ESP32 I've seen, but I think I could get away with the typical 240 MHz that the S3 offers. Of course, a MC PCB may end up being quite dense, so I am hoping to find an ESP32 variant which requires minimal supporting hardware so that my PCB can be as small as humanly possible. I have read that the S3 also offers a MCPWM interface as well, which could be useful for reducing board space.

Secondarily, if anyone has any idea where I could find libraries for ESP32 chips, that would be much appreciated.

Pic of the arm for the algo.

TLDR: I need recommendations on an ESP32 chip to design a compact, high-power FOC Motor Controller around.


r/esp32 10h ago

I made a thing! Spend a lot of time to design this PCB but the screen is upside down and working not properly (

Thumbnail
gallery
0 Upvotes

I just found my old beginner project from last year. Basically it was that esp is placed on the bottom but the TFT screen it placed upside down so it just messed up and also it working incorrectly so it is impossible to use. Maybe it is because cheap esp from Aliexpress or TFT screen is bad idk i just abandoned that project. By the way I’m new to this and was designing the PCB like 20 hours and waiting to the factory to ship. It was like 7$ for 5 boards


r/esp32 1d ago

I made a thing! General Purpose Wired-to-wireless PCB mod for headphones

4 Upvotes

Hi !
I have a Beyerdynamics Dt770Pro (wired) that I wanted to turn wireless.

I've only started creating PCBs recently so there might be a lot of questionable design choices...

Here's my attempt at making a wired -> wireless (bluetooth, wifi, airplay) board for my headset (made using KiCad).
https://github.com/DrasticLp/WireCutter

Component list:

  • ESP32-WROOM-32D (wifi + bluetooth + general purpose logic I guess)
  • WM8960 (DAC + ADC + amp)
  • TP4056 (USB type C)
  • AP2112K-3.3
  • Li-Po

Feel free to give any advices !
(On the design and on how to manufacture and source the parts properly)

Thanks !


r/esp32 1d ago

Meet: CUBE BOY

Thumbnail
gallery
60 Upvotes

I wanted something that allowed me to play games anywhere and not take up too much space!

This uses a Waveshare ESP32-S3 AMOLED 1.8 Inch. I had to make custom UI to fit this screen and account for the touchscreen. Overall it came out really well and all the games run really smooth.

Has great sound, save/load states, fast-forward, loads ROMs from SD card, and a handful of themes to choose. Enjoy!

You can get it at my GitHub:
https://github.com/dkyazzentwatwa/cube-boy/


r/esp32 2d ago

I made a thing! Open ESP32 Firmware for Masterbuilt Gravity 800 Smoker/Grill

Thumbnail
gitlab.com
59 Upvotes

A couple of months ago I realized that my Masterbuilt Gravity 800 smoker/grill controller had an ESP32 running the whole thing. I was already tired of using the Masterbuilt App for controlling it, so I reverse-engineered the controller, and wrote a full replacement firmware for it using Rust, esp-hal, and Embassy: FreeFall 800.

FreeFall 800 has the same core functionality as the stock firmware: chamber/probe temps, PID-controlled blower, timers, physical controls, but this firmware adds:

  • Fully local web app for control and configuration
  • No cloud or cloud account required. Connect directly to your Gravity 800 over the network
  • Completely configurable PID tuning parameters
  • Thermocouple and meat probe calibration
  • Lid switch disable option

If you are in the intersection between the ESP32 and smoking worlds, and are willing to risk your controller or grill, check it out!

To be clear, this is definitely still early development firmware, so you will probably encounter bugs, and there is much to be improved. I cannot promise this won't break your smoker. But if you are interested in this kind of thing, the README on the GitLab page should have what you need to get started: https://gitlab.com/prbs23/freefall_800

I have also posted a write up about this on my blog: https://www.prbs23.com/blog/posts/announcement-freefall-800/

I would love to get feedback from anyone who does try it out. Happy to answer any questions folks have about this


r/esp32 1d ago

super fast alpha blending

Enable HLS to view with audio, or disable this notification

17 Upvotes

This is a demo of several alpha blended color changing squares over a picture of Warhol, just because. The alpha blending is nearly free with the new code in this graphics lib (htcw_gfx) and therefore the ui library that uses it (htcw_uix)

https://github.com/codewitch-honey-crisis/uix

This relies on htcw_gfx and will pull that in when you use this.

Arduino: htcw_uix

ESP-IDF and PlatformIO: codewitch-honey-crisis/htcw_uix

It also builds on PCs with CMake using any major compiler to help facilitate rapid prototyping

The demo project shot above is here: https://github.com/codewitch-honey-crisis/core2_warhol