Skip to the content
PCBKitNew board
2 layers286.4 × 95.9 mmCckb main, the printed circuit board in 3D

自作キーボードを、現物になる前に機械で確かめながら作るための作業場(KiCad・build123d・ZMK)

Size
286.4 × 95.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
149
Nets
91
Pads
467
Tracks, vias
753, 936
Pours
48
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Sep 2026
Updated
12 Oct 2026

Overview

Cckb main is an open-source printed circuit board by ms0216, from the ms0216/keyboard-foundry repository on GitHub. It is a 2-layer board of 286.4 × 95.9 mm with 149 parts on 91 nets, routed with 753 tracks and 936 vias.

It is built around the BAT46W, BS-16-B4AK003 and XIAO NRF52840. Its parts include 63 diodes, 62 switches and 2 ICs. It belongs with the keyboards and input boards and the nRF52 and nRF5x boards of this library.

Main components

3

README

README.md

keyboard foundry

自作キーボードを現物になる前に機械で確かめながら作るための作業場。 KLE の配列 1 本から、プレート(STL)・キーマトリクスの基板(KiCad・JLCPCB の規則入り)・ ZMK のシールドを作り、それらが食い違わないことを検査する。

HHKB 分割機(../2608042258_HHKB_devided)の開発で積み上げた道具・検査・知識・作法を 抜き出したもの。核の生成器は、HHKB の発注済みの基板を再現できる (キーまわりの全 140 部品の位置・向き・面・フットプリントと、全 244 パッドの結線が一致。 tests/test_regression_hhkb.py)。

構成

text
foundry/          共通の核(Python)
  layout.py         KLE → キーの実寸座標。島(分割の左右)に分ける
  matrix.py         キー → (row, col)。基板とファームが同じものを読む
  project.py        機種(projects/<機種>/spec.py + layout.json)を読む
  mech.py           MX・スタビ・ホットスワップの規格値
  plate.py          プレート(build123d)
  pcb.py            未配線の基板(KiCad の Python)。スイッチ・ダイオード・スタビ・穴・JLC 規則
  zmk.py            ZMK シールドの雛形と行列表
  fab_fields.py     発注道具(Fabrication Toolkit)が読む LCSC・面・除外を板に焼く
  drc.py            DRC を指紋つきで記録(警告を隠さない)
  render_pcb.py     基板を絵にする(変わっていなければ描かない・動いた部品を拡大)
  verify.py         寸法・水密・干渉(結果の記憶つき)・図
  inspect_mesh.py / slice_check.py   印刷できるか(近似と、OrcaSlicer で実際にスライス)
  gate.py           発注の門(open-gaps の「せき止めているもの」)
  parts.py          HHKB で確かめた部品と選定理由
  pinmap.py         ピン名 → パッド番号(データシートで裏付け)
  mutate.py         定数を壊して検査が気づくかを測る
  jlcpcb_lookup.py  JLCPCB の API(区分・在庫・単価)
firmware/ zephyr/ ZMK モジュール(乾電池の残量計・打ち止めで停止・状態 LED)
config/ build.yaml ZMK の設定(機種を作ると足される)
lib/              フットプリント(kiswitch の MX ホットスワップ・スタビ、XIAO)
projects/<機種>/  spec.py・layout.json・docs/(台帳)・pcb/
tests/            検査。fixtures/ に HHKB の配列と発注済みの基板から抜き出した事実
tools/kb          機種ごとの操作の入口 / tools/new_project.py

始め方

sh
python3.13 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
.venv/bin/pytest tests -q                              # 全部緑であること

.venv/bin/python3 tools/new_project.py mykb path/to/kle.json
tools/kb mykb plate        # build/mykb/plate_*.stl / .png
tools/kb mykb pcb          # projects/mykb/pcb/unrouted/*.kicad_pcb(KiCad 10 が要る)

次にやることは CLAUDE.md の「新しい機種を始める」。

要るもの

