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 <[email protected]>
This commit is contained in:
William RickertandClaude Opus 5 committed 2026-08-27 14:52:06 -05:00
1 parent 1e335b7ba2
commit bf6388a061
5 files changed
+221 -102

No files matched your search

+112 -91
View File
@@ -1,94 +1,115 @@
<svg width="100%" viewBox="0 0 680 330" role="img" xmlns="http://www.w3.org/2000/svg">
<title>All three boards to scale</title>
<desc>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.</desc>
<title>All three boards to scale, split from a 104</title>
<desc>Left half thirty-six keys, right half thirty-nine, numpad twenty-five, all drawn at the same key spacing.</desc>
<text class="th" x="18" y="24">All three boards, same scale</text>
<text class="ts" x="18" y="44">One cable to the PC. Both halves plug into the numpad; the split link rides the spare SBU pins.</text>
<g class="c-teal"><rect x="66" y="97" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="66" y="123" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="66" y="149" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="66" y="175" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="92" y="97" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="92" y="123" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="92" y="149" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="92" y="175" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="118" y="92" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="118" y="118" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="118" y="144" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="118" y="170" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="144" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="144" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="144" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="144" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="91" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="117" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="143" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="169" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="196" y="95" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="196" y="121" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="196" y="147" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="196" y="173" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="144" y="206" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="209" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="196" y="214" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="262" y="95" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="262" y="121" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="262" y="147" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="262" y="173" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="288" y="91" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="288" y="117" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="288" y="143" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="288" y="169" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="314" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="314" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="314" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="314" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="92" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="118" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="144" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="170" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="366" y="97" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="366" y="123" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="366" y="149" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="366" y="175" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="392" y="97" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="392" y="123" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="392" y="149" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="392" y="175" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="262" y="214" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="288" y="209" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="314" y="206" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="458" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="458" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="458" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="458" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="458" y="192" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="484" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="484" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="484" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="484" y="192" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="510" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="510" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="510" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="510" y="192" width="49" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="536" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="536" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="536" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="536" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="562" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="562" y="114" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="562" y="140" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="562" y="166" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="562" y="192" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="588" y="88" width="23" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="588" y="114" width="23" height="49" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="588" y="166" width="23" height="49" rx="3" stroke-width="0.5"/></g>
<g class="c-gray"><rect x="484" y="88" width="49" height="23" rx="3" stroke-width="0.5"/></g>
<g class="c-gray"><circle cx="508" cy="101" r="10" stroke-width="0.5"/></g>
<text class="th" x="144" y="278" text-anchor="middle">Left half</text>
<text class="ts" x="144" y="296" text-anchor="middle">layout TBD</text>
<text class="th" x="340" y="278" text-anchor="middle">Right half</text>
<text class="ts" x="340" y="296" text-anchor="middle">mirror of left</text>
<text class="th" x="536" y="278" text-anchor="middle">Numpad</text>
<text class="ts" x="536" y="296" text-anchor="middle">25 keys + knob</text>
<text class="ts" x="18" y="322">Half layouts are a placeholder 6&#215;4 plus three thumbs &#8212; shown for scale only. That is the one decision still open.</text>
<text class="ts" x="18" y="44">100 of a 104 layout&#8217;s keys have a physical home. Only Insert, PrtSc, ScrLk and Pause need a layer.</text>
<g class="c-teal"><rect x="20" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="70" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="95" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="120" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="145" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="182" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="208" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="20" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="45" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="70" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="95" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="120" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="145" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="170" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="20" y="146" width="34" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="58" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="82" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="108" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="132" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="158" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="20" y="172" width="41" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="64" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="89" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="114" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="139" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="164" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="20" y="196" width="53" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="76" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="101" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="126" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="151" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="176" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="20" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="51" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="82" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-teal"><rect x="114" y="222" width="60" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="315" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="377" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="402" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="427" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="452" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="277" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="302" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="327" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="352" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="377" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="402" y="122" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="427" y="122" width="47" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="265" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="290" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="315" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="340" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="365" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="390" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="415" y="146" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="440" y="146" width="34" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="271" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="296" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="321" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="346" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="371" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="396" y="172" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="421" y="172" width="53" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="284" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="308" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="334" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="358" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="384" y="196" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="408" y="196" width="66" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="258" y="222" width="91" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="352" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="384" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="415" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-purple"><rect x="446" y="222" width="28" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="503" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="503" y="109" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="503" y="134" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="503" y="159" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="503" y="184" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="528" y="109" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="528" y="134" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="528" y="159" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="528" y="184" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="553" y="109" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="553" y="134" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="553" y="159" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="578" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="578" y="109" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="578" y="134" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="578" y="159" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="603" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="603" y="109" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="603" y="134" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="603" y="159" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="603" y="184" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="553" y="184" width="47" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="628" y="84" width="22" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="628" y="109" width="22" height="47" rx="3" stroke-width="0.5"/></g>
<g class="c-coral"><rect x="628" y="159" width="22" height="47" rx="3" stroke-width="0.5"/></g>
<g class="c-gray"><rect x="528" y="84" width="47" height="22" rx="3" stroke-width="0.5"/></g>
<g class="c-gray"><circle cx="552" cy="96" r="9" stroke-width="0.5"/></g>
<text class="th" x="126" y="280" text-anchor="middle">Left half</text>
<text class="ts" x="126" y="298" text-anchor="middle">36 keys</text>
<text class="th" x="368" y="280" text-anchor="middle">Right half</text>
<text class="ts" x="368" y="298" text-anchor="middle">39 keys</text>
<text class="th" x="578" y="280" text-anchor="middle">Numpad</text>
<text class="ts" x="578" y="298" text-anchor="middle">25 + knob</text>
<text class="ts" x="18" y="322">The halves are not mirrors &#8212; 36 vs 39 keys means two separate board designs, not one file flipped.</text>
</svg>

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB