Skip to content
MCU Atlas
ESP32ESP32-S3Draft

Tinytron: tiny ESP32-S3 retro TV desk toy

A pocket mini TV that plays MJPEG video from microSD or Wi-Fi on Waveshare's ESP32-S3 1.69in board.

Difficulty:BeginnerCost:Source available

Photos

Tinytron: tiny ESP32-S3 retro TV desk toy photo 1
Tinytron: tiny ESP32-S3 retro TV desk toy photo 2

Photos: t0mg/tinytron

Key Facts

  • Chip: ESP32-S3
  • Display: 1.69in 240x280 LCD
  • Media: MJPEG from microSD or Wi-Fi
  • Cost: ~30 EUR per creator

About This Project

Tinytron is a tiny retro-TV desk toy built around the Waveshare ESP32-S3-LCD-1.69. It plays JPEG images and MJPEG videos from an SD card or streams from a computer over Wi-Fi, runs on battery, and is controlled by a single button and a web UI. The creator designed it to be cheap (around 30 EUR), need only one header soldered, and use a quick-printing snap-fit case.

Source & Attribution

Creator: t0mg (@t0mg)
Source: GitHub
License: MIT
Last verified: 10/16/2026
Tinytron: tiny ESP32-S3 retro TV desk toy
How to Build It
Tinytron is a tiny retro-TV video player built around Waveshare's ESP32-S3 1.69in LCD board. It plays MJPEG videos and JPEG slideshows from microSD, or streams from your computer over Wi-Fi, all inside a snap-together 3D-printed case. Flashing and video conversion both happen in the browser.

Parts Needed

  • Waveshare ESP32-S3-LCD-1.69 (non-touch version; V2 board revision by default)
  • microSD card breakout board with 6-pin header
  • microSD card, FAT32
  • Small 3.7V LiPo with a JST 1.25mm connector (the common PH2.0 plug won't fit)
  • 3D-printed case (4 parts, PLA), plus glue and electrical tape

Steps

  1. 1

    Print the case

    Print the front, back, bezel and button parts. The README lists which face goes on the print bed and where to add supports. Each part takes about 30 minutes on a Prusa MK4S.

  2. 2

    Prepare the SD wiring

    Solder the header to the SD breakout. Using the dev board's bundled IO cable, cut or de-pin the unused wires, then connect 3V3, GND, MOSI, MISO, CLK and CS to the pins listed in the README. Label the plug, because inserting it backwards swaps 3V3 and GND.

  3. 3

    Assemble

    Glue the bezel to the front, then fit the display, board and battery in the order shown in the video. The tolerances are tight and the glass is fragile, so take it slowly.

  4. 4

    Flash from the browser

    Use the web flasher on the project's website with Chrome or Edge. If you have a V1 board, change SYS_EN and SYS_OUT in platformio.ini and build it yourself with PlatformIO instead.

  5. 5

    Load content

    Convert your videos with the project's in-browser transcoder and copy them to the SD card. Alternatively, join the device's Wi-Fi access point and stream from your computer through its web interface.

  6. 6

    Use it

    Press the button once to pause, twice to skip and hold it to switch on or off. The web panel handles Wi-Fi settings, the auto-off timer and OTA updates.

Parts List (BOM)
Complete parts list from the creator
complete
PartQtyRoleEst. PriceBuy
1main board$15–$22View
1storage$1–$3View
1storage$4–$8View
1power$4–$10View
Estimated Total$24–$43 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32Draft
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Under $15·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32Draft
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Cost varies·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
Illustration
ESP32ESP32-S3Draft
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Under $15·Code
3 parts listed