

Lightclock
Light Clock A custom PCB-based Clock/Alarm with a runrise alarm, a circle of capacitive touch controls to easily choose the time and a 2.42" OLED display
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 202
- Nets
- 203
- Pads
- 582
- Tracks, vias
- 1,733, 200
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 13 May 2026
- Updated
- 8 Aug 2026
Overview
Lightclock is an open-source printed circuit board by Anvarys, from the Anvarys/lightclock repository on GitHub. It is a 2-layer board with 202 parts on 203 nets, routed with 1,733 tracks and 200 vias.
It is built around the RP2040, MPR121QR2 and CH224K, with the TPS62160DGKR, W25Q64JVSSIQ and SX3B12.000F1210F30 among its other parts. Its parts include 74 diodes, 35 capacitors, 28 resistors, 12 ICs and 3 transistors. It belongs with the lEDs and displays boards and the RP2040 boards of this library.
Main components
12RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)MPR121QR2
QFN-20(3x3)-40℃~+85℃ 1.71V~3.6V 12 29uA 2kV 3uA Capacitive Touch QFN-20(3x3) Touch Sensors ROHSNXP SemiconductorsTouch SensorsCH224K
ESSOP-10-150mil-1mm-40℃~+90℃ 100W 4V~30V 5V、9V、12V、15V、20V Overvoltage Protection、Thermal Protection PD 3.0 Power Receiver Controller ESSOP-10-150mil-1mm USB PD ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersTPS62160DGKR
MSOP-8-40℃~+85℃@(TA) 1 17uA 1A 2.25MHz 3V~17V 900mV~6V Adjustable Buck Buck Built-in Yes MSOP-8 DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersW25Q64JVSSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 10uA 133MHz 150ms@(64KB) 2.7V~3.6V 20 Years 3ms 64Mbit SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHSX3B12.000F1210F30
SMD3225-4P-40℃~+85℃ 100Ω 12MHz 12pF Crystal Oscillator ±10ppm ±30ppm SMD3225-4P Crystals ROHSShenzhen SCTF ElecCrystalsDS3231MZ/V+
SOIC-8-40℃~+85℃ 2.3V~5.5V Built-in I2C Temperature compensation、Backup power management and battery charging、Alarm function、Locking and tamper-proof、Periodic interrupt output SOIC-8 Real Time Clocks ROHSMaxim Integrated (Analog Devices)Real Time ClocksPM254-1-06-W-8.5
弯插,P=2.54mm-40℃~+105℃ 1 1x6P 2.54mm 3A 6P 8.5mm Copper alloy Right Angle Side Square Hole Push-Pull,P=2.54mm Female Headers ROHSHCTLFemale HeadersB220A
SMA-65℃~+150℃ 1 Independent 20V 2A 500mV@2A 500uA@20V 50A SMA Schottky Diodes ROHSDiodes IncorporatedSchottky DiodesAO3400A
SOT-23-55℃~+150℃ 1 N-channel 1.45V 1.4W 30V 48mΩ@2.5V 5.7A 50pF 630pF 75pF 7nC@10V N-Channel SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsAO3401A
SOT-231 P-Channel 14nC@10V 30V 47mΩ@10V、60mΩ@4.5V、85mΩ@2.5V 4A 55pF 645pF 80pF 900mV SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsBAT-HLD-001
SMDSMD Button And Strip Battery Connector ROHSTE ConnectivityButton And Strip Battery Connector
README
README.md
Light Clock
A custom PCB-based Clock/Alarm with a runrise alarm, a circle of capacitive touch controls to easily choose the time and a 2.42" OLED display
About the project
A custom PCB-based Clock/Alarm with a 3d printed enclosure. It features a runrise alarm option (72 LEDs), a 2.42" OLED display, many capacitive touch controls (24 around in a circle and 4 for the main controls) and a buzzer.
I made this project because I wanted to have a runrise alarm to wake up more naturally and also be easy to set up alarms with few clicks and without any additional installation required.
Light Clock's features in more detail
Sunrise alarm & LEDs
Light Clock has a runsrise type of alarm, which will slowly rise the luminosity up to a set time for you to wake up naturally, like with a real sunrise. This can be calibrated, meaning you can set up a test alarm on a day you don't need to wake up at a certain time and see at which luminosity you will wake up. There is also a buzzer (the shaky circle on the simplified design picture) to wake you up with it, just in case, as you might not wake up from the light.
It uses 72LEDs with 3000K warm lighting, with a total maximum luminosity flux of over 2000 lumens. They can also be lighten up in individual groups of 3, so a total of 24 groups is present, to show the current time using those same LEDs but dimmed, also as it has 24 groups it can do both 24 and 12 sections for the time, which you can choose as you prefer.
Capacitive touch controls
This project has a total of 28 capacitive touch sensors (you can identify all of them on the simplified design picture as the ones having unclear borders), they were made by placing pads on the PCB and using ICs to measure precise capacitance values.
4 of them are used to control the menu: 2 arrows for navigating between options and change values, a circle to select an option and a square be used as a return button.
And the other 24 are distributed evenly in a circle next to the LEDs, they will be used to easily choose time of your alarm or change number variables. For example if you need to setup an alarm for 10:15am you can simply click the 10th pad counting clockwise from the top to set the hour, and then click on 7th pad to set the minutes.
Display
The display is a 2.42" OLED display from Waveshare. It has a resolution of 128x64, which is not detailed, but very sufficent for pixeled fonts and interfaces. It will display the time in the format you prefer, and it can be set into a "show on touch" mode, so that the display would be off by default but when you touch any capacitive touch sensor it will show the time for a certain period of time.
Other
It also has an RTC clock with a coin battery to sustain precise time for months, while the battery is not required it is very recommended as then if you power off the clock you won't need to set up the time again each time.
Since the LEDs and ICs produce heat there is a 40x40x7mm fan on the back which is very quiet, so should not be a worry that it might be disturbing.
Also I added 4 exposed GPIO pads on the PCB that you can use them to integrate something extra to this device if you want to.
How to build your own light clock
First you would want to buy all the required components found in the BOM, order the pcb using the gerbers from the production folder (you can also find the positions file which is required for JLCPCB to solder components for you, which is also an option). Then you will need to solder everything by looking at the schematic for references of the components. Also you will need to 3d print the enclosure, files of which you can find in the CAD folder. Now you will need to flash the device with the firmware using VS code with PlatformIO. Then when you check that it boots up successfully you can assemble the enclosure by first mounting the fan on the back enclosure part, then mounting the pcb to it as well, and finally snap the front enclosure part on the PCB.
Schematic

