30 days. Small screens.

Big ideas.
Small beginnings.

A new ESP32 project every day in September. Real code, flashable firmware, and the things we learned getting it to work.

The daily builds

Start anywhere.

35 / 30 published

Each project stands on its own. Follow the guide to build it. Read the story to see how we got there.

  1. 01

    Hello World

    Put your first words on an AMOLED. Keep them there.

    Waveshare Touch AMOLED 1.8 · Guide + story
  2. 02

    Styled Text

    Make the greeting yours with color, size, and a custom font.

    Waveshare Touch AMOLED 1.8 · Guide + story
  3. 03

    A Static Graphic

    Turn a real photograph into pixels the board can display.

    Waveshare Touch AMOLED 1.8 · Guide + story
  4. 04

    A Carousel

    Swipe through three portraits with LVGL’s Tile View.

    Waveshare Touch AMOLED 1.8 · Guide + story
  5. 05

    A GIF

    Make Homer disappear into the bushes. A short loop is the whole assignment — and the whole memory lesson.

    Waveshare Touch AMOLED 1.8 · Guide + story
  6. 06

    A Movie

    Play a movie from raw frames — then make it longer than the board can hold, with an SD card.

    Waveshare Touch AMOLED 1.8 · Guide + story
  7. 07

    Touch Calibration

    Measure the touchscreen, learn its local distortion, and save a reusable map before LVGL.

    M5Stack Stopwatch · Guide + story
  8. 08

    LVGL Basics

    A counter, slider, switch, and second screen using the Stopwatch's saved touch map.

    M5Stack Stopwatch · Guide + story
  9. 09

    Sound Effects Board

    Two four-pad game sound kits, instant page pushers, and sounds made from descriptions or audio files.

    M5Stack Stopwatch · Guide + story
  10. 10

    Level

    A round bubble level with zeroing, hysteresis, and a deterministic IMU filter.

    M5Stack Stopwatch · Guide + story
  11. 11

    Buttons, Buzzer, Haptics

    The shared four-gesture control grammar made audible, visible, and tactile.

    M5Stack Stopwatch · Guide + story
  12. 12

    Basic-Ass Stopwatch

    Mechanical-stopwatch controls, precise elapsed-time arithmetic, laps, and guarded reset.

    M5Stack Stopwatch · Guide + story
  13. 13

    Couch to 5K

    Twenty-seven workouts, durable progress, exact interval accounting, and the project's reference controls.

    M5Stack Stopwatch · Guide + story
  14. 14

    Morse Code Practicer

    A straight key, ITU timing, live symbols, decode, and selectable speed.

    M5Stack Stopwatch · Guide + story
  15. 15

    Sound Level (dB)

    An honest dBFS meter with smoothing, peak hold, and explicit limits on calibration.

    M5Stack Stopwatch · Guide + story
  16. 16

    Music Visualizer

    A microphone FFT rendered as stable radial bands with sensitivity and freeze controls.

    M5Stack Stopwatch · Guide + story
  17. 17

    Tamagotchi

    A persistent virtual pet with elapsed-time aging and the shared selection grammar.

    M5Stack Stopwatch · Guide + story
  18. 18

    Pokedex

    A 151-entry local data browser with list/detail navigation and bounded assets.

    M5Stack Stopwatch · Guide + story
  19. 19

    Metronome

    A drift-resistant musical clock with tempo, meter, tap tempo, sound, and haptics.

    M5Stack Stopwatch · Guide + story
  20. 20

    Tempo Checker

    Onset detection, folded intervals, robust BPM, and confidence that admits uncertainty.

    M5Stack Stopwatch · Guide + story
  21. 21

    Yo

    A one-tap nearby message between identical Stopwatches over ESP-NOW.

    M5Stack Stopwatch · Guide + story
  22. 22

    Captive Portal

    Credential-free source, guided Wi-Fi provisioning, explicit retries, and shared NVS.

    M5Stack Stopwatch · Guide + story
  23. 23

    Weather Station

    Keyless weather data reduced to a round current-conditions and hourly-forecast view.

    M5Stack Stopwatch · Guide + story
  24. 24

    Walkie-Talkie

    Push-to-talk PCM between identical Stopwatches over ESP-NOW with sequencing and jitter control.

    M5Stack Stopwatch · Guide + story
  25. 25

    Walkie-Talkie, Worldwide

    The same voice contract over authenticated WebSocket rooms and bounded reconnect behavior.

    M5Stack Stopwatch · Guide + story
  26. 26

    Flight Radar

    A filtered ADS-B scope with honest age, bounded targets, and inspectable aircraft.

    M5Stack Stopwatch · Guide + story
  27. 27

    Package Tracker

    A provider-neutral package board with explicit status mapping, cached events, and secret-safe setup.

    M5Stack Stopwatch · Guide + story
  28. 28

    Real-Time Captions

    Live microphone transcription with visibly different interim and finalized text.

    M5Stack Stopwatch · Guide + story
  29. 29

    Note Taker

    Hold-to-record voice notes, explicit transcription states, and a durable local ring.

    M5Stack Stopwatch · Guide + story
  30. 30

    Trivia

    A multi-Stopwatch quiz with host election, timestamped answers, dedupe, and visible verdicts.

    M5Stack Stopwatch · Guide + story
  31. 31

    WorkOS AuthKit

    OAuth device authorization on a keyboardless Stopwatch with explicit polling and secret boundaries.

    M5Stack Stopwatch · Guide + story
  32. 32

    Connected

    A resident OAuth session with rotated refresh tokens, claims, expiry, renewal, and sign-out.

    M5Stack Stopwatch · Guide + story
  33. 33

    Pipes

    Resident identity applied to provider connections through a least-privilege gateway.

    M5Stack Stopwatch · Guide + story
  34. 34

    Pi Pet

    One Grok Bot–style pet per running pi coding-agent session: it thinks, works, gets blocked, celebrates, and waits for you.

    M5Stack Stopwatch · Guide + story
  35. 35

    Agent Dial

    An honest fork of the OpenHarness dial for the Stopwatch: see every agent session, answer, approve, stop, and speak tasks, whatever harness runs them.

    M5Stack Stopwatch · Guide + story

The workbench

Different boards. More possibilities.

Rectangular screens, round screens, buttons you can feel. Every project names its dev kit so you can match the firmware to the hardware.

Illustration of the Waveshare Touch AMOLED 1.8 development kit

6 published projects

Waveshare Touch AMOLED 1.8

ESP32-S3-Touch-AMOLED-1.8 V2

1.8″ AMOLED · 368 × 448 · ESP32-S3

The first workbench: a rectangular touch display with room for text, portraits, and motion.

Illustration of the Waveshare Touch AMOLED 1.75-B development kit

On the workbench · projects to come

Waveshare Touch AMOLED 1.75-B

ESP32-S3-Touch-AMOLED-1.75-B

1.75″ round AMOLED · 466 × 466 · ESP32-S3

A circular touch display in a protective case. A new canvas for round interfaces.

Illustration of the M5Stack Stopwatch development kit

29 published projects

M5Stack Stopwatch

Stopwatch Dev Kit (ESP32-S3) · C152

1.75″ round AMOLED · 466 × 466 · ESP32-S3

A round touch display, programmable buttons, and a built-in battery for portable projects.

Use each lesson’s guide for its hardware revision and setup. Working with an agent? Get the Markdown index ↗