Seventy keys on a 19.05 mm grid, with the two halves fixed at ±45° around a flat alpha block. Cherry MX switches, QMK firmware, a volume knob beside the number row, and a USB-C port at each arm tip. Designed in Marion, North Carolina, split into three boards so it can actually be fabricated.

Every key sits on a 19.05 mm grid — the position table holds it to within 0.3 mm — and every width is standard, including the 4U spacebar, so the board takes an ordinary keycap set rather than a bespoke one. The alpha block stays flat and square in the centre; 39 of the 70 keys are turned ±45° so the hands follow the forearms instead of the desk edge. Seventy switches, one 9 × 8 matrix, one controller.


Drawn as a single piece the V-Board spans 355 × 214 mm — a large-format order at any prototype house, and a whole-board scrap every time one corner changes. Cut at the seams it becomes three boards — centre 117 × 118 mm, left arm 123 × 154, right arm 170 × 173 — each inside standard panel sizes, cheaper to fabricate and revisable one at a time. The case holds the alignment; the electrical join is a solder-in 1 × 20 ribbon column at each seam, pin for pin.
Sixteen keys — the navigation and editing cluster — thirteen of them turned −45° and three, Fn and the left modifier stack, left square with the centre. Its two wide keys are the left shift and the left control, both 2U. Five M3 mounting holes, sixteen diodes, one ribbon connector. 123 × 154 mm outline.
Twenty-eight keys, all square to the desk — the flat alpha block — plus the RP2040-Tiny module, the EC11 encoder and the USB bus that feeds both arms. Six M3 mounting holes, two ribbon connectors, and 29 diodes: one more than its key count, because the encoder push gets its own. The smallest outline of the three at 117 × 118 mm. Top edge straight — the module sits flush inside the outline rather than on a tongue.
Twenty-six keys, every one of them turned +45° — the right-hand alphas, Enter and the punctuation column — along with the two widest keys on the board, the 4U spacebar and the right shift. Eight M3 mounting holes, twenty-six diodes, one ribbon connector. The largest board of the three at 170 × 173 mm.




Both arm tips carry a panel-mount USB-C port, so the cable leaves from the side that suits the desk instead of the side the designer chose. In use it is one decision made once: plug into whichever tip faces the machine, leave the other empty, and the keyboard behaves like any other. There is no switch to set and no jumper to move — the two ports are not two devices, they are two doors into the same one. The RP2040-Tiny on the centre board brings USB out on an 8-pin flat cable, and D+/D− run from there through a USBLC6-2SC6 ESD array, across both seam ribbons, to a five-pin header behind each port.


Power is protected in hardware. VBUS from each port reaches the module through a B5819W Schottky OR-diode, so plugging in two hosts cannot back-drive one port’s 5 V from the other.
Data is not duplicated. D+ and D− are one net each to a single transceiver, so two hosts at once contend and neither enumerates. Nothing is damaged; nothing works either. Use one host.
An EC11 rotary encoder sits in the notch to the right of the top row, on the centre board. Channel A on GP12, channel B on GP13, common to ground. The shaft push is not a separate input — it is wired into the key matrix as row 7, column 7 through its own diode, so it maps like any other key and defaults to mute.

Channel A on GP12, channel B on GP13, common to ground, with the shaft passing through an opening added to the case at V5.
Wired into the matrix through its own diode rather than a spare pin, so the press behaves like a key and is remapped like one. Mute by default.
The board is an ordinary QMK keyboard: native RP2040 USB device, one diode per switch, a configuration and layout file that match the physical grid key for key. The fab package carries the firmware directory alongside the gerbers, so the first assembled board has something to flash the day it arrives.
Waveshare module on the centre board. Chosen over the RP2040-Zero because the Zero exposes no USB D+/D− pads — without them there is no way to route USB out to the arm tips. BOOT and RUN come out on pins 5 and 6 of the same flat cable, so the board can be put into bootloader mode without reaching the module itself.
Rows on GP0–GP8, columns on GP29, GP28, GP27, GP26, GP15, GP14, GP9 and GP11 — 72 nodes. Seventy keys and the encoder push fill 71 of them, each through its own diode; one node is free.
Solder-in 1 × 20 ribbon columns at each seam, pin for pin. Pins 16–18 carry VBUS, D− and D+ out to the tip ports; the rest carry matrix lines.
Nothing on these boards is hand-matched, obsolete or hard to buy. One controller module, one encoder, a handful of connectors, and then seventy switches and seventy-one diodes in the most ordinary packages there are. The list below is a count of the footprints in the three board files, not an estimate.
R3H is the fourth revision in this line, after R3E, R3F and R3G. Each one was a pass over the same three boards rather than a redesign. The design is ready to order and has never been built — and one thing still gates the first order: the centre board’s module footprint has not been checked against the manufacturer’s own drawing. Every photograph on this page is a render of the V5 case model. Nothing here has been manufactured, assembled or typed on.
All three boards pass design rule check at zero violations and zero unconnected pads. The matrix, encoder and USB audit passes end to end — pad to ribbon to module. The fabrication package is assembled: gerbers, drill files, bill of materials and pick-and-place per board, the switch-plate DXF, an order sheet, and the QMK firmware.
Centre module footprint. The U1 pad geometry is still derived from the RP2040-Zero and has not been checked against the Tiny’s own mechanical drawing. Overlay it before ordering the centre board, or the module will not seat.
Case interior. The V5 model has no modelled cavity depth, and that dimension decides the encoder shaft length.
Tip apertures. Each 7.2 mm dome opening has to be cut to a standard USB-C panel aperture, roughly 9 × 3.5 mm.
Breakout choice. The panel-mount USB-C board must carry its own CC 5.1 kΩ pull-downs or the port will not enumerate at all.
Idle port. A cable left in the unused port is an unterminated stub. The round trip is about 2.6 ns against a 4 ns full-speed edge, so the analysis says it is tolerated — that has to be confirmed on the first assembled board rather than assumed.
Papers, build records and the ACE-Speak application, hosted as-is.
The annotated key layout, the switch plate, the case interface and the copper on all three boards.
Hardin Labs, Marion, North Carolina. One person, reachable by mail.