
Featured on Hackaday, XDA Developers and Hackster!
ESPTimeCast is a WiFi-connected LED matrix clock and weather station that:
Automatically syncs the time via NTP
Fetches live weather data from OpenWeatherMap
Includes a mobile-friendly web interface — no coding required after flashing
Alternates between time and weather on a bright 32×8 LED matrix
Skip Arduino IDE and manual flashing — the ESPTimeCast Web Installer lets you go from zero to a working ESP8266/ESP32 board in under a minute.
Supports: ESP8266, ESP32, ESP32-S2, ESP32-C3, ESP32-S3
👉 Try it here: https://esptimecast.github.io
Note: Requires Chrome, Edge, or Brave (Web Serial support).
1× Development board ESP8266 or ESP32
1× MAX7219 32×8 LED Dot Matrix
USB cable, jumper wires, soldering iron, solder, flux
3D-printed case (this model!)
Browser-based setup — no hardcoding
Settings saved in flash (LittleFS)
Smooth animated display
Compact, desk-friendly form factor
Print-ready without supports
Home Assistant compatible
Easy to assemble
Two case variants:
Stylish (Solderless): Updated to fit MAX7219 modules with 45° bended pins and dupont wires; still fits ESP boards with header pins, and the ESP board pins can also be bent inwards if needed.
Retro: Original design; intended for ESP boards without header pins. MAX7219 pins can be bent inwards to fit under the LED modules, but headered boards will usually not fit.
Updated diffuser: Thickness (0.2 mm, 0.4 mm, 0.6 mm) can be adjusted for PLA or PETG prints, letting makers control translucency and light diffusion.
🧠 Full firmware, wiring, and setup guide:
👉 https://github.com/mfactory-osaka/ESPTimeCast
💻 Web Installer (fastest way to flash):
👉 https://esptimecast.github.io
Layer height: 0.2 mm
Walls: 4 (use a strong wall count for rigidity)
Infill: 10% (enough to hold shape but keeps print fast and light)
Wall Order / Outer Wall First: Enable if your slicer supports it (improves surface finish and smoothness on visible edges)
Supports: Not required (design is print-ready without supports)
Material: PLA or PETG (PETG works well for more durable prints)
Wall Generator: Arachne or equivalent is recommended for best wall quality
Tips: For the diffuser, consider printing a slightly thicker version if you are using PETG or want extra rigidity.
Fits: Common MAX7219 modules + Wemos D1 Mini boards (header or header-less versions, depending on case style)
3D-printed springs included: Two springs can be printed and attached to the MAX7219 PCB with thick double-sided tape. They provide gentle pressure between the lid and the MAX module, keeping the board securely in place. Springs can be trimmed or cut after printing if needed to adjust the pressure or fit.
ESP board mounting: The ESP board sits on top of the MAX7219, also attached with thick double-sided tape. Pins can be bent inward if needed (for the stylish/solderless case).
Diffuser: Glues in place to complete the “sandwich” structure. Adjust thickness (0.2 mm, 0.4 mm, 0.6 mm) depending on filament and desired translucency.
💬 Notes
This project was designed to be functional, fast to print, and easy to assemble.
If you build one, I’d love to see your version - please post a Make or share your ideas for the next version!
⭐ Enjoy the project?
Check out the firmware on GitHub and consider leaving it a ⭐ - it helps a lot!
📣 Join the Community
Have questions or want to share your build?
Come hang out with other ESPTimeCast makers: r/ESPTimeCast
The author marked this model as their own original creation.