Skip to the content
2 layers80 × 100 mmWifi clock, the printed circuit board in 3D

WiFi-synced clock using ESP32 + custom PCB. Drives 7-segment display via shift registers. No RTC needed.

Size
80 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
45
Pads
82
Tracks, vias
54, 0
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Mar 2026
Updated
2 Aug 2026

Overview

Wifi clock is an open-source printed circuit board by VJPatz, from the VJPatz/wifi_clock repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 100 mm with 19 parts on 45 nets, routed with 54 tracks and 0 vias.

It is built around the ESP32-DEVKITC-32E, L7805 and BC547. Its parts include 9 resistors, 3 capacitors, 3 transistors, 2 ICs and 2 connectors. It belongs with the radio and wireless and lEDs and displays boards and the ESP32 boards of this library.

Main components

3

README

README.md

WiFi Clock — ESP32 + 7-Segment Display

A WiFi-synced clock that runs on any 7-segment display driven by shift registers. No RTC needed — it pulls time from NTP on boot and stays accurate.

If you have a 4-digit 7-segment display with shift registers (like HEF4094 or 74HC595), this firmware turns your ESP32 into a wall clock in minutes.


Demo

WiFi Clock Demo


Features

  • Syncs time over WiFi via NTP (no RTC module needed)
  • Clean modular codebase — display, WiFi, and time logic are fully separated

Hardware

ComponentDetails
MCUESP32 (any dev board)
Display4-digit 7-segment, Common Anode
Shift RegistersHEF4094BT × 4 (daisy-chained)
Logic Level12V display, 3.3V ESP32 — BC547 transistor stage handles the shift

PCB design files (KiCad schematic + gerbers) are in the /hardware folder.


Setup

1. Clone and open in PlatformIO

bash
git clone https://github.com/VJPatz/wifi_clock.git
cd wifi_clock

2. Set your WiFi credentials in include/config.h

cpp
#define WIFI_SSID     "your_ssid"
#define WIFI_PASSWORD "your_password"

3. Flash to ESP32

bash
pio run --target upload

That's it. The clock syncs on boot and displays time immediately.


Adapting to your display

If your display has a different segment wiring order, edit src/display.cpp — the segment-to-bit mapping is clearly defined there for each digit position.


Project Structure

text
wifi_clock/
├── src/
│   ├── main.cpp          # Main loop
│   ├── display.cpp       # Shift register + segment logic
│   ├── wifi_service.cpp  # WiFi connection
│   └── time_service.cpp  # NTP sync
├── include/
│   └── config.h          # WiFi, GPIO, NTP config
├── hardware/             # KiCad schematic + PCB + gerbers
└── platformio.ini

License

MIT

Parts

19
QtyValueFootprintReferences
610kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5, R6, R7, R8, R9
31kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3
3BC547Package_TO_SOT_THT:TO-92_InlineQ1, Q2, Q3
2100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C2
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC3
1Barrel JackConnector_BarrelJack:BarrelJack_HorizontalJ2
1Display ConnectorConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ1
1ESP32-DEVKITC-32EESP32-DEVKITC-32E:MODULE_ESP32-DEVKITC-32EU1
1L7805Package_TO_SOT_THT:TO-220-3_VerticalU2

Similar boards

  • 2 layersCircuit smart soja, the printed circuit board in 3D

    Circuit smart soja

    virgile-tchidehou/smart-soja

    An autonomous IoT-based mobile system for soybean pre-processing, integrating embedded systems, industrial automation, solar energy and cloud connectivity.

    81 parts1MIT
  • 2 layers124 × 112 mmVentSense Stage2, the printed circuit board in 3D

    VentSense Stage2

    Aryan-swag/VentSense

    VentSense: 2-of-3 gas/temperature/voltage early warning and per-cell isolation for small Li-ion packs. Vishwakarma Awards 2026-27 Stage 2 (VK26-IITH-SE-0279)

    93 parts
  • 2 layers113.7 × 70.2 mmControl, the printed circuit board in 3D

    Control

    zeyad-hisham-cyper/Solar-IoT-Smart-Irrigation-System

    A distributed, low-power irrigation platform that closes the loop between soil sensors in the field and a phone in your hand. It is built from three cooperating subsystems:

    30 partsMIT
  • 2 layers72.6 × 51.8 mmWinder V1, the printed circuit board in 3D

    Winder V1

    AnotherBuildCorner/Pickup_Winder

    A DIY pickup winder with CNC capability, from mostly off the shelf parts

    16 parts1
  • 2 layers93.4 × 57.9 mmESP32 RST Monitoring, the printed circuit board in 3D

    ESP32 RST Monitoring

    CasuariusSYC/3-Phase-Electricity-Monitoring

    This project is a module to monitor the status of a 3-phase electricity supply and record any power outages. The data can be accessed wirelessly. Currently, the features are limited to detecting the power state only.

    32 parts
  • 2 layers93 × 67.5 mmControl Board V2.1, the printed circuit board in 3D

    Control Board V2.1

    AnotherBuildCorner/Relay_Switcher

    DIY Relay bypass switcher for audio applications

    42 parts
  • 2 layers132.1 × 45.7 mmIPoS, the printed circuit board in 3D

    IPoS

    peterheinrich/InternetOverSpaghetti

    Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.

    42 parts342
  • 2 layers167.8 × 200.6 mmRandom Jazz Generator, the printed circuit board in 3D

    Random Jazz Generator

    telec16/modular-synth

    Little side project, don't expect much updates.

    132 parts16

Questions

How big is the Wifi clock PCB?

It measures 80 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Wifi clock use?

19 parts, built around the ESP32-DEVKITC-32E, L7805 and BC547. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Wifi clock KiCad files?

From the VJPatz/wifi_clock repository on GitHub, at the commit this page was made from: the board is hardware/wifi_clock.kicad_pcb and its schematic hardware/wifi_clock.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Wifi clock design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).