道具何に場所の指定
Python 3.13 + requirements-dev.txt核・検査—
KiCad 10(同梱の Python と kicad-cli)基板の生成・DRC・絵KICAD_PYTHON KICAD_CLI KICAD_FOOTPRINTS
pdftoppm(poppler)基板の絵PATH
OrcaSlicerスライスの確認ORCA_SLICER
GitHub ActionsZMK のビルド(手元に SDK は要らない)—

まだ核に入っていないもの(HHKB を参照実装として読む)

もの理由HHKB の場所
ケース・組み立て検査(留め方・挿入経路・干渉)機種の意匠そのもの。2 台目で共通部分を抜き出すtools/gen_case.py・gen_assembly.py・envelopes.py
MCU 子基板・電源回路・回路図と ERC構成が機種ごとに違う(pcb_extra.py で足す)tools/gen_daughterboard.py・circuit.py・gen_sch.py
配線の仕上げ(GND ビア・手配線の再現)配線の品質は手作業から来ていたtools/finalize_pcb.py・gnd_fanout.py・export_matrix_routing.py
.blend での確認ケースと一緒にtools/export_assembly.py・blend_assembly.py

Parts

149
QtyValueFootprintReferences
63BAT46WD_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +47
62PG1353SW_Kailh_Choc_V2_CommonSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +46
10MountingHole_2.2mm_M2MountingHole_2.2mm_M2H0, H1, H2, H3, H4, H5, H6, H7, H8, H9
4Stab_Kailh_Choc_V2_Screw_2uStab_Kailh_Choc_V2_Screw_2uST42, ST43, ST58, ST60
20.1uFC_0805_2012MetricC_U1, C_U2
21MR_0805_2012MetricR_HI, R_LO
2SN74LVC595APWRTSSOP-16_4.4x5mm_P0.65mmU1, U2
1BS-16-B4AK003BAT_BS-16-B4AK003BT1
1Hole_6.0Hole_NPTH_6.0mmH_LID
1SS-12D00G3SW_SS-12D00G3SW_PWR
1XIAO_nRF52840XIAO_nRF52840_SMDU_MCU

Questions

How big is the Cckb main PCB?

It measures 286.4 × 95.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Cckb main use?

149 parts, built around the BAT46W, BS-16-B4AK003 and XIAO NRF52840. 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 Cckb main KiCad files?

From the ms0216/keyboard-foundry repository on GitHub, at the commit this page was made from: the board is projects/cckb/pcb/cckb_main.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cckb main design in my own project?

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

Similar boards

  • 2 layers136 × 91.7 mmOne, the printed circuit board in 3D

    One

    ergonautkb/one

    Ergonaut One is an open-source ergonomic wireless split mechanical keyboard designed by Ergonaut Keyboards.

    56 parts210CERN-OHL-P-2.0
  • 2 layers117 × 96 mmOne s, the printed circuit board in 3D

    One s

    ergonautkb/one-s

    Ergonaut One S is an open-source ergonomic wireless split mechanical keyboard designed by Ergonaut Keyboards.

    50 parts10CERN-OHL-P-2.0
  • 2 layers161.9 × 120.5 mmDodo keyboard, the printed circuit board in 3D

    Dodo keyboard

    gorbit99/dodo-keyboard

    60% split wireless keyboard

    116 parts9
  • 2 layers111 × 89.1 mmUrxin, the printed circuit board in 3D

    Urxin

    diegolhambi/urxin

    A keyboard made inspired by Urchin, TOTEM and Ergonaut One.

    41 parts6
  • 2 layers25 × 20 mmXIAO CR2032-KEY, the printed circuit board in 3D

    XIAO CR2032-KEY

    kaz-mac/xiao_1key_blekey

    1ボタンだけのワイヤレスキーボード for XIAO nRF52840

    9 parts3MIT
  • 2 layers118.5 × 91.4 mm1 3S, the printed circuit board in 3D

    1 3S

    igor-salt/ERGO

    4 var 1.3

    46 partsCERN-OHL-P-2.0
  • 2 layers136 × 93.4 mmKBRD REN, the printed circuit board in 3D

    KBRD REN

    igor-salt/KBRD_REN

    Эргономичная клавиатура

    53 partsCERN-OHL-P-2.0