From bf6388a061f8d287f2f702bda8b80002c859eb33 Mon Sep 17 00:00:00 2001 From: William Rickert Date: Thu, 27 Aug 2026 14:52:06 -0500 Subject: [PATCH] Halves are a straight 104 split: 36 left, 39 right Labelled layouts for both halves, and the overview redrawn from the real shapes rather than a placeholder ergo core. The 36/39 asymmetry means the two halves are separate board designs, not one file mirrored - README and BOM updated to match. 100 of the 104 positions now have a physical key; only Insert, PrtSc, ScrLk and Pause need a layer. Co-Authored-By: Claude Opus 5 --- README.md | 19 +++- docs/bom.csv | 14 ++- docs/half-left.svg | 42 +++++++ docs/half-right.svg | 45 ++++++++ docs/three-board-overview.svg | 203 +++++++++++++++++++--------------- 5 files changed, 221 insertions(+), 102 deletions(-) create mode 100644 docs/half-left.svg create mode 100644 docs/half-right.svg diff --git a/README.md b/README.md index 939eeda..ec665e5 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ Status: **design**. No boards ordered, no firmware written. | Board | Qty | Keys | Carries | |---|---|---|---| -| `hardware/half` | 2 (mirrored) | TBD — layout not designed | MCU, matrix, USB-C, SBU split link | +| `hardware/half-left` | 1 | **36** | MCU, matrix, USB-C, SBU split link | +| `hardware/half-right` | 1 | **39** | MCU, matrix, USB-C, SBU split link | | `hardware/numpad` | 1 | 25 (16 numpad + 9 nav) | MCU, matrix, 1 encoder, **CH334R hub**, 3 downstream ports | **Numpad layout is settled** — see `docs/numpad-layout.svg`, and @@ -145,11 +146,19 @@ socket pads off. FR4 plate is just another JLC board. Use [perigoso/keyswitch-kicad-library](https://github.com/perigoso/keyswitch-kicad-library) for footprints — don't draw them. -### Mirrored board files, not a reversible PCB +### The halves are two different boards -The socket footprint isn't mirror-symmetric, so a reversible board needs two -socket footprints per key with one populated. Two mirrored layouts sharing one -schematic and one BOM is simpler and keeps everything that mattered. +Splitting a full 104 at the 6/T/G/B boundary gives **36 keys left, 39 right** — +the right side inherits Backspace, Enter, both brackets, the backslash and an +extra bottom-row key. They are therefore *not* mirrors, and the earlier plan of +one layout flipped for both halves does not survive. + +Two separate designs: two schematics, two layouts, two fab setups, different +diode and socket counts. A reversible PCB was never on the table anyway — the +hotswap socket footprint isn't mirror-symmetric, so it would have needed two +socket footprints per key with one populated. + +See `docs/half-left.svg` and `docs/half-right.svg`. ### RGB: numpad underglow only diff --git a/docs/bom.csv b/docs/bom.csv index 4c7ea69..d9f6427 100644 --- a/docs/bom.csv +++ b/docs/bom.csv @@ -16,11 +16,12 @@ ALL,MCU,R1-R2,2,22R 0402,FRC0402F22R0TS,C2929994,0402,Extended,0.0007,"USB D+/D- ALL,MCU,R3-R4,2,5.1k 0402,JLC basic library,-,0402,Basic,0.002,"USB-C CC1/CC2 pull-DOWN (Rd - device side)" ALL,MCU,R5,1,1.5k 0402,JLC basic library,-,0402,Basic,0.002,"*** SWAP-DEPENDENT *** D+ pull-up. POPULATE for STM32F103. DNF for CH32L103 (internal 1.5k via RB_UC_DEV_PU_EN)" ALL,MCU,R6-R7,2,10k 0402,FRC0402F1002TS,C25744,0402,Basic,0.003,"BOOT0 pulldown, BOOT1/PB2 pulldown" -HALF,Matrix,D1-Dn,1,1N4148W,1N4148W,C81598,SOD-123,Basic,0.011,"One per key. Qty per your layout" -HALF,Split,R14,1,100R 0402,JLC basic library,-,0402,Basic,0.002,"Series on the SBU net between connector and MCU USART pin" -HALF,Split,D-ESD,1,ESD 5V bidirectional,PESD5V0S1BA,C2827694,SOD-323,Extended,0.036,"On the SBU net - user-exposed signal going to a GPIO" -HALF,Split,J3,1,3-pin header DNF,JST SH,-,-,Consigned,0.02,"*** DNF INSURANCE *** VCC/GND/DATA fallback if SBU proves flaky (bad cables). 3 pads cost nothing" -HALF,Split,-,-,SBU1+SBU2 TIE,-,-,-,-,0.00,"Tie A8 and B8 together on the board. SBU is CROSSED in the cable, so this makes it orientation-proof and doubles the conductor" +HALF-L,Matrix,D1-D36,36,1N4148W,1N4148W,C81598,SOD-123,Basic,0.011,"Left half: 36 keys" +HALF-R,Matrix,D1-D39,39,1N4148W,1N4148W,C81598,SOD-123,Basic,0.011,"Right half: 39 keys" +HALF-L/R,Split,R14,1,100R 0402,JLC basic library,-,0402,Basic,0.002,"Series on the SBU net between connector and MCU USART pin" +HALF-L/R,Split,D-ESD,1,ESD 5V bidirectional,PESD5V0S1BA,C2827694,SOD-323,Extended,0.036,"On the SBU net - user-exposed signal going to a GPIO" +HALF-L/R,Split,J3,1,3-pin header DNF,JST SH,-,-,Consigned,0.02,"*** DNF INSURANCE *** VCC/GND/DATA fallback if SBU proves flaky (bad cables). 3 pads cost nothing" +HALF-L/R,Split,-,-,SBU1+SBU2 TIE,-,-,-,-,0.00,"Tie A8 and B8 together on the board. SBU is CROSSED in the cable, so this makes it orientation-proof and doubles the conductor" NUMPAD,DNF,J1/U3/R3/R4/R5,0,DO NOT POPULATE,-,-,-,-,0.00,"*** From the ALL block: numpad MCU has NO connector of its own. Its D+/D- route internally to hub downstream port 1. No connector = no ESD part and no CC resistors needed. Saves ~$0.19" NUMPAD,Matrix,D1-D25,25,1N4148W,1N4148W,C81598,SOD-123,Basic,0.011,"25 keys: 16 numpad (no Num key) + 9 nav" NUMPAD,Encoder,ENC1,1,EC11 detented,EC11L1525G01,C2991196,THT,Extended,1.27,"VOLUME - detented, which is what a stock EC11 already is. Occupies a 2u cell so a full-size knob fits. THT: hand-solder or JLC THT surcharge" @@ -35,7 +36,8 @@ NUMPAD,Hub,U8-U10,3,Ideal diode / OCP,CH213K,C5456874,SOT-23-3,Extended,0.073,"V NUMPAD,Hub,R8-R13,6,56k 0402,FRC0402F5602TS,C2906875,0402,Extended,0.0018,"Rp pull-UPS on CC1/CC2 of each downstream port - host side. NOT 5.1k" NUMPAD,SBU,-,-,SBU PASS-THROUGH,-,-,-,-,0.00,"*** Passive trace *** Tie SBU1+SBU2 on J5 (left half) and on J6 (right half), then connect the two nets together. Carries QMK split_common UART between the halves. Numpad MCU does NOT touch this net" NUMPAD,SBU,D-ESD2,2,ESD 5V bidirectional,PESD5V0S1BA,C2827694,SOD-323,Extended,0.036,"One per half-port SBU net" -HALF,Switches,SW-,1,MX hotswap socket,CPG151101S11,C41430893,SMD 14.5x5.9mm,Extended,0.037,"One per key. BOTTOM SIDE. Alt: C49352235 (CPG151101S11-2)" +HALF-L,Switches,SW-,36,MX hotswap socket,CPG151101S11,C41430893,SMD 14.5x5.9mm,Extended,0.037,"BOTTOM SIDE. Alt: C49352235" +HALF-R,Switches,SW-,39,MX hotswap socket,CPG151101S11,C41430893,SMD 14.5x5.9mm,Extended,0.037,"BOTTOM SIDE. Alt: C49352235" NUMPAD,Switches,SW-,25,MX hotswap socket,CPG151101S11,C41430893,SMD 14.5x5.9mm,Extended,0.037,"One per key. BOTTOM SIDE" NOTE,Assembly,-,-,SINGLE-SIDED,-,-,-,-,-,"Put ALL SMD on the BOTTOM: sockets, MCU, passives, diodes, and any reverse-mount SK6812MINI-E. Top face bare except switch holes. Keeps JLC to one assembly pass" NOTE,Mechanical,-,-,PLATE REQUIRED,-,-,-,-,-,"Hotswap needs a switch plate or socket pads tear off during switch insertion. FR4 plate = just another JLC board" diff --git a/docs/half-left.svg b/docs/half-left.svg new file mode 100644 index 0000000..47b0c8d --- /dev/null +++ b/docs/half-left.svg @@ -0,0 +1,42 @@ + +Left half — 36 keysThe left side of a 104 layout, split at the 6 / T / G / B boundary. +Left half — 36 keys +The left side of a 104 layout, split at the 6 / T / G / B boundary. +Esc +F1 +F2 +F3 +F4 +F5 +F6 +` +1 +2 +3 +4 +5 +6 +Tab +Q +W +E +R +T +Caps +A +S +D +F +G +Shift +Z +X +C +V +B +Ctrl +Win +Alt +Space +Widest row is the function row at 8.5u — about 162 mm. Thumb key is a 2.5u space. + \ No newline at end of file diff --git a/docs/half-right.svg b/docs/half-right.svg new file mode 100644 index 0000000..af26450 --- /dev/null +++ b/docs/half-right.svg @@ -0,0 +1,45 @@ + +Right half — 39 keysThe right side of the same 104. PrtSc, ScrLk, Pause and Insert are not on any board. +Right half — 39 keys +The right side of the same 104. PrtSc, ScrLk, Pause and Insert are not on any board. +F7 +F8 +F9 +F10 +F11 +F12 +7 +8 +9 +0 +- += +Bksp +Y +U +I +O +P +[ +] +\ +H +J +K +L +; +' +Enter +N +M +, +. +/ +Shift +Space +Alt +Win +Menu +Ctrl +8.75u wide — about 167 mm. Three more keys than the left, so the two boards are not mirrors. + \ No newline at end of file diff --git a/docs/three-board-overview.svg b/docs/three-board-overview.svg index a3c49b0..e44a426 100644 --- a/docs/three-board-overview.svg +++ b/docs/three-board-overview.svg @@ -1,94 +1,115 @@ -All three boards to scale -Left half, right half and numpad drawn at the same key spacing. The halves show a placeholder column-staggered core; the numpad shows its settled six by five layout with the two-unit zero key, tall plus and enter keys, and the two-unit encoder cell. +All three boards to scale, split from a 104 +Left half thirty-six keys, right half thirty-nine, numpad twenty-five, all drawn at the same key spacing. All three boards, same scale -One cable to the PC. Both halves plug into the numpad; the split link rides the spare SBU pins. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Left half -layout TBD -Right half -mirror of left -Numpad -25 keys + knob -Half layouts are a placeholder 6×4 plus three thumbs — shown for scale only. That is the one decision still open. +100 of a 104 layout’s keys have a physical home. Only Insert, PrtSc, ScrLk and Pause need a layer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Left half +36 keys +Right half +39 keys +Numpad +25 + knob +The halves are not mirrors — 36 vs 39 keys means two separate board designs, not one file flipped. \ No newline at end of file