

Wakey wakey
wakey-wakey is a simple alarm clock built on a Seeed Studio XIAO ESP32C3. It runs on C++.
- Size
- 78 × 49 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 18
- Nets
- 20
- Pads
- 78
- Tracks, vias
- 108, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 5 Sep 2026
- Updated
- 16 Sep 2026
Overview
Wakey wakey is an open-source printed circuit board by agilfor, from the agilfor/wakey-wakey repository on GitHub. It is a 2-layer board of 78 × 49 mm with 18 parts on 20 nets, routed with 108 tracks and 0 vias.
Its parts include 4 diodes, 4 switches, 2 resistors, 2 connectors and 1 IC. It belongs with the ESP32 and RISC-V boards of this library.
README
README.mdwakey-wakey
wakey-wakey is a simple alarm clock built on a Seeed Studio XIAO ESP32C3. It runs on C++.
Features
- TFT Display
- 4 buttons
- Battery or USB-C power
- Deep sleep
- Buzzer
- Alarms (WIP)
- Wi-Fi config (WIP)
- Wi-Fi time sync (WIP)
CAD
The goal of this model was to make it as symmetrical as possible and as minimalistic as possible. The idea is for it to look simple and be functional as an alarm clock should be.
The current design was made in Onshape. It has screwholes for the PCB, a slot for the TFT display, holes for the buzzer sound, a gap for a USB-C cable, and a top cover with the functions of the buttons engraved.

PCB
My PCB was made in KiCad. I went a bit more crazy with this than with the CAD, so it took a while. It has 4 keys Charlieplexed to 3 pins, a buzzer, and a TFT display with all pins connected. Additionally, it has been designed with battery functionality in mind. It has a pin header to connect a battery cell to the ESP32C3 VBAT and GND pins (requires some soldering), and uses a nifty voltage divider (with two 220kΩ resistors) connected to an analog pin to allow for battery level measurements. Though these parts fall outside of the standard kit, I have them at home so decided to add them because it's cool and because why not ¯\_(ツ)_/¯

This is my current schematic. It uses charlieplexing to wire the keys (which is how I made space for the battery pin). The downside is it means I need to write more firmware to make it work. Other than that it's not very complicated. There are technically some wires missing (VBAT, GND, and the whole BAT_PWR block) as those require soldering. More info about the battery trick.

This is my PCB. The routing wasn't particularly difficult, but I had fun with it. I mostly ended up making life difficult for myself by trying to make it as small as possible. Also, I spent way too long on the silkscreen designs but no regrets :)

Wiring/Soldering
Due to the mount style of the XIAO ESP32C3, it is not possible to easily connect the battery pads under the microcontroller to the PCB (technically this is possible using a SMD mount, but it is a pain and much simpler to do some soldering with a DIP mount). The 4 pin male header is the connection of the battery to the microcontroller. It has 4 pins as it requires two pins for VCC and two for GND (connection to the battery cell and connection to the microcontroller). For a more detailed explanation please consult the battery.md doc.
Firmware Overview
The wakey-wakey uses C++ firmware for everything. Currently it supports deep sleep and waking on button press. It should also be able to draw to the TFT display.
Support still needs to be added for all the Wi-Fi functionalities, as well as the alarm, 24H time view toggle, and more. This will be done post-assembly, as some testing needs to be done with the charlieplexed keys before making the script more complicated than it already is.
There will probably be more changes as well to the firmware after all this, but that remains TBD.
BOM
- 1x Seeed Studio XIAO ESP32C3
- 4x Cherry MX switches
- 4x White blank DSA keycaps
- 1x 2.25in TFT Display
- 1x 3.3V Piezo buzzer
- 1x 2.54mm 8 pin male header
- 8x 20cm female-female jumper wires
- 4x Through-hole 1N4148 Diodes
- 8x M3x5x4 Heatset inserts
- 4x M3x8mm Screws
- 4x M3x16mm Screws
Extra:
- 2x 220kΩ resistors
- 1x 4 pin male header
- LIR2450 battery cell
- LIR2450 battery holder
Parts
18| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 4 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3, SW4 |
| 2 | 220k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2 |
| 1 | BAT_PWR | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | Display_Conn | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J1 |
| 1 | XIAO-ESP32-C3-SMD | blare:XIAO-ESP32-C3-DIP | U1 |
Similar boards
- 2 layers27.9 × 16.5 mm

- 2 layers42.7 × 13.7 mm

Stm32-mini12864
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
18 parts1.1kGPL-3.0 - 2 layers41.2 × 46.6 mm

- 2 layers44 × 51.3 mm

4272MAVcoder R4
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
18 parts915 - 2 layers28.3 × 14.3 mm

Tap Photosensor PCB
VoronDesign/Voron-Tap
Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:
18 parts716GPL-3.0 - 2 layers20.3 × 15.2 mm

L0 stepper driver
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.
18 parts546MIT - 2 layers

- 2 layers42.5 × 28.8 mm

C5VRX JACK DIY V2
Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS
18 parts515GPL-3.0
Questions
How big is the Wakey wakey PCB?
It measures 78 × 49 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Wakey wakey use?
18 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 Wakey wakey KiCad files?
From the agilfor/wakey-wakey repository on GitHub, at the commit this page was made from: the board is PCB/wakey-wakey.kicad_pcb and its schematic PCB/wakey-wakey.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Wakey wakey design in my own project?
Its repository states no licence, so its author keeps all rights: ask agilfor before reusing the design.