Skip to the content
2 layers78 × 49 mmWakey wakey, the printed circuit board in 3D

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.md

wakey-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.

Current CAD model

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 ¯\_(ツ)_/¯

Current schematic

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.

Current PCB

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 :)

PCB CAD Model (Front) PCB CAD Model (Back)

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
QtyValueFootprintReferences
41N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
4SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4
2220kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2
1BAT_PWRConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Display_ConnConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ1
1XIAO-ESP32-C3-SMDblare:XIAO-ESP32-C3-DIPU1

Similar boards

  • 2 layers27.9 × 16.5 mmPowerSSO-24 breakout, the printed circuit board in 3D

    PowerSSO-24 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    18 parts1.2k
  • 2 layers42.7 × 13.7 mmStm32-mini12864, the printed circuit board in 3D

    Stm32-mini12864

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    18 parts1.1kGPL-3.0
  • 2 layers41.2 × 46.6 mmThumb cluster left, the printed circuit board in 3D

    Thumb cluster left

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    18 parts993
  • 2 layers44 × 51.3 mm4272MAVcoder R4, the printed circuit board in 3D

    4272MAVcoder R4

    hackclub/OnBoard

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

    18 parts915
  • 2 layers28.3 × 14.3 mmTap Photosensor PCB, the printed circuit board in 3D

    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 mmL0 stepper driver, the printed circuit board in 3D

    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 layersMooltipass, the printed circuit board in 3D

    Mooltipass

    limpkin/mooltipass

    Github repository dedicated to the mooltipass project

    18 parts531
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY V2, the printed circuit board in 3D

    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.