Skip to the content
2 layers274 × 102 mmUnchat keeb, the printed circuit board in 3D

Design for the UnChat Keyboard

Size
274 × 102 mm
Copper layers
2
Thickness
1.6 mm
Parts
293
Nets
288
Pads
1,131
Tracks, vias
2,870, 488
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
10 Dec 2023
Updated
19 Aug 2026

Overview

Unchat keeb is an open-source printed circuit board by gkanwar, from the gkanwar/unchat-keeb repository on GitHub. It is a 2-layer board of 274 × 102 mm with 293 parts on 288 nets, routed with 2,870 tracks and 488 vias.

It is built around the 74HC365D, 74HC14 and 74HC174D. Its parts include 128 resistors, 50 capacitors, 44 inductors, 42 switches and 29 ICs. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

3

README

README.md

Overview

This repository contains the design materials, firmware, and related docs for two iterations (2023 and 2024) of the "Unchat" keyboard. Highlights of this design include:

  • An ergonomic, split form keyboard with 40 keys (2024) or 42 keys (2023)
  • Custom Rust firmware supporting QMK JSON keymaps using a limited feature set
  • Hardware chatter mitigation through Hall Effect magnetic switches (2024) or hardware debouncing circuitry (2023)
  • Diode-free using a 6-bit bus (2023) or 4-bit analog muxes (2024)

Here are some photos.

The Unchat-42 (2023): Top view of assembled 2023 kbd Close-up image of assembled 2023 kbd

Designing the PCB in Kicad and the results: PCB design in Kicad Front view of 2023 pcb Front view of 2023 pcb design Back view of 2023 pcb Back view of 2023 pcb design

The Unchat-40 (2024) (assembly still WIP): 3D design overview Top view of assembled 2023 pcbs Front view of 2023 pcb Back view of 2023 pcb

Why design a custom keyboard?

This project was motivated in small part by wanting to solve frustrating key chatter on my main keyboard and in larger part as a way to kill free time during holiday seasons. It was an awesome way to learn several new skills. I recommend this sort of project if any of these interest you as well:

  • PCB design in Kicad
  • Mechanical design in OpenSCAD
  • Electronic assembly and debugging
  • Embedded Rust

Free to use and share

Designs and code in this repository are covered by the CC0 license, allowing anyone to freely copy, modify, or distribute these materials. Attribution not required.

That said, there are some known issues with the original designs. These are documented below, along with my workarounds. In some cases, these issues are corrected in the latest design files, but corrections have not been tested. You may discover other issues that I have not personally encountered. Use at your own risk!

Unchat-40 (2024)

Design overview

Summary of design features:

  • Two reversible PCBs connected via RJ45
  • Controlled by an Adafruit QT Py RP2040
  • Hall-effect switches queried via analog muxes
  • Acrylic and/or aluminum plate and frame

The 2023 design was fairly successful at reducing key chatter without software debouncing, but I still experienced occasional chatter (see below). Unfortunately, this was on timescales far above the filtering provided by the hardware debouncing, likely due to corrosion and mechanical deformation in the switches due to my terrible assembly process.

With this new 2024 design, I entirely circumvented using electrical contacts by moving to a Hall Effect magnetic switch design. This is also used in some "gaming-friendly" keyboards because it allows very rapid triggering, but from the perspective of this design the main advantage is that we can apply hysteresis to completely eliminate chatter. The cheap DRV5055 sensor fit the design perfectly. Unfortunately, magnetic switches are still fairly rare and a bit more pricey, but the overall cost was still manageable.

Electronic design

Mechanical design

Cost breakdown

Unchat-42 (2023)

More design info and post-mortem coming soon!

Parts

