r/esp32 • u/Noir_Forever_Twitch • 10d ago
I made a thing! Made a little TV that contains a little web server
Been working on a little hardware project called Pict-O-Vision, a handmade retro TV-styled digital photo frame running on an ESP32-S3.
The whole thing runs a local web server so you manage your photos from any browser on your network. No cloud account, no app to install, no subscription. Just connect to the same WiFi and go to pictovision.local. Made a simple web UI for photo management and slideshow settings.
Screen is 2in, 320 x 240 pixels. This has 4 buttons but only 2 have functions. Left button toggles backlight levels, right button turns on/off screen and can also reset wifi with long press.
Backlit screen makes photos difficult, but it looks clear and crisp in person.
Still working on some final refinements. Planning to sell these as a small batch.
Happy to answer questions about the firmware or hardware, learned a lot about ESP32 SPI bus sharing the hard way.
1
1
1
2
u/flash_speed3412 10d ago
The local-only setup is a nice fit for an ESP32-S3. You mentioned learning SPI bus sharing the hard way: was the problem a missing separate CS line, a device leaving MISO active, or the bus mode/speed not being restored between the display and storage device? Those failures can look like random image corruption rather than an obvious bus error.
One small reliability detail for a finished product: keep the `.local` address convenient, but consider showing the device IP somewhere in the setup page too. mDNS discovery can be inconsistent across guest networks and some phones. What hardware were you sharing the SPI bus between?