Skip to the content
PCBKitNew board
4 layers104 × 40 mmDisplay, the printed circuit board in 3D

A fancy clock implementation for ESP32

Size
104 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
120
Nets
10
Pads
577
Tracks, vias
487, 118
Pours
9
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 May 2017
Updated
9 Sep 2026

Overview

Display is an open-source printed circuit board by samscam, from the samscam/clocklet repository on GitHub, published under the MIT licence. It is a 4-layer board of 104 × 40 mm with 120 parts on 10 nets, routed with 487 tracks and 118 vias.

It is built around the APDS-9005-020 and SK9822-EC20. Its parts include 85 diodes, 17 capacitors, 3 resistors, 1 IC and 1 connector. It belongs with the lEDs and displays boards of this library.

Main components

2

README

README.md

Clocklet

See also clocklet.co.uk

Overview

This project is the firmware and client apps for clocks made by @samscam including:

Clocklet

  • Custom 17x5 SK9822 LED Matrix display
  • Timekeeping: ESP32 (DS3231 as backup)
  • Synchronisation: NTP
  • Microcontroller: ESP32 Wrover on custom "Clockbrain" board
  • Weather source: OpenWeatherMap

Old Clocklet / Clocky

Earlier prototypes used RGBDigit (WS2812B) 7-segment display and Adafruit Feather Huzzah32.

Mrs Clockety

It's all a work in progress.

Main Features

  • Time
  • Weather
  • Utterances
  • Interesing displays and animation
  • Ambient light sensing
  • Power management (Mrs Clockety)

Firmware

To build the the firmware:

  • Clone the repo including submodules
  • Install platformio and your editor of choice - I'm using vscode.
  • Open up the firmware from the Embedded directory
  • Pick the correct environment for the device you want to build for (by setting it in the first line of platformio.ini or by invoking tasks for the specific environment in the editor/cli) this will probably be clockbrain
  • Plug the device in to your machine over USB
  • Check that the device is available to your system... on MacOS it's normally /dev/cu.SLAB_USBtoUART
  • Build and upload (platformio should download the dependencies if it hasn't done so already)
  • Note that API keys are encrypted with gitcrypt

Seeing the logs (without installing anything much)

You can connect to the clocklet's serial port from a computer with various tools (like screen, miniterm or putty) and see the Clocklet logging.

The important thing to note is that the baud rate of the serial connection is 115200.

The Clocklet serial port on Mac and Linux will be available as something like /dev/cu.SLAB_USBtoUART - you can do an ls /dev/cu.* before and after plugging it in to eliminate possibilities.

Then open it up in your tool of choice: screen /dev/cu.SLAB_USBtoUART 115200 miniterm.py /dev/cu.SLAB_USBtoUART 115200

Manually updating firmware (with minimal installing)

  1. Install esptool

On MacOS this can be done with homebrew: brew install esptool On Linuxes it's probably available from apt install esptool or whatever package manager you're using.

  1. Download the bin file of the firmware image you want from the releases section on here.

  2. Plug in the Clocklet and figure out which port it is on - probably something like /dev/cu.SLAB_USBtoUART (that's what we'll use here but replace with whatever it is on your system)

  3. Erase the flash (including settings) esptool.py -b 115200 -p /dev/cu.SLAB_USBtoUART erase_region 0x9000 0xFF7000

  4. Flash the new firmware image:

esptool.py -b 115200 -p /dev/cu.SLAB_USBtoUART write_flash 0x10000 clockbrain.bin

While we are here you can also use esptool to just erase settings (equivalent of doing a factory reset from the app): esptool.py -b 115200 -p /dev/cu.SLAB_USBtoUART erase_region 0x9000 0x5000

Client App (iOS)

Requires Xcode 16 To build, open via the workspace rather than the Xcode Project.

Contains an experimental library for gluing CoreBluetooth to Combine and SwiftUI via PropertyWrappers called "CombineBluetooth". This may get spun out into a separate project in the future - but for ease of development right now it's in here.

To follow

  • Android client
  • Enclosure design (3d printable)
  • Hardware design

License

This is distributed under the MIT License

text
MIT License

Copyright (c) 2017-2020 Sam Easterby-Smith

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Parts

120
QtyValueFootprintReferences
85SK9822-EC20_Custom:SK9822-2020D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1 +69
160.1µFCapacitor_SMD:C_0603_1608MetricC1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1
4FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3, FID4
4MountingHoleMountingHole:MountingHole_2.5mmH5, H6, H7, H8
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
110KResistor_SMD:R_0603_1608MetricR1
110µFCapacitor_SMD:C_0603_1608MetricC2
112kResistor_SMD:R_0603_1608MetricR2
15kResistor_SMD:R_0603_1608MetricR3
1APDS-9005_Custom:APDS-9005U2
1Conn_02x07Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ1
1TouchPad_Custom:Touch_PadT1

Questions

How big is the Display PCB?

It measures 104 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Display use?

120 parts, built around the APDS-9005-020 and SK9822-EC20. 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 Display KiCad files?

From the samscam/clocklet repository on GitHub, at the commit this page was made from: the board is Electronics/v5/Display-2020/Display.kicad_pcb and its schematic Electronics/v5/Clocklet-board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Display 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).

