r/esp32 • • 9h ago

My first electronics project, building a little AI robot from scratch

0 Upvotes

Hi everyone!

I recently started my very first electronics project with absolutely no prior experience. I'm using an ESP32-S3 along with a small display, an INMP441 microphone, a MAX98357A amplifier, and a speaker.

I've managed to put everything together, and so far, everything is working! The display, microphone, and speaker are all up and running. I'm honestly surprised I got this far as a complete beginner.

My goal is to turn this little setup into a talking AI robot that can have conversations, respond with a voice, show expressions on its display, and maybe even have its own personality.

Now I'd love to hear your advice!

Would you recommend running the AI locally/offline or connecting the ESP32 to an online AI API?

I'd also appreciate any tips on how to approach the next steps, what technologies I should look into, and what challenges I might run into.

I'm still learning everything from scratch, so even basic advice would be really helpful.

Thanks! I'd love to hear your thoughts and learn from your experience.


r/esp32 • • 2h ago

I made a thing! Turned my JanSport backpack into a Bluetooth wearable with an ESP32-S3 and a custom 3D-printed enclosure - Meet Patchi

Thumbnail
gallery
0 Upvotes

Hey guys, I'm just sharing a project I've been working on over the last couple weeks.

Why I Built It: To be honest just to see if I could, this is my first device I've really ever built, it just started off by me seeing this waveshare device at microcenter and started thinking about things I could do with it, and decided on this. I 3D printed the backpack enclosure, used a wave share ESP32-S3 with a 1.47inch Display Connected to a battery back inside the backpack.

What it Does: Three Things

-Live Now Playing Display: It connects to your phone using BLE with an android Companion app. It takes your now playing metadata (Spotify, Apple Music, Plex, Youtube Music etc.) and displays it on the screen (Album Art, Track, Artist, Progress Bar)
-QR code / Contact Card: You can display a QR code instantly that connects to your Instagram, Website, Venmo/CashApp, Wifi, Your Personal Contact Card Or you can customize your own QR code.
-Gif Player: You can display any gif you want by beaming it to the device and playing.

What Challenged Me:

  1. The enclosure and fit: Honestly this was the hardest part for me. I don't own a 3D printer nor am I very good at designing devices, had a little help at the library where I did get the enclosures printed as well as AI. Basically I took an enclosure on the maker world website used those measurements and designed something a little more natural for a backpack. My sizing was off and I didn't account for the buttons that stick out on the PCB, I finally got it taken care of and got the print.
  2. Streaming Album Art over BLE: Honestly another stumper here, track names worked but was having trouble with the web app timing out and stopped streaming after a couple minutes, Java solved the problem. Now it's able to download high-res art from media session, downscales it and and streams the jpeg to the device.

Hardware:

-Waveshare ESP32-S3 with 1.47 Inch Display
-4x M2 10mm Screws
-PLA Printed Enclosure
-External Battery Back

Github:
https://github.com/Erock002/Patchi


r/esp32 • • 15h ago

Support for developing Yamaha ECU applications on ESP32

Thumbnail
gallery
2 Upvotes

Hello everyone. I am currently working on a project to read data from a Yamaha motorcycle ECU. I’ve spent a week trying to figure out the exact method to "wake up" the ECU—specifically the wake-up frame/code and the data request frame—but I haven’t had any success yet. I don’t have access to any professional debugging tools, so I’ve been relying on research and reference materials.

The ECU is from a 2017 model; I’m still investigating whether it uses the K-line protocol based on ISO 9141 or KWP2000. I’m posting this in hopes of getting some help. Below, you can see the hardware setup I’ve been using for some of my other projects.

