Projects / Desk gadgets

Wi-Fi Pixel Matrix Clock

A sleek retro LED clock that sets itself from the internet – plug it in, join Wi-Fi from your phone, done.

Case front with diffuser fitted

Photo: Pugwash, Printables model 1610762 (CC BY 4.0)

Choose how it arrives

₹1,658

Before shipping. The courier fee is calculated from your PIN.

  • 5 printed parts in two colours
  • ESP32 board and MAX7219 32×8 LED matrix
  • Jumper wires, M3 screws, micro-USB cable
  • Firmware sketch and illustrated guide
Order diy kit

Beginner

What it is

Glowing red pixels behind a smoked front, in a slim two-tone case. This clock looks great on a desk, a bookshelf or beside the TV. It fetches the exact time from the internet, so it never needs setting and never drifts, and every minute it scrolls the day and date across the display.

Setup is friendly. The first time you plug it in, it creates its own Wi-Fi hotspot. Join it from your phone, pick your home network, and the clock remembers it from then on. At night it dims itself automatically so it won't light up the bedroom.

There's no soldering: the display connects to the ESP32 with five push-on jumper wires, and the case is press-fit with just two small screws. That makes it a perfect first project, a classroom activity or a thoughtful handmade gift.

Components

Each line is the price of that part. The tier price above is the full price for that way of buying it, before shipping.

PartQtyEachLine
ESP32 30-pin development board (ESP-WROOM-32, micro-USB)1₹453₹453
MAX7219 4-in-1 dot-matrix LED module (32×8)1₹271₹271
Female-to-female jumper wires (set of 10)1₹19₹19
M3 × 8 mm Phillips bolts (pack of 4; 2 used)1₹5₹5
Micro-USB cable 1 m (power + programming)1₹55₹55

Printed parts

Print just the parts · ₹835 before shipping.

Build guide

The DIY kit includes this guide. Assembled and fully built orders include it too, for care and the steps that remain.

Build your Wi-Fi Pixel Matrix Clock

This is the clock you'll never have to set. It gets the time from the internet, shows it in chunky retro pixels behind a smoked window, scrolls the date every minute and dims itself at bedtime. The build takes about an hour, and there's no soldering at all.

Which version do you have? - DIY kit: follow every step. - Assembled: the front, display and wiring are done and the firmware is flashed. Start at Step 6, then First-time Wi-Fi setup. - Fully built: plug it into a USB charger and jump to First-time Wi-Fi setup.

The finished clock housing

What's in the box

| Item | Qty | |---|---| | Printed case back, case front, screen support, fascia, diffuser | 5 | | ESP32 30-pin development board | 1 | | MAX7219 4-in-1 LED matrix module (32 × 8) | 1 | | Female-to-female jumper wires | 5 used (10 supplied) | | M3 × 8 mm screws | 2 used (4 supplied) | | Micro-USB cable | 1 |

You'll also need any USB phone charger (5 V, 1 A or more) to power the clock.

3D render of the printed parts (not a photo)

Tools you'll need

  • Small Phillips screwdriver
  • A computer with the Arduino IDE (DIY kit only; see Firmware)
  • A smartphone for Wi-Fi setup

Safety notes

  • The clock runs on safe 5 V USB power. Use a reputable phone charger, not a damaged or unbranded one.
  • Unplug the USB cable before connecting or moving jumper wires.
  • The LED module's pins are sharp; handle it by the edges.
  • Keep the clock away from water and don't block the case completely in hot, direct sunlight.

Step-by-step build

1. Diffuser into the case front

Lay the thin diffuser sheet into the recess on the outside face of the case front. It's only one layer thick, so handle it gently. Diffuser in place

2. Fascia

Press the coloured fascia frame into the front of the case over the diffuser until it sits flush. It holds the diffuser in place. Fascia fitted

3. Connect the display wires first

Push five female-to-female jumpers onto the module's input header. That's the end labelled VCC, GND, DIN, CS, CLK; ignore the DOUT end. Gently bend the wires outward so the module can lie flat.

4. Display into the case front

Turn the case front over and lay the LED module into the back of it, LEDs facing the diffuser, with the wired end towards the side opening. Display placed

5. Screen support

Lay the screen support frame on top of the module, feeding the wires through its notch. It holds the display snug against the diffuser. Screen support fitted

6. Wire to the ESP32

Connect the five jumpers to the ESP32 exactly as in the wiring table below. Display wired to the ESP32

7. ESP32 into the case back

