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 <[email protected]>
This commit is contained in:
William RickertandClaude Opus 5 committed 2026-08-27 14:43:40 -05:00
1 parent a9e550e065
commit f8d22252ad
3 files changed
+66 -9

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
<svg width="100%" viewBox="0 0 680 470" role="img" xmlns="http://www.w3.org/2000/svg">
<title>Numpad board, settled layout</title>
<desc>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.</desc>
<text class="th" x="18" y="24">Numpad board &#8212; settled</text>
<text class="ts" x="18" y="44">25 keys and one encoder. Arrows on the outside, no Num key, no scroll wheel.</text>
<g class="c-purple"><rect x="212" y="70" width="123" height="59" rx="4" stroke-width="0.5"/></g>
<g class="c-purple"><circle cx="274" cy="100" r="25" stroke-width="0.5"/></g>
<text class="ts" x="274" y="104" text-anchor="middle">Volume</text>
<g class="c-teal"><rect x="148" y="70" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="178" y="104" text-anchor="middle">Del</text></g>
<g class="c-teal"><rect x="148" y="134" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="178" y="168" text-anchor="middle">Home</text></g>
<g class="c-teal"><rect x="148" y="198" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="178" y="232" text-anchor="middle">↑</text></g>
<g class="c-teal"><rect x="148" y="262" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="178" y="296" text-anchor="middle">↓</text></g>
<g class="c-teal"><rect x="148" y="326" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="178" y="360" text-anchor="middle">←</text></g>
<g class="c-teal"><rect x="212" y="134" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="242" y="168" text-anchor="middle">End</text></g>
<g class="c-teal"><rect x="212" y="198" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="242" y="232" text-anchor="middle">PgUp</text></g>
<g class="c-teal"><rect x="212" y="262" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="242" y="296" text-anchor="middle">PgDn</text></g>
<g class="c-teal"><rect x="212" y="326" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="242" y="360" text-anchor="middle">→</text></g>
<g class="c-coral"><rect x="276" y="134" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="306" y="168" text-anchor="middle">7</text></g>
<g class="c-coral"><rect x="276" y="198" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="306" y="232" text-anchor="middle">4</text></g>
<g class="c-coral"><rect x="276" y="262" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="306" y="296" text-anchor="middle">1</text></g>
<g class="c-coral"><rect x="276" y="326" width="123" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="338" y="360" text-anchor="middle">0</text></g>
<g class="c-coral"><rect x="340" y="70" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="370" y="104" text-anchor="middle">/</text></g>
<g class="c-coral"><rect x="340" y="134" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="370" y="168" text-anchor="middle">8</text></g>
<g class="c-coral"><rect x="340" y="198" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="370" y="232" text-anchor="middle">5</text></g>
<g class="c-coral"><rect x="340" y="262" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="370" y="296" text-anchor="middle">2</text></g>
<g class="c-coral"><rect x="404" y="70" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="434" y="104" text-anchor="middle">*</text></g>
<g class="c-coral"><rect x="404" y="134" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="434" y="168" text-anchor="middle">9</text></g>
<g class="c-coral"><rect x="404" y="198" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="434" y="232" text-anchor="middle">6</text></g>
<g class="c-coral"><rect x="404" y="262" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="434" y="296" text-anchor="middle">3</text></g>
<g class="c-coral"><rect x="404" y="326" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="434" y="360" text-anchor="middle">.</text></g>
<g class="c-coral"><rect x="468" y="70" width="59" height="59" rx="4" stroke-width="0.5"/><text class="ts" x="498" y="104" text-anchor="middle">-</text></g>
<g class="c-coral"><rect x="468" y="134" width="59" height="123" rx="4" stroke-width="0.5"/><text class="ts" x="498" y="200" text-anchor="middle">+</text></g>
<g class="c-coral"><rect x="468" y="262" width="59" height="123" rx="4" stroke-width="0.5"/><text class="ts" x="498" y="328" text-anchor="middle">Ent</text></g>
<g class="c-teal"><rect x="18" y="414" width="13" height="13" rx="3" stroke-width="0.5"/></g>
<text class="ts" x="37" y="424">Nav · 9 keys</text>
<g class="c-coral"><rect x="223" y="414" width="13" height="13" rx="3" stroke-width="0.5"/></g>
<text class="ts" x="242" y="424">Numpad · 16 keys</text>
<g class="c-purple"><rect x="428" y="414" width="13" height="13" rx="3" stroke-width="0.5"/></g>
<text class="ts" x="447" y="424">Encoder · 2u, fits a real knob</text>
<text class="ts" x="18" y="452">Six by five units &#8212; about 114 by 95 mm on 19.05 mm spacing.</text>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB