Skip to the content
PCBKitNew board
2 layers219.3 × 105 mmTern, the printed circuit board in 3D

30-key hot swap keyboard based on the Hummingbird

Size
219.3 × 105 mm
Copper layers
2
Thickness
1.6 mm
Parts
95
Nets
44
Pads
404
Tracks, vias
421, 44
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
19 Jul 2023
Updated
24 Apr 2025

Overview

Tern is an open-source printed circuit board by rschenk, from the rschenk/tern repository on GitHub, published under the MIT licence. It is a 2-layer board of 219.3 × 105 mm with 95 parts on 44 nets, routed with 421 tracks and 44 vias.

Its parts include 30 diodes and 30 switches. It belongs with the keyboards and input boards of this library.

README

README.md

Tern

Terns are small white seabirds that can hover, but it's also a 30-key keyboard based on the Hummingbird! Differences from the Hummigbird:

  • Hot swappable
  • Spaced for Chosfox CFX keycaps (tighter than normal choc spacing)
  • Pinky keys are dropped down
  • Thumbs are more reachy

tern_top

I much prefer reachy thumbs vs tucky thumbs. Years of wiping out on skateboards means my right thumb doesn’t really make that tucking motion anymore.

The other deviation from the hummingbird is that I’m using the upper pinky key as my homerow. I’m using my pinky column as home and bottom rows, not top and home rows like the hummingbird does. Cognitively I like the hummingbird’s solution better, but after cutting a stack of cardboard prototypes, I just had to admit to myself that my pinky does not enjoy extending upwards.

Case

tern_quarter

tern_back

There are laser cutting files for a case in case. The switch plate is made from 1/16" acrylic, and there is a 0.6mm silicone gasket sitting between it and the PCB. I don't actually think the switchplate does anything functional but it looks more finished. There is a file for cutting a sheet of self-adhesive foam for the back which really helps to dampen the sound. I used 1mm sticky backed EVA.

Firmware

This uses an identical matrix to the Hummingbird, so you can just lie to your firmware and tell it that it's a Hummingbird. As I mentioned, though, since I dropped the pinkies and use them as home-bottom, using the stock Hummingbird config will make your keymap look a bit strange.

I've published a config as a ZMK module that tweaks the matrix mapping to allow your keymap to reflect the actual position of the keys, and provides this physical layout to ZMK Studio: rschenk/zmk-keyboard-tern.

If you don't use modules, or prefer the old school way, then copy the contents of firmware/zmk into your zmk config.

Build Guide

Build guide and bill of materials are here

Want Sculpted Keycaps?

I designed this board for Chosfox CFX keycaps, which are 1mm narrower than standard Choc keycaps such as MBK. The CFX keycaps are great if you like flat uniform keycaps, but if you want something sculpted, I forked the Chicago Steno repo and resized them to fit the CFX spacing. They are also sprued so you can 3D print them from someplace like JLC. See rschenk/cfx_chicago_stenographer

Thanks

  • Hummingbird for the original idea and matrix
  • Rufous for the basis of the Ergogen config and routing

Parts

95
QtyValueFootprintReferences
30ComboDiodeD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +14
30ChocBonusGoodiesSB1, SB2, SB10, SB11, SB12, SB13, SB14, SB15, SB16, SB17, SB18, SB19, SB20, SB21, SB22, SB23 +14
30PG1350S1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +14
2MountingHole_2.2mm_M2_PadPAD3, PAD4
2MountingHole_2.2mm_M2PAD1, PAD2
1xiao-bleMCU1

Questions

How big is the Tern PCB?

It measures 219.3 × 105 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Tern use?

95 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 Tern KiCad files?

From the rschenk/tern repository on GitHub, at the commit this page was made from: the board is pcb/tern.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

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

Similar boards

  • 2 layers104.9 × 75.2 mmHandipi kb, the printed circuit board in 3D

    Handipi kb

    brickbots/HandiPi

    Handheld RPI4 based computer with keyboard and display

    95 parts814MIT
  • 2 layers224.6 × 72.2 mmKeyboard pico42, the printed circuit board in 3D

    Keyboard pico42

    rgoulter/keyboard-labs

    Repo with my PCB designs and keyboard firmware

    95 parts236
  • 2 layers70.5 × 64 mmEsp32, the printed circuit board in 3D

    Esp32

    ste2425/PSP-Bluetooth

    Formerly PSP-Consolizer, PSP-Bluetooth aims to add Bluetooth controller support to the PSP 1K/2K/3K.

    95 parts108MIT
  • 2 layers35.1 × 103.1 mmLogic, the printed circuit board in 3D

    Logic

    tpcarlson/synth-diy

    Mostly Eurorack projects

    95 parts107
  • 2 layers360 × 120 mmDG Custom PCB, the printed circuit board in 3D

    DG Custom PCB

    a-wai/ampfactory

    A collection of tube amplifier schematics for guitar and bass

    95 parts77GPL-3.0
  • 2 layers145.1 × 107.7 mmAurora l, the printed circuit board in 3D

    Aurora l

    Musab-Hassan/aurora_keyboard

    A gorgeous split wireless ortholinear keyboard that you can build yourself.

    95 parts64GPL-3.0
  • 2 layers65 × 40 mmNF6-MCP2210-v03, the printed circuit board in 3D

    NF6-MCP2210-v03

    nanofury/NanoFury

    NanoFury Project

    95 parts62GPL-3.0
  • 2 layers164 × 73 mmTestRig PCB, the printed circuit board in 3D

    TestRig PCB

    RasmusB/USB-Keyboard-Adapter

    An Psion to USB keyboard controller

    95 parts57