293
QtyValueFootprintReferences
500.1uFCapacitor_SMD:C_0805_2012MetricC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +34
44100Resistor_SMD:R_0805_2012MetricR100, R101, R102, R103, R104, R105, R106, R107, R108, R109, R110, R111, R112, R113, R114, R115 +28
44LEDLED_SMD:LED_0603_1608MetricL1, L2, L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L20, L21, L22, L23 +28
421kResistor_SMD:R_0805_2012MetricR2, R10, R12, R14, R16, R18, R20, R22, R24, R26, R123, R124, R125, R126, R127, R128 +26
4268kResistor_SMD:R_0805_2012MetricR1, R11, R13, R15, R17, R19, R21, R23, R25, R27, R117, R118, R119, R120, R121, R122 +26
38KeyswitchGKanwarLibrary:Choc_V1_LED_1.00uS1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S22, S23, S24, S25 +22
1474HC365GKanwarLibrary:TSSOP-16_4.4x5mm_P0.65mmU1, U2, U3, U4, U5, U6, U19, U20, U21, U22, U23, U24, U27, U66
774HC14GKanwarLibrary:TSSOP-14_4.4x5mm_P0.65mmU7, U8, U9, U10, U11, U12, U25
774HC174GKanwarLibrary:TSSOP-16_4.4x5mm_P0.65mmU13, U14, U15, U16, U17, U18, U26
4KeyswitchGKanwarLibrary:Choc_V1_LED_1.50uS20, S21, S41, S42
1Raspberry_Pi_PicoScottoKeebs_MCU:Raspberry_Pi_Pico_SMDU99

More from gkanwar/unchat-keeb

1
  • 2 layers141.8 × 86.9 mmUnchat keeb v2, the printed circuit board in 3D

    Unchat keeb v2

    gkanwar/unchat-keeb

    Design for the UnChat Keyboard

    89 parts1

Similar boards

  • 2 layers285.8 × 133.4 mmSegment 60 PCB, the printed circuit board in 3D

    Segment 60 PCB

    slonket/segment-keyboard

    A through-hole keyboard kit themed after PCB's of the 1980's.

    131 parts4MIT
  • 2 layers169.9 × 102.7 mmStm32h723zet6, the printed circuit board in 3D

    Stm32h723zet6

    mgalleguilloscespedes-png/proyectro-stm32

    en mi afán por el diseño 3d y la electrónica decidí crear mi propia versión de una placa controladora para impresora 3d, basándome en el microcontrolador stm32h723zet6 y la pcb de bigtreetech manta mp8

    587 parts
  • 2 layers190 × 100 mmMicroMicro, the printed circuit board in 3D

    MicroMicro

    smaldragon/MicroMicro

    A tiny byte-syzed 65c02 microcomputer

    126 parts2Unlicense
  • 2 layers177.8 × 130.8 mmDurango, the printed circuit board in 3D

    Durango

    zuiko21/minimOS

    Scalable OS for 6502/65816

    159 parts23MIT
  • 6 layers285 × 236 mmRa9704, the printed circuit board in 3D

    Ra9704

    Coin-OpCollection/Development-Documentation

    This repository contains technical information, documentation, and reverse-engineering details for the base platform systems of FPGA implementations released by Coin-Op Collection.

    228 parts11
  • 2 layers57.4 × 49.5 mmC64-cart, the printed circuit board in 3D

    C64-cart

    db-electronics/c64-cart-kicad

    Commodore 64 Flash Game Cartridge

    22 parts7
  • 2 layers93 × 58.4 mmV0b, the printed circuit board in 3D

    V0b

    smaldragon/BNUY-ROM

    A famicom discrete logic mapper

    39 parts3Unlicense
  • 2 layers284.9 × 96.5 mmFella, the printed circuit board in 3D

    Fella

    agkaminski/FellaPC

    DIY 6502 all-in-keyboard personal computer

    115 parts2CC0-1.0

Questions

How big is the Unchat keeb PCB?

It measures 274 × 102 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Unchat keeb use?

293 parts, built around the 74HC365D, 74HC14 and 74HC174D. 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 Unchat keeb KiCad files?

From the gkanwar/unchat-keeb repository on GitHub, at the commit this page was made from: the board is unchat_keeb/unchat_keeb.kicad_pcb and its schematic unchat_keeb/debounce.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Unchat keeb design in my own project?

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