More from samscam/clocklet

2
  • 4 layers190 × 70 mmClocklet v6, the printed circuit board in 3D

    Clocklet v6

    samscam/clocklet

    A fancy clock implementation for ESP32

    139 parts2MIT
  • 4 layers56 × 40 mmClocklet board, the printed circuit board in 3D

    Clocklet board

    samscam/clocklet

    A fancy clock implementation for ESP32

    36 parts2MIT

Similar boards

  • 2 layers205.3 × 12 mmLedStrip SK9822 2020, the printed circuit board in 3D

    LedStrip SK9822 2020

    Mitchlol/Open-Pixel-Poi

    Open source, 3D printable, LED pixel Poi: PlatformIO / Flutter / KiCad / STLs

    56 parts37GPL-3.0
  • 4 layers78 × 67.5 mmUnified pcb, the printed circuit board in 3D

    Unified pcb

    starduststorm/motionhexa

    PCB designs and code for a motion-reactive, battery-powered hexagonal glowy object.

    387 parts14
  • 4 layers82.7 × 77.8 mmGlowCorePanel, the printed circuit board in 3D

    GlowCorePanel

    LEDs-by-glowingkitty/GlowCore

    The easiest way to control your DIY LED project.

    472 parts6GPL-3.0
  • 4 layers30 × 40 mmGlowCoreMini PCB, the printed circuit board in 3D

    GlowCoreMini PCB

    LEDs-by-glowingkitty/GlowCore-Mini

    A small PCB for controlling an LED strip via USB-C or DC power. WLED compatible and with an integrated microphone for sound reactive animations!

    89 parts6GPL-3.0
  • 2 layers27.9 × 34.3 mmGlowBand PCB, the printed circuit board in 3D

    GlowBand PCB

    LEDs-by-glowingkitty/GlowBand

    GlowBand is an exciting LED wristband. For dancing at parties and festivals, for long-time exposure photography, and for everyday situations that need some light.

    76 parts4MIT
  • 2 layers136.7 × 136.7 mmHelixloop, the printed circuit board in 3D

    Helixloop

    starduststorm/helixloop

    PCB designs and code for a wreathed-spirals LED design with a self-contained controller

    449 parts2
  • 2 layers86 × 54 mmELECA, the printed circuit board in 3D

    ELECA

    lightcafe-lab/ELECA

    Business card style Arduino compatible board

    71 parts1CC-BY-SA-4.0
  • 8 layers140 × 314.2 mmRabbit body c, the printed circuit board in 3D

    Rabbit body c

    seralexeev/rabbit

    rabbit source code

    673 parts1