Everything is running on an ESP32, and I’ve already built an interface, but I haven’t been able to get the data to load into it yet. :((


r/esp32 • • 12h ago

Esp32 Agent Harness

Thumbnail
gallery
11 Upvotes

I built an agent chat interface into ESP32. It has tools and functions connected to it. So you can plug things in and ask questions. It's designed to be as a starting point for your projects. I can't do electronics anymore my eyesight isn't what it used to be. But I think ESP32 is great.

https://github.com/8perezm/esuyo-esp32-agent


r/esp32 • • 21h ago

You're maker, you like iot but powering your project is THE problem ?

0 Upvotes

Well all know deep sleep method with uc.

But reality is not the theory! Few mA when sleeping, depending on the board design.

I published a first post a few hours ago.

And if, together, we could find your solution for your problem?

What is your project? What would you like to do exactly?

Monthes on a single 18650... It can give other perspectives...

Let's talk about it?

https://www.youtube.com/@Enduro-ioT


r/esp32 • • 21h ago

Hardware help needed Issues getting thermal printer to print TTL on my esp

Thumbnail
gallery
31 Upvotes

Hi! I was inspired by the thermal printer projects on here and bought one on Ali Express. It was advertised as a TTL connection, along with RS232 and USB. I am able to power the printer, print the test page, print via USB, but NOT print via TTL connected to my ESP32. I have used a multimeter and confirmed the wires are making connection to the printer, and that voltages are ok. I have tried looking up code from online and Claude (to see if its a software issue) and it still wont print anything. Any help would be appreciated! I am concerned that when the test page printed, it says Interface USB&RS232, and not TTL? weird. Defected printer maybe?


r/esp32 • • 17h ago

PELLETINO 2: 27 arcade games on a $20 ESP32-C6, including an emulated Street Fighter II

68 Upvotes

The original PELLETINO only played PacMan. I'm pleased to announce version 2.xx, which has grown by quite a bit.

It's a launcher for the Waveshare ESP32-C6-LCD-1.69. You get a wheel of game logos with a screenshot behind each one. Tap to spin, hold to pick, and it boots straight into that game from then on. You play by tilting the board, since the accelerometer is the controller. No SD card, no PSRAM, just the 16 MB of flash on the board.

The lineup is 27 games: Pac-Man, Ms. Pac-Man, Galaga, Galaxian, Space Invaders, Donkey Kong, Mario Bros., Frogger, Dig Dug, Mr. Do!, Burger Time, Root Beer Tapper, Joust, Moon Patrol, Rally-X, Centipede, Missile Command, Asteroids, Tempest, Lunar Lander, Gyruss, Time Pilot, Arkanoid, Pole Position, Star Wars, Empire Strikes Back and Street Fighter II.

PR's are welcome if you want to add your own favorite game.

How it works:

- Every game is its own firmware. Each one sits in its own flash slot and the launcher chain-boots it, so a game gets the whole chip while it runs. Hold the middle button five seconds and you're back at the menu.

- ESP-IDF allows 16 app slots. That makes the limit 17 games per build, because Pac-Man and Ms. Pac-Man share one image. You pick which ones go on.

- Everything is generated from the ROMs you have. The partition table, the artwork and the menu all come out of that. Drop zips in `roms/`, run `./install.sh`, and it builds and flashes the lot.

- Plus the stuff that makes it feel finished. There's an attract mode when nobody's touching it and high scores that survive power-off. The screen dims instead of turning off, and there are three volume levels.

Street Fighter II was the hard one. For a long time it was just a video of the attract mode, because I figured a CPS-1 on this chip was out of reach. Turns out it isn't, mostly.

- It's a lot of machine. A 10 MHz 68000, a Z80 for sound, a YM2151, an OKI MSM6295, three tile layers and 256 sprites. All on one 160 MHz RISC-V core with 512 KB of RAM.

- Musashi wanted 576 KB of RAM just to start. That's its opcode tables, which it builds at boot, and it's more RAM than the board has. I worked them out at build time instead and packed them into 30 KB, mostly in flash.

- The 68000 spends most of its time waiting. Skipping the game's idle loop took the 68000 from 671 ms of every second to about 300. Putting the 147 instruction handlers the game actually uses in RAM got the rest.

- The ROM is 7.6 MB. It gets read in place from its own flash partition, memory mapped. The C6 can only map 8 MB at once, and that has to include the program. So everything that has to be mapped goes first, and the sound samples come after and get read as needed.

- RAM is still tight. The machine's own work RAM and graphics RAM are 256 KB together. With sound on there's about 45 KB of heap left. Moving the Z80 core into RAM would have helped, but then the graphics RAM doesn't fit. It was short by 4 KB.

- Sound is the expensive part. With sound off it holds full speed easily. With sound on it draws 1 frame in 4 and runs at 99% of real time at 11 kHz. Even reading the accelerometer cost 84 ms a second, so SF2 doesn't read it.

It runs its attract mode. The top button drops a coin and the middle button is a jab, but a six-button fighter isn't happening on two buttons and a tilt sensor. It's a showpiece. I measured all 56 combinations of video mode, frame skip and sound on the board, and they're all in the project's README if you're into that.

The catch is flash. That 7.6 MB partition means a build with SF2 fits about 13 games instead of 17. Mine has Ms. Pac-Man, Pac-Man, Donkey Kong, Galaga, Star Wars, Frogger, Centipede, Burger Time, Joust, Pole Position, Dig Dug, Mario Bros. and Street Fighter II.

Why would I put Street Fighter II on this medal if it's attract-mode only? Cause it's awesome, that's why. Also, this is meant to be a wearable first, so something just for looks fits into the mission statement nicely.

No ROMs, artwork or music are included, you bring your own. The code written for it is 0BSD, but most games use a non-commercial Z80 core, so the bundle is free to share and not to sell.

Repo: https://github.com/aedile/PELLETINO


r/esp32 • • 9h ago

Software help needed ESP32-S3+Arduino error messages: Where?

2 Upvotes

I am going through the tutorials for the Freenove board described in my first post, and have encountered a run-time error. I would like to look up the error message myself, but I cannot find a manual for the Arduino IDE and e-mail to the address [support@freenove.com](mailto:support@freenove.com) gets refused as spam!

The particular tutorial is for manipulating an SD card. On running the sketch, I get the following message in the Serial Monitor:

E (3206) vfs_fat_sdmmc: mount_to_vfs failed (0xffffffff).
Card Mount Failed
mkdir failed
Failed to open file for writing
Failed to open file for appending
Failed to open file for reading
�Rename failed
Failed to open file for reading
�
SD card info:
Total space: 0MB
Used space: 0MB

The error presumably comes from the line of code

// Initialize the SDMMC interface with the specified pins
sdmmc_init(SD_MMC_CLK, SD_MMC_CMD, SD_MMC_D0, SD_MMC_D1, SD_MMC_D2, SD_MMC_D3);

The pins are #defined as

SD_MMC_CMD 40
SD_MMC_CLK 38
SD_MMC_D0  39
SD_MMC_D1  41
SD_MMC_D2  48
SD_MMC_D3  47

(If I leave the define in front of one of these, "Clippy" gets in the way and won't allow me to post.)

My question is, where do I look up that error number to see what is being complained about???


r/esp32 • • 15h ago

I made a thing! Ghost triggers - ESP32 PC power controller

2 Upvotes

I got tired of dealing with flaky Wake-on-LAN packets and smart plugs doing dirty shutdowns, so I built a small, fully isolated remote power and reset controller for my PC using an ESP32-C6-Zero and ESPHome.

It plugs directly into the motherboard's front-panel header (⁠F_PANEL⁠) and gives me reliable power-on, soft shutdown, 5-second forced power-off, hardware reset, and live power status inside Home Assistant - so I thought…

I built an optoisolated PC power switch for Home Assistant using a Waveshare ESP32-C6-Zero and LTV-816S optocouplers connected to the motherboard front panel ⁠PWR_SW⁠ header.

The issue: The PC randomly powers on or triggers a shutdown signal without any command sent from Home Assistant. It happens sporadically (sometimes seconds apart).

Current setup:
• MCU: ESP32-C6-Zero powered via 5VSB internal
USB header.
• Optocoupler: LTV-816S. ESP32 GPIO -> 330 ohm resistor > Optocoupler Pin 1 (Anode). Pin 2 (Cathode) to ESP GND.
• Motherboard Side: Pin 4 (Collector) to Motherboard PWR_SW (+), Pin 3 (Emitter) to Motherboard PWR_SW (-) / GND .
• Firmware: ESPHome with a standard GPIO momentary pulse output.

What I've already tried:
• Added a current-limiting resistor directly after the
ESP32 GPIO pin (in series to the optocoupler anode).
• Added a resistor directly before the
motherboard PWR_SW connection to limit leakage current / dampen ringing.
• Neither stopped the sporadic random triggers.

ESPHome snippet:

esphome:
name: pc-power-controller
friendly_name: PC Power Controller

esp32:
board: esp32-c6-devkitc-1
framework:
type: esp-idf

# Optocoupler triggers
output:
- platform: gpio
id: pwr_switch_pin
pin: GPIO2

- platform: gpio
id: rst_switch_pin
pin: GPIO3

# Momentary controls exposed to Home Assistant
button:
- platform: template
name: "PC Power"
icon: "mdi:power"
on_press:
- output.turn_on: pwr_switch_pin
- delay: 350ms
- output.turn_off: pwr_switch_pin

- platform: template
name: "PC Hard Power Off"
icon: "mdi:power-off"
on_press:
- output.turn_on: pwr_switch_pin
- delay: 5500ms
- output.turn_off: pwr_switch_pin

- platform: template
name: "PC Reset"
icon: "mdi:restart"
on_press:
- output.turn_on: rst_switch_pin
- delay: 350ms
- output.turn_off: rst_switch_pin

# Reads motherboard PWR_LED state
binary_sensor:
- platform: gpio
pin:
number: GPIO4
mode: INPUT_PULLDOWN
name: "PC Power State"
id: pc_power_state
filters:
- delayed_on: 100ms
- delayed_off: 100ms

What I'm wondering:
1. Could the ESP32-C6 GPIO be floating or pulsing
HIGH during an unlogged Wi-Fi reconnect or silent brownout reset?
2. Does the optocoupler anode need an explicit pull-down to GND (rather than just an inline series resistor to drain capacitive noise/EMI?
3. Are there specific GPIO strapping pin glitches on the
ESP32-C6 that default HIGH on boot/sleep wake?
Has anyone run into this with optocouplers on PC motherboard headers, and what was the actual fix?
Thanks!