Place the ESP32 into the case back with its micro-USB port lined up with the opening, and fix it with two M3 × 8 mm screws. Don't over-tighten. ESP32 in the case back

8. Close the case

Flash the firmware first if you haven't already (see below). Then turn the case back upside down and carefully guide its four pins through the four holes in the screen support and into the case front. Press firmly together. Check no wire is trapped in the seam.

Wiring

Wiring diagram

| MAX7219 (input side) | ESP32 pin | Wire job | |---|---|---| | VCC | VIN (5 V) | power | | GND | GND | ground | | DIN | GPIO 23 | data | | CS | GPIO 5 | chip select | | CLK | GPIO 18 | clock |

On most ESP32 boards these pins are printed as D23, D5 and D18.

Firmware flashing

The clock's firmware is in this project at docs/firmware/PixelClock/PixelClock.ino. It was written for this kit and is MIT-licensed.

  1. Install the Arduino IDE (2.x).
  2. Add ESP32 support. In File → Preferences → Additional boards manager URLs paste https://espressif.github.io/arduino-esp32/package_esp32_index.json. Then go to Boards Manager, search esp32 and install esp32 by Espressif Systems.
  3. In Library Manager, install these three libraries:

- MD_Parola by majicDesigns (<https://github.com/MajicDesigns/MD_Parola>) - MD_MAX72XX by majicDesigns (<https://github.com/MajicDesigns/MD_MAX72XX>) - WiFiManager by tzapu (<https://github.com/tzapu/WiFiManager>)

  1. Open PixelClock.ino. Select Tools → Board → ESP32 Dev Module and choose the right Port.

- Port not showing? Install the CP210x USB driver from Silicon Labs, or the CH340 driver if your board has that chip.

  1. Click Upload. If it stops at "Connecting…", hold the board's BOOT button until the upload starts.

The settings at the top of the sketch let you change the time zone, switch to a 12-hour clock, and set day/night brightness and the night hours.

First-time Wi-Fi setup

  1. Plug the clock into a USB charger. It shows WiFi, then scrolls Join PixelClock-Setup and shows SETUP.
  2. On your phone, join the Wi-Fi network PixelClock-Setup. A setup page usually opens by itself; if not, open a browser to 192.168.4.1.
  3. Tap Configure WiFi, pick your home network (2.4 GHz), enter the password and save.
  4. The clock shows Sync, then Hello!, then the time. It remembers your network from now on.

Testing

  • The colon blinks once a second.
  • At :30 seconds past each minute the day and date scroll across. They don't scroll during night hours.
  • Between 10 pm and 7 am the display dims to its lowest brightness.

Troubleshooting

| Problem | Try this | |---|---| | Display shows garbled or mirrored pixels | Change HARDWARE_TYPE in the sketch from FC16_HW to GENERIC_HW (or PAROLA_HW) and upload again. | | Display stays dark | Check VCC → VIN and GND → GND, and that the wires are on the input (DIN) end of the module. Try a different charger. | | Random flicker / some pixels wrong | Shorten or reseat the jumpers. A few modules want a stronger logic signal, so keep wires under 20 cm. | | Stuck on "SETUP" | Join PixelClock-Setup from your phone. The setup page times out after 5 minutes and the clock restarts to try again. | | Shows "--:--" | It can't reach a time server. Check your router has internet access and is 2.4 GHz (the ESP32 can't use 5 GHz-only networks). | | Wrong time | Set TZ_INFO to your zone (India is IST-5:30). | | Want to change Wi-Fi network | Turn your old router off (or move out of range) and power-cycle the clock. It will reopen the setup hotspot. |

Make it yours

Choose two-tone colours, add your name to the scrolling text, add a birthday countdown, or show cricket scores and weather. We can build these for you. Ask about custom ideation and consulting.

Credits

  • Clock housing "ESP32 dev + MAX7219 Clock housing" by Pugwash (<https://www.printables.com/model/1610762-esp32-dev-max7219-clock-housing>), CC BY 4.0. Photos by Pugwash, CC BY 4.0. We use the designer's STLs unmodified.
  • Firmware written by MyPartLab (MIT). It uses MD_Parola and MD_MAX72XX by MajicDesigns (LGPL-2.1) and WiFiManager by tzapu (MIT).
  • This guide, the wiring diagram and the renders are original MyPartLab material.

Ways to change it

Customise this project

Source: ESP32 dev + MAX7219 Clock housing by Pugwash (Printables). CC-BY-4.0. View source