Skip to the content
PCBKitNew board
2 layers69.2 × 28.2 mmRGB Clock Controller, the printed circuit board in 3D

RGB Clock Controller

PerlPooch/Clock2

RGB Pixel Clock

Size
69.2 × 28.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
24
Pads
86
Tracks, vias
177, 6
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
5 Nov 2025
Updated
16 Nov 2025

Overview

RGB Clock Controller is an open-source printed circuit board by PerlPooch, from the PerlPooch/Clock repository on GitHub. It is a 2-layer board of 69.2 × 28.2 mm with 15 parts on 24 nets, routed with 177 tracks and 6 vias.

Its parts include 5 capacitors, 4 connectors, 2 resistors, 2 ICs and 1 switch. It belongs with the lEDs and displays boards and the ESP8266 boards of this library.

README

README.md

Hardware

You can power Clock via the NodeMCU micro-USB port, but it is preferable to provide +5V power via the on-board connector or terminal J1. Driving the LEDs brighter than 50% when powered via the micro-USB connector may damage the NodeMCU.

A ring of 60 WS2812B LEDs are connected to J5 or J2 (but not both). Pin 1 is ground, Pin 2 is data, Pin 3 is +5. See [[RGB Clock Controller/Schematic.pdf][The Schematic]] for details.

Dual connectors J3 are provided for an optional small OLED display. Select the header that matches the orientation of the display.

Software 2.11

Wifi Configuration

If there is no configuration present or Clock is powered-on with button (SW3) depressed, Clock enters WiFi configuration mode.

In this mode, Clock will create a WiFi access point with the SSID Clock xx:xx:xx:xx:xx:xx. Join this AP with the password 12345678 and you will be presented with menus through which you can select and join an Internet-connected AP.

Once configured, Clock will reboot.

USB-Serial Access

Clock will provide a serial interface via USB at 115200/8/n/1.

OpenWeather

If you have an OpenWeather key, Clock will obtain the weather by making requests to

text
GET http://api.openweathermap.org/data/2.5/weather

using the configured key. You must set owAppKey, latitude, and longitude.

Start Up

Clock will test the display, connect to the configured WiFi AP, and retrieve the current date and time via NTP.

Configuration

You can reach Clock via HTTP at its address. If you don't know the address that was assigned, you can enter WiFi Configuration mode and view the assigned IP address. Alternatively, the assigned IP address is available via the Serial connection upon start up.

Query Values and Status

Making a GET request to / will return a JSON payload of the current configuration.

text
http://<clockip>/
FieldMeaning / Range
"sleepRemaining"<int> – Remaining sleep time in seconds
"timezone"<int> – Timezone offset from OpenWeather data
"nextNTPUpdate"<int> – Seconds until the next NTP time update
"nextOWUpdate"<int> – Seconds until the next OpenWeather update
"temperature"<int> – Current temperature (°F)
"lastOWResponse"<int> – Last HTTP response code from OpenWeather
"time"<string> – Current time
"display"<string> – Display state (Day, Night, Sleep, or Preparing)
"version"<string> – Clock firmware version

Set Values

Making a GET request with a query-string can configure the options.

For example, to set the dim intensity and bright intensity for both daytime and nighttime modes:

text
http://clockip/?dim=7&bright=20&dimNight=7&brightNight=20
OptionMeaning / Range
"dim"0 .. 100 – Brightness of standard dots during Day time
"bright"0 .. 100 – Brightness of tick dots during Day time
"dimNight"0 .. 100 – Brightness of standard dots during Night time
"brightNight"0 .. 100 – Brightness of tick dots during Night time
"temp"0 .. 100 – Brightness of temperature dot when sleeping
"hue"0 .. 100 – Universal color shift to apply
"coldHue"0 .. 100 – Color of temperature dot when temperature < 60°
"warmHue"0 .. 100 – Color of temperature dot when temperature > 60°
"nightHour"0 .. 23 – Hour to start Night time
"dayHour"0 .. 23 – Hour to end Night time
"owAppKey"<string> – OpenWeather API Key
"latitude"<float> – Location Latitude
"longitude"<float> – Location Longitude
"displaySleep"<int> – Sleep the display for this many seconds
"reboot"<> – Reboot

OTA Firmware Update

text
GET http://<clockip>/_ac/update

WiFi Configuration Changes

text
GET http://<clockip>/_ac/

Building

Clock is based on the (now old) NodeMCU 12E ESP8266 board.

Libraries

The Arduino community is great, offering many useful libraries to build upon. This project requires:

  • SPI
  • Wire
  • Adafruit GFX Library
  • Adafruit SSD1306
  • arduino-timer
  • ArduinoJson
  • ESP8266WiFi
  • ESP8266WebServer
  • AutoConnect
  • LittleFS
  • ESP8266HTTPClient
  • NeoPixelBus by Makuna
  • NTPClient

These Libraries, in turn, require:

  • Adafruit BusIO
  • DNSServer
  • EEPROM
  • PageBuilder
  • SD
  • SDFS
  • ESP8266SdFat
  • Ticker
  • ESP8266httpUpdate

Parts

15
QtyValueFootprintReferences
3X7R 100nF 25VCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C4, C5
210KResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R4
2LEDsTerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-3-2.54_1x03_P2.54mm_HorizontalJ2, J5
2X7R 1.0uF 25VCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C3
1DispConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1NodeMCU_ESP12E_ModuleModule:NodeMCUA1
1PowerTerminalBlock_Phoenix:TerminalBlock_Phoenix_MPT-0,5-2-2.54_1x02_P2.54mm_HorizontalJ1
1SN74AHCT125DBRPackage_SO:SSOP-14_5.3x6.2mm_P0.65mmU2
1SSD1306_128x32Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalU1
1SW_PushButton_Switch_THT:SW_PUSH_6mm_H4.3mmSW3

Questions

How big is the RGB Clock Controller PCB?

It measures 69.2 × 28.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the RGB Clock Controller use?

15 parts. 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 RGB Clock Controller KiCad files?

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

Can I use the RGB Clock Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask PerlPooch before reusing the design.

More from PerlPooch/Clock

1
  • 2 layers43.4 × 129.5 mmRGB Clock, the printed circuit board in 3D

    RGB Clock

    PerlPooch/Clock

    RGB Pixel Clock

    13 parts2

Similar boards

  • 2 layers19 × 76 mmSub, the printed circuit board in 3D

    Sub

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    15 parts3kApache-2.0
  • 2 layers26.7 × 62.2 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    15 parts1kGPL-3.0
  • 2 layers100 × 44 mmVideoslot, the printed circuit board in 3D

    Videoslot

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    15 parts1k
  • 2 layers91 × 51 mmBusinessCard, the printed circuit board in 3D

    BusinessCard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    15 parts915
  • 2 layers24.3 × 57.9 mmFlosspods pro flex, the printed circuit board in 3D

    Flosspods pro flex

    kenp-io/not-for-airpods-repairs

    The content of this repository is licensed under the WTFPL License. Please have a close look at the terms before using this material.

    15 parts609WTFPL
  • 2 layers20.3 × 15.2 mmL0 Load, the printed circuit board in 3D

    L0 Load

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    15 parts546MIT
  • 2 layers68 × 50 mmEleLab v2 PowerFeed, the printed circuit board in 3D

    EleLab v2 PowerFeed

    Chrismettal/EleLab_v2

    Cheap DIY lab system for hobbyists and the tinkering folk

    15 parts531GPL-3.0
  • 2 layers50.8 × 35.6 mmInterface, the printed circuit board in 3D

    Interface

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    15 parts454