From f8d22252adbc3c3a4110652e06f79d9c1ea0948f Mon Sep 17 00:00:00 2001 From: William Rickert Date: Thu, 27 Aug 2026 14:43:40 -0500 Subject: [PATCH] Settle the numpad layout: 25 keys, one encoder Six by five. Arrows on the outer column, PgUp/PgDn beside them, no Num key. The scroll wheel is dropped - no good physical implementation - which also removes the pointing-device path from the firmware entirely, frees a USB endpoint, and retires the detentless-EC11 sourcing risk. The freed 2u at the top takes a single volume encoder with room for a full-size knob. BOM: diodes and sockets 26 -> 25, encoders 2 -> 1. Co-Authored-By: Claude Opus 5 --- README.md | 27 ++++++++++++++++++++++----- docs/bom.csv | 7 +++---- docs/numpad-layout.svg | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 docs/numpad-layout.svg diff --git a/README.md b/README.md index 5d933b9..b4ea5e1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,15 @@ 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/numpad` | 1 | 26 (17 numpad + 9 nav) | MCU, matrix, 2 encoders, **CH334R hub**, 3 downstream ports | +| `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`. Six columns by five +rows, ~114 × 95 mm. Arrows take the **outer** left column on the principle that +the most-used keys go furthest out, PgUp/PgDn sit beside them, and Del/Home/End +fill the rest of the two nav columns. **No Num key** — the firmware resolves +keypad vs number-row at press time, so the pad never needed one. The 2u that +frees up at the top holds the single volume encoder, which means a full-size +knob fits rather than two cramped ones colliding at 19.05 mm centres. Cabling: @@ -189,10 +197,19 @@ Plan is belt-and-braces: Only eleven keys need this (1–9, 0, `.`). `KP_SLASH`/`ASTERISK`/`MINUS`/`PLUS`/ `ENTER` mean the same thing either way. -**Encoders:** volume wants a **detented** EC11; scroll wants a **detentless** one, -because hi-res scrolling (`POINTING_DEVICE_HIRES_SCROLL_ENABLE`, resolution -multiplier, 1/120 tick) fights physical detents. Confirm the detentless SKU from -the datasheet — vendor descriptions are unreliable. +**One encoder, volume only.** The scroll wheel was dropped — no good physical +implementation. That removes more than it looks like: + +- No `POINTING_DEVICE_ENABLE`, no `MOUSEKEY_ENABLE`, no hi-res scroll resolution + multiplier. **The numpad stops enumerating as a mouse entirely** — it's a + keyboard plus consumer control and nothing else. +- One fewer USB endpoint, which matters because the L103's USBFS has eight and + QMK's composite device was going to be tight against that. +- The detentless-EC11 sourcing risk is gone. A stock EC11 is detented, which is + exactly what volume wants, so `C2991196` is simply correct with nothing to + verify. + +Rules file is now just `ENCODER_ENABLE` + `EXTRAKEY_ENABLE`. --- diff --git a/docs/bom.csv b/docs/bom.csv index a27fcfd..4c7ea69 100644 --- a/docs/bom.csv +++ b/docs/bom.csv @@ -22,9 +22,8 @@ HALF,Split,D-ESD,1,ESD 5V bidirectional,PESD5V0S1BA,C2827694,SOD-323,Extended,0. 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" 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-D26,26,1N4148W,1N4148W,C81598,SOD-123,Basic,0.011,"26 keys: 17 numpad + 9 nav" -NUMPAD,Encoder,ENC1,1,EC11 detented,EC11L1525G01,C2991196,THT,Extended,1.27,"VOLUME - wants detents. THT: hand-solder or JLC THT surcharge" -NUMPAD,Encoder,ENC2,1,EC11 detentless,verify variant,-,THT,Extended,1.27,"SCROLL - wants NO detents for hi-res scroll. Confirm detentless SKU" +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" NUMPAD,Hub,U4,1,USB2.0 4-port hub,CH334R,C4154405,QSOP-16-150mil,Extended,0.50,"Ports: 1=own MCU (internal FS) 2=left half 3=right half 4=spare" NUMPAD,Hub,Y2,1,12MHz crystal,X322512MSB4SI,C9002,SMD3225-4P,Basic,0.101,"CH334 has built-in load caps - verify internal value vs this 20pF CL crystal; fit DNF cap pads" NUMPAD,Hub,C12-C14,3,100nF 0402,CL05B104KO5NNNC,C1525,0402,Basic,0.006,"hub decoupling" @@ -37,6 +36,6 @@ NUMPAD,Hub,R8-R13,6,56k 0402,FRC0402F5602TS,C2906875,0402,Extended,0.0018,"Rp pu 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)" -NUMPAD,Switches,SW-,26,MX hotswap socket,CPG151101S11,C41430893,SMD 14.5x5.9mm,Extended,0.037,"One per key. BOTTOM SIDE" +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/numpad-layout.svg b/docs/numpad-layout.svg new file mode 100644 index 0000000..ac60c20 --- /dev/null +++ b/docs/numpad-layout.svg @@ -0,0 +1,41 @@ + +Numpad board, settled layout +Six columns by five rows. Arrows on the outer left column, page up and down beside them, the numpad on the right without a Num key, and a single volume encoder spanning two cells at the top. +Numpad board — settled +25 keys and one encoder. Arrows on the outside, no Num key, no scroll wheel. + + +Volume +Del +Home + + + +End +PgUp +PgDn + +7 +4 +1 +0 +/ +8 +5 +2 +* +9 +6 +3 +. +- ++ +Ent + +Nav · 9 keys + +Numpad · 16 keys + +Encoder · 2u, fits a real knob +Six by five units — about 114 by 95 mm on 19.05 mm spacing. + \ No newline at end of file