Skip to the content
PCBKitNew board
2 layers220 × 140 mmMirrorclock2, the printed circuit board in 3D

Digital clock normal and mirrored

Size
220 × 140 mm
Copper layers
2
Thickness
1.6 mm
Parts
215
Nets
162
Pads
626
Tracks, vias
1,056, 45
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Jul 2026
Updated
12 Aug 2026

Overview

Mirrorclock2 is an open-source printed circuit board by tkmmiyaji, from the tkmmiyaji/Mirrorclock2 repository on GitHub. It is a 2-layer board of 220 × 140 mm with 215 parts on 162 nets, routed with 1,056 tracks and 45 vias.

It is built around the 74HC390D. Its parts include 154 diodes, 22 resistors, 12 ICs, 5 switches and 3 capacitors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

Mirrorclock2 --- Through the Looking Glass and How the Digital Clock Looks

鏡の国のデジタル時計 Ver. 2.2 b

by Homebrew and Electronics Lab Cosmic Web, 16 Jul, 2026

Summary

This repository contains the hardware designs (KiCAD) and the software (AVR assembly language). The hardware design and software are distributed with the Beerware license. See LICENSE.md

Hardware

The KiCAD Ver. 10 project files (incl. kicad_pro, kicad_pcb, and kicad_sch files are included with necessary ./KiCAD.

  • AVR: The 28-dip pachage of the Atmega48,88,168,328 and variants should work.
  • The resistor footprints on the PCB accept either THT (3 DIP pitches/7.62mm between holes) or SMD (1206) components. The LED footprints accept 3mm, 5mm diameter ones that have one DIP pitch (2.54mm) between leads. You may be able to place SMD LEDs if you dare.
  • Place the tilt switch diagonally, so that the display is stably in the normal mode (see below) when it is placed on a level surface. See ./Gallery/Tilt_Switch_small.jpg.

Hard-to-find components

  • The temperature-compensated Crytsal Module Kyocera KTXO-18 (12.8MHz) or Mercury VCTCXO VM39S5G is used. The latter can be purchased at Akizuki Denshi Tsuusho in Akihabara, Tokyo (https://akizukidenshi.com/catalog/g/g107275/) (availbale as of July, 2026). There may be easier-to find equivalent SMD parts, but to use these a modification in the PCB footprint is required.

Software AVRClock2

This software is written in the assmbly language and can be compiled with avra (https://github.com/Ro5bert/avra) and uploaded to the chip using avrdude (https://github.com/avrdudes/avrdude/), both included in the standard repositories of many Linux distros.

How to Compile/Install (Linux)

  • Install avrdude and avra to your system.
  • Connect an ISP programmer to the ISP header (6-pin) on board. Watch the orientation. Match the ISP connector bump to that of the PCB drawing.
  • Go to directory: ./AVRA
  • Open Makefile in your editor and edit the lines with "MCU_TARGET =" and "PROGRAMMER =" to your chip and programmer respectively. Check the port where the programmer is connected and adjust the PORT=/dev/ttyUSB0 line if needed.
  • Also the LED brightness auto-adjustment parameters can be set by editing "FA_LIM =" and "BR_LIM =" lines. See Makefile comments for more explanations.
  • From the shell:
    SHELL>make # This compiles the program.
    SHELL>make install # This installs (uploads) the binary to the chip.

Usage Instructions

  • Connect an external 12V power source.
  • It is highly recommended to connect a 9V rectangular battery (called 006P in Japan) for time backup.
  • When the unit turns on or reset with the RST button, the clock displays 00:00 00. The clock starts running.
  • Time Adjustment: There are three buttons aligned vertically. With a long (~2 sec) push of the central button (MODE), the system enters the hour adjustment mode. Dots in the hour zone blink. You can adjust hours by pushing the upper (ADJ_FWD) and/or lower (ADJ_BWD) buttons. One more pressing of the central button leads to the minute adjustment mode. Dots in the minute zone blink. Use the ADJ_FWD and/or ADJ_BWD buttons to adjust the minute. Note that a long push will not make the forward/backward move fast. Whenever the minute is changed, the second zone is reset to zero. When you want to adjust the clock to a second level, push the ADJ_FWD/ADJ_BWD button at the exact moment the reference clock ticks a zero second.
  • One more push of the MODE will return the clock to the normal mode.
  • LED Check: In the normal mode, pressing the upper button will turn on all the LEDs.
  • LED brightness changes responding to the ambient brightness. A press of the lower button shows some calibration and brightness information. There is a trimpot for limited adjustments of the ambient-to-LED brightness relation. Wider range of adjustment is possible in the software (See above).
  • Normal Mode: When the clock is right-side up or on a level surface (i.e. the HH:MM display is above the circuts), it displays the clock normally.
  • Mirror Mode: Turn the clock upside down and look through a mirror! The roles of ADJ_FWD and ADJ_BWD buttons are also exchanged in the time adjustment.

Parts

215
QtyValueFootprintReferences
142LEDTM_Foot:LED_MULTID1, D10, D11, D100, D101, D102, D103, D104, D105, D106, D107, D108, D111, D112, D113, D114 +126
15R220TM_foot:R_THT_SMD1206R6, R7, R8, R9, R10, R11, R12, R14, R15, R16, R17, R18, R19, R20, R21
84N35Package_DIP:DIP-6_W7.62mmU1, U2, U3, U4, U5, U6, U7, U8
8Jumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3, JP4, JP5, JP6, JP7, JP8
8LEDTM_foot:LED_MULTI_SIMPLED49, D50, D79, D80, D109, D110, D139, D140
510KTM_foot:R_THT_SMD1206R2, R3, R4, R22, R23
4MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO7380H4, H4, H4, H4
20.1uFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC2, C3
21N5819Diode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD5, D6
1100μFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1
115KTM_foot:R_THT_SMD1206R5
11N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD4
11N5230 4.7V ZenerDiode_THT:D_DO-34_SOD68_P7.62mm_HorizontalD3
150KPotentiometer_THT:Potentiometer_Runtron_RM-065_VerticalRV1
15CME-3A(5V)TM_Foot:DCDC-Module-DrokU11
174HC390Package_DIP:DIP-16_W7.62mmU10
19VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalBT1
1ADJ_BWDButton_Switch_THT:SW_PUSH-12mm_Wuerth-430476085716SW2
1ADJ_FWDButton_Switch_THT:SW_PUSH-12mm_Wuerth-430476085716SW4
1ATMEGA48-88-168-328Package_DIP:DIP-28_W7.62mmIC1
1AVR-ISP-6TM_foot:AVRISP-6PCON1
1DC 12VConnector_BarrelJack:BarrelJack_HorizontalCON2
1MODEButton_Switch_THT:SW_PUSH-12mm_Wuerth-430476085716SW3
1R200TM_foot:R_THT_SMD1206R13
1R_Network08_USResistor_THT:R_Array_SIP9RN1
1R_PHOTOOptoDevice:R_LDR_5.1x4.3mm_P3.4mm_VerticalRP2
1ResetButton_Switch_THT:SW_PUSH_6mmSW1
1SW_tiltTM_foot:Sw_tilt_holesSW5
1ULN2003A/TBD62003APackage_DIP:DIP-16_W7.62mmU12
1XTL UNIT 12.8MHzTM_Foot:Crystal_M39S_KTXO18X1

Questions

How big is the Mirrorclock2 PCB?

It measures 220 × 140 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Mirrorclock2 use?

215 parts, built around the 74HC390D. 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 Mirrorclock2 KiCad files?

From the tkmmiyaji/Mirrorclock2 repository on GitHub, at the commit this page was made from: the board is KiCAD/Mirrorclock2.kicad_pcb and its schematic KiCAD/LEDArrayL1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mirrorclock2 design in my own project?

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

Similar boards

  • 2 layers152.9 × 74.9 mmClock, the printed circuit board in 3D

    Clock

    erikvanzijst/clock

    24H digital quartz clock from scratch

    82 parts21
  • 2 layers100 × 100 mmNA6, the printed circuit board in 3D

    NA6

    speeduino/Hardware

    Official Speeduino hardware designs

    215 parts283
  • 2 layers293.6 × 117.7 mmUrsaminor pcb, the printed circuit board in 3D

    Ursaminor pcb

    markstory/ursa-minor-keyboard

    Design and schematics for the ursaminor keyboard

    215 parts23
  • 2 layers170 × 140 mmLibreVerter Controller, the printed circuit board in 3D

    LibreVerter Controller

    imendizabal/LibreVerter

    Open Source Power Converter - Hardware Components

    215 parts22
  • 2 layers63.8 × 100 mmMasonjar, the printed circuit board in 3D

    Masonjar

    lucysrausch/magic-mason-jar

    215 parts15
  • 2 layers137.2 × 83.8 mmPWA REV2, the printed circuit board in 3D

    PWA REV2

    PubInv/krake

    The Krake™ is a Wi-Fi–enabled server using an MQTT broker, which means it can be controlled remotely by other devices ("clients") via the internet.

    215 parts9AGPL-3.0