PCB
3D renders:
![]() | ![]() |
Assembly
Assembled
![]() | ![]() |
Tools I used
- PCB design: KiCAD
- 3D design: Autodesk Fusion (free version)
- Firmware: VS code with PlatformIO
- Art: Figma
BOM
Totals
| Parts | 102.84$ |
| Supplies | 22.08$ |
| Shipping | 39.34$ |
| Everything | 164.26$ |
You can find the detailed BOM in /BOM
P.S. I had to choose fast shipping or amazon instead of aliexpress as otherwise I won't be able to build the project until August
Repository structure
- /CAD - All the 3d models and the assembly
- /PCB - KiCAD PCB project
- /production - Files required to produce the PCB (and PCBA for JLCPCB)
- /scripts - Scripts I made in python to place the LEDs and capacitive touch pad footprints perfectly on the PCB
- /firmware - PlatformIO project with all firmware sources and configs
- /BOM - Bill of materials (the list of all parts you need to buy)
- /images - Images of the project such as 3d renders, schematic, PCB, zine, etc.
Zine

Parts
202| Qty | Value | Footprint | References |
|---|---|---|---|
| 72 | GW JTLMS1.EM-GVH3-XX57-1-60-R33 | easyeda2kicad:LED-SMD_L3.5-W2.8-RD_GW-JTLRS1.EM-K5L4-XX57-1 | LED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +56 |
| 24 | Sensor pad | anvar:capacitive-touch-pad-trapezoid | E1, E2, E10, E11, E12, E13, E14, E15, E16, E17, E18, E19, E20, E21, E22, E23 +8 |
| 20 | 0.1uF | easyeda2kicad:C0603 | C3, C10, C11, C12, C13, C14, C15, C17, C18, C20, C21, C22, C23, C24, C30, C31 +4 |
| 5 | LOGO | LOGO | G***, G***, G***, G***, G*** |
| 4 | 10KΩ | easyeda2kicad:R0603 | R3, R13, R31, R32 |
| 4 | 1uF | easyeda2kicad:C0603 | C1, C2, C16, C19 |
| 4 | Control sensor pad | anvar:capacitive-touch-pad-square10mm | E25, E26, E27, E28 |
| 4 | ExtraGPIO | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | GP24, GP25, GP26, GP27 |
| 3 | 10kΩ | easyeda2kicad:R0603 | R15, R18, R26 |
| 3 | 10uF | easyeda2kicad:C1206 | C4, C28, C33 |
| 3 | 249Ω | easyeda2kicad:R1206 | R9, R10, R11 |
| 3 | 27Ω | easyeda2kicad:R0603 | R7, R8, R34 |
| 3 | 75kΩ | easyeda2kicad:R0603 | R21, R22, R28 |
| 3 | MPR121QR2 | easyeda2kicad:QFN-20_L3.0-W3.0-P0.40-BL | U8, U9, U12 |
| 2 | 15pF | easyeda2kicad:C0603 | C5, C6 |
| 2 | 1KΩ | easyeda2kicad:R0603 | R12, R14 |
| 2 | 1KΩ | easyeda2kicad:R1210 | R1, R2 |
| 2 | 22uF | easyeda2kicad:C0805 | C29, C34 |
| 2 | 3.3uH | easyeda2kicad:IND-SMD_L7.0-W6.6 | L1, L2 |
| 2 | 4.7kΩ | easyeda2kicad:R0603 | R19, R20 |
| 2 | B220A | easyeda2kicad:SMA_L4.4-W2.8-LS5.4-RD | D1, D2 |
| 1 | 100KΩ | easyeda2kicad:R0603 | R4 |
| 1 | 100kΩ | easyeda2kicad:R0603 | R5 |
| 1 | 10nF | easyeda2kicad:C0603 | C27 |
| 1 | 121kΩ | easyeda2kicad:R0603 | R27 |
| 1 | 12MHz crystal | easyeda2kicad:CRYSTAL-SMD_4P-L3.2-W2.5-BL | U5 |
| 1 | 180pF | easyeda2kicad:C0603 | C26 |
| 1 | 1MΩ | easyeda2kicad:R0603 | R33 |
| 1 | 2.2uF | easyeda2kicad:C0805 | C35 |
| 1 | 316kΩ | easyeda2kicad:R0603 | R6 |
| 1 | 47kΩ | easyeda2kicad:R0603 | R25 |
| 1 | 6.8pF | easyeda2kicad:C0603 | C25 |
| 1 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q3 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | BAT-HLD-001 | easyeda2kicad:BAT-SMD_BAT-HLD-001 | BT1 |
| 1 | CH224K | easyeda2kicad:ESSOP-10_L4.9-W3.9-P1.0-LS6.0-TL-EP | U2 |
| 1 | DS3231MZ | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U7 |
| 1 | FST-1230 | easyeda2kicad:BUZ-SMD_L12.0-W12.0_FUET-1230 | BUZZER1 |
| 1 | Fan | anvar:SMD_2pads_polar_4mm_square | M1 |
| 1 | NPN | easyeda2kicad:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | Q1 |
| 1 | PM254-1-06-W-8.5 | easyeda2kicad:HDR-TH_6P-P2.54-H-F-W10.0-N | U13 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U4 |
| 1 | STP24DP05BTR | easyeda2kicad:TQFP-48_L7.0-W7.0-P0.50-LS9.0-BL-EP3.5 | U1 |
| 1 | TP15822637 | easyeda2kicad:SW-SMD_4P-L5.2-W5.2-P3.70-LS6.4 | SW1 |
| 1 | TPS54232DR | easyeda2kicad:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL | U11 |
| 1 | TPS62160DGKR | easyeda2kicad:MSOP-8_L3.0-W3.0-P0.65-LS5.0-BL | U3 |
| 1 | TYPE-C-31-D-09_C7463258 | easyeda2kicad:USB-C-TH_TYPE-C-31-D-09 | USBC1 |
| 1 | W25Q64JVSSIQ | easyeda2kicad:SOP-8_L5.3-W5.3-P1.27-LS8.0-BL | U6 |
The 196 most common of 202 parts.
Questions
What parts does the Lightclock use?
202 parts, built around the RP2040, MPR121QR2, CH224K and TPS62160DGKR. 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 Lightclock KiCad files?
From the Anvarys/lightclock repository on GitHub, at the commit this page was made from: the board is PCB/lightclock.kicad_pcb and its schematic PCB/lightclock.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Lightclock design in my own project?
Its repository states no licence, so its author keeps all rights: ask Anvarys before reusing the design.
Similar boards
- 6 layers55 × 95 mm

- 2 layers98 × 79.6 mm

ImpedanceP2
wenkeli/impedance_meter
Electronics to measure the resistance of multi-channel animal electrodes
73 parts1 - 4 layers220 × 160 mm

Qds cv
cnpem-emi/qds-cv-hw
Quench detection system for a single superconducting coil working in the Vertical Cryostat.
403 parts - 2 layers42 × 17 mm

Ai03 2725 unified s9 solenoid controller solenoid driver
oomlout/oomlout_oomp_project_bot_v_2
25 parts - 2 layers106 × 148 mm

Chirstmas Card
emaneric/Electronic-Christmas-Card
A christmas card made from a PCB with a STM32, LED display, buttons, and buzzer.
86 partsMIT - 2 layers73.1 × 59.4 mm

Madpad
Madjogger1202/Madpad
Custom macropad based on RP2040 with display, audio feedback, and per-key RGB lighting.
138 parts - 2 layers224 × 224 mm

- 6 layers177 × 85 mm




