1 / 6
ESP32 C6 Clock | Dual 8×8 Matrix + Button Controls — zdjęcie 1
1 / 6

ESP32 C6 Clock | Dual 8×8 Matrix + Button Controls

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

Compact ESP32-C6 bedside clock with dual MAX7219 matrices, one-button controls, Wi-Fi time sync and saved brightness.

Ocena
0 / 5
Polubienia
4
Pobrania
10
Wydruki
0
Wyświetlenia
34
Oceny
0

Aktualizacja u źródła:

Informacje o modelu

Źródło
Printables
Kategoria
Electronics
Licencja
Creative Commons — Attribution — Noncommercial — Share Alike

Minimal ESP32-C6 Bedside Clock

I designed this clock because I wanted something simple for the bedside: no permanently glowing screen, no unnecessary controls, and no bright display lighting up the room all night.

The clock uses two 8×8 MAX7219 LED matrix modules side-by-side to create a compact 16×8 display. Most of the time the matrices are completely switched off. When the button is pressed, the display wakes for a few seconds and then automatically goes dark again.

The electronics are deliberately minimal. The build uses an ESP32-C6-Zero, two MAX7219 matrix modules, one momentary metal push button, and jumper/soldered wiring. The ESP32 connects to Wi-Fi and synchronizes the time using NTP, so no separate RTC module is required.

The enclosure is designed so the wiring itself helps keep the ESP32 in place. There is no dedicated clip or screw mount for the ESP32; once the wiring is routed into the internal cable path, the cable tension and pressure hold the board securely enough in its intended location.

The included model photos show the intended cable routing and component placement and are useful during assembly.

 

Assembly note: The top cover slides into place and is held by a light friction fit. It is secure enough for normal use, but intentionally not too tight, so it can be removed easily for access to the electronics. The split sections of the main enclosure body should be permanently joined with glue during assembly.

 

Controls

Single press
Shows the current time.

Double press
Shows the current date in DD-MM format.

Press and hold for about 1.2 seconds
Enters brightness adjustment mode.

While in brightness mode, short presses cycle through four brightness presets. After a few seconds without input, the selected brightness is automatically saved to the ESP32's flash memory.

Keep holding for about 5 seconds
Forces the ESP32 to reconnect to Wi-Fi and manually synchronize the time using NTP.

Features

  • 16×8 LED display made from two 8×8 MAX7219 modules

  • Display normally stays completely off

  • One-button interface

  • 24-hour time display

  • Date display in DD-MM

  • Four selectable brightness levels

  • Brightness setting saved between power cycles

  • Automatic Wi-Fi/NTP time synchronization

  • Automatic daylight-saving-time handling

  • Manual NTP resynchronization

  • Automatic periodic resynchronization

  • Wi-Fi sync error indication

  • No RTC required

  • No external button resistor required

  • USB powered

  • Compact 3D-printed enclosure

  • ESP32 Wi-Fi disabled after synchronization

  • Internal cable-routing path

  • Pressure/tension-retained ESP32 placement

Parts list

Qty

Component

Model / specification

1

Microcontroller

Waveshare ESP32-C6-Zero

2

LED matrix modules

8×8 red LED matrix module with MAX7219 driver

2

Matrix driver IC

MAX7219CNG, DIP-24 — already fitted to the modules

1

Push button

Momentary metal panel-mount push button, approximately 16 mm threaded mounting diameter

1

USB cable

USB-C cable

—

Wiring

Jumper wire or soldered hookup wire

1

Enclosure

Included 3D-print files

Important component dimensions

The model's button opening is:

16.5 mm

So the threaded/screwing section of the button should be approximately:

16 mm diameter

The display mounting-hole spacing used in the enclosure is approximately:

45 mm × 27 mm

Measure your own MAX7219 modules before printing if they are from a different manufacturer, because generic boards can vary slightly.

Wiring

ESP32-C6-Zero        MAX7219 Display 1
--------------------------------------
5V / VBUS   --->  VCC
GND            --->  GND
GPIO 2         --->  DIN
GPIO 4         --->  CS
GPIO 3         --->  CLK


Display 1 OUT        Display 2 IN
--------------------------------------
VCC           --->  VCC
GND         --->  GND
DOUT       --->  DIN
CS             --->  CS
CLK           --->  CLK


Button
--------------------------------------
GPIO 5 ---- momentary button ---- GND

Assembly instructions

The order of assembly matters because the internal cable path and button mounting are easier to work with before everything is fully closed.

  1. Mount the button to the top/front cover first. Insert the button through the 16.5 mm opening from the outside, then screw the supplied metal retaining part/nut onto the threaded section from the inside to lock the button securely in place.

  2. Route the button wires into the main enclosure. Feed the button cables through the dedicated hole in the main enclosure. These wires pass through the enclosure and continue toward the ESP32.

  3. Interconnect the two MAX7219 displays before placing them into the enclosure. It is easiest to connect the display-to-display wiring first, especially DOUT → DIN, along with VCC, GND, CS and CLK.

  4. Connect the display assembly to the ESP32 before final cable routing. Once the two matrices are linked together, connect the first display to the ESP32-C6-Zero.

  5. Route the wiring under the internal cable pathway. The model includes a pathway/channel intended to keep the wires low and organized. Arrange the wires underneath this section rather than letting them sit above the display modules.

  6. Position the ESP32 in its intended area. The ESP32 does not have a dedicated screw mount or printed retaining clip. Instead, it sits in place due to the pressure and tension created by the routed wires. Once the wiring is arranged properly, the board should remain stable inside the enclosure.

  7. Check the included model/reference photos if the cable routing or ESP32 position is unclear. The internal photos show the intended wiring layout and component orientation.

  8. Test the clock before fully closing the enclosure.

Display mounting dimensions

The display modules are designed around mounting-hole center spacing of approximately:

  • 45 mm vertically 

  • 27 mm horizontally

Check these dimensions against your modules before committing to a print if your boards are not the same style.

Printing notes

Recommended starting settings:

  • Material: PLA or PETG

  • Layer height: 0.20 mm

  • Walls: 3

  • Infill: 15–20%

  • Supports: depending on your slicer/orientation

  • Test-fit the button and display modules before final assembly

Generic MAX7219 modules can vary slightly in board dimensions and mounting-hole position, so verify your modules if they are not visually identical to the ones shown.

Firmware

The included Arduino/C++ firmware provides:

Short press → show time
Double press → show date
Hold ~1.2 sec → brightness settings
Short press in
brightness menu→ cycle brightness
No input ~3 sec → save brightness
Hold ~5 sec → manual Wi-Fi/NTP sync

 

The clock also automatically resynchronizes its time periodically.

Before flashing, enter your Wi-Fi details:

 

const char* WIFI_SSID     = "YOUR_WIFI_NAME";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";

 

The included timezone configuration is for Greece:

const char* TIMEZONE =
 "EET-2EEST,M3.5.0/3,M10.5.0/4";

 

If you are elsewhere, replace this with the appropriate POSIX timezone string for your location.

Tagi