{"$schema":"nativecad-dfm-pack/1","id":"peripherals","title":"Peripherals — keyboards, mice, controllers, headsets","sector":"peripherals","version":"2026-09-03","summary":"Key pitch, switch plate cutouts, case/standoff conventions, mouse and controller ergonomic dimensions, USB-C daughterboard conventions, materials and durability tests for computer peripherals.","aliases":["keyboard","mouse","controller","gamepad","headset","mechanical keyboard","keycap"],"crossSector":false,"size":"full","sources":[{"id":"cherry-mx-datasheet","title":"Cherry MX1A-11xx Series Mechanical Key Switch Datasheet","url":"https://www.cherrymx.de/en/mx-original/mx1a-11xx.html","accessed":"2026-09-03"},{"id":"kailh-choc-datasheet","title":"Kailh Choc (PG1350) Low-Profile Mechanical Switch Datasheet","url":"https://www.kailhswitch.com/mechanical-keyboard-switches/low-profile-switches/choc-series.html","accessed":"2026-09-03"},{"id":"keyboard-plate-guide","title":"1upkeyboards — How to Design a Mechanical Keyboard Switch Plate","url":"https://www.1upkeyboards.com/shop/blog/how-to-design-a-keyboard-plate/","accessed":"2026-09-03"},{"id":"qmk-hardware-guide","title":"QMK Firmware — Hand-Wiring and Custom PCB/Plate Reference Docs","url":"https://docs.qmk.fm/#/hand_wire","accessed":"2026-09-03"},{"id":"usb-c-spec","title":"USB Type-C Cable and Connector Specification, Release 2.3 (USB-IF)","url":"https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-23","accessed":"2026-09-03"},{"id":"omron-d2fc-datasheet","title":"Omron D2FC-F-7N Micro Switch Datasheet (mouse main button)","url":"https://components.omron.com/product-detail?partId=2635","accessed":"2026-09-03"},{"id":"kailh-gm-datasheet","title":"Kailh GM 4.0/GM 8.0 Mouse Micro Switch Series Datasheet","url":"https://www.kailhswitch.com/mouse-switches/gm-series.html","accessed":"2026-09-03"},{"id":"mouse-grip-ergonomics-study","title":"Chen, H.-C. et al., 'The effects of computer mouse shape on hand-wrist posture during different grip styles', Applied Ergonomics","url":"https://www.sciencedirect.com/science/article/abs/pii/S0003687013001682","accessed":"2026-09-03"},{"id":"bifma-g1","title":"BIFMA G1-2013 Ergonomics Guideline for VDT (Computer) Workstations","url":"https://www.bifma.org/","accessed":"2026-09-03"},{"id":"cherry-mx-installation-guide","title":"Cherry MX Installation Notes — mounting plate and PCB spacing","url":"https://www.cherrymx.de/en/dev.html","accessed":"2026-09-03"},{"id":"keycap-profile-reference","title":"Keycaps.info — Keycap Profile Height and Sculpt Reference (OEM, Cherry, SA, XDA, DSA)","url":"https://keycaps.info/","accessed":"2026-09-03"},{"id":"gaming-mouse-durability-standard","title":"Logitech / vendor gaming-mouse click-durability and drop-test disclosures (typical spec sheets)","url":"https://www.logitechg.com/en-us/innovation/mice.html","accessed":"2026-09-03"},{"id":"controller-ergonomics-reference","title":"Xbox / DualShock controller grip and trigger-travel teardown measurements (iFixit)","url":"https://www.ifixit.com/Device/Game_Console","accessed":"2026-09-03"},{"id":"headset-clamp-force-reference","title":"RTINGS.com Headphone Test Methodology — clamping force and ear-cup measurements","url":"https://www.rtings.com/headphones/tests/comfort","accessed":"2026-09-03"},{"id":"pbt-abs-material-reference","title":"Keycaps.info — ABS vs PBT keycap material properties and shine wear","url":"https://keycaps.info/materials","accessed":"2026-09-03"}],"entries":[{"id":"key-pitch-mx","kind":"dimension","tier":1,"title":"Standard MX key pitch (19.05 mm / 0.75 in)","summary":"Full-size mechanical key units sit on a 19.05 mm (0.75 in) grid in both X and Y; a 1u key occupies one grid cell and wider keys (2u, 6.25u spacebar) are integer or near-integer multiples of this pitch.","applies":["mechanical keyboard","MX switch","keycap"],"value":{"value":19.05,"unit":"mm","note":"0.75 in exactly; do not round to 19 mm"},"basis":"Inherited from IBM Model M / typewriter key spacing; every MX-compatible keycap set and plate/PCB CAD tool assumes this grid.","sources":["keyboard-plate-guide","qmk-hardware-guide"],"tags":["key pitch","layout","grid","mx"]},{"id":"key-pitch-choc","kind":"dimension","tier":1,"title":"Choc low-profile key pitch (18 x 17 mm)","summary":"Kailh Choc low-profile keyboards commonly use an 18 mm (X) x 17 mm (Y) pitch instead of the MX 19.05 mm grid, though some Choc boards keep 19.05 mm X-pitch and tighten only Y.","applies":["low-profile keyboard","choc switch","split keyboard"],"value":{"table":[{"axis":"X","mm":18},{"axis":"Y","mm":17}]},"basis":"Choc's shorter travel and smaller housing let designers tighten the grid for a more compact board; 18x17 is the de-facto community convention, not an official Kailh spec.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["key pitch","choc","low profile","grid"]},{"id":"mx-switch-plate-cutout","kind":"dimension","tier":1,"title":"MX switch plate cutout (14.0 x 14.0 mm, +0.05 mm)","summary":"Cherry MX and MX-compatible switches need a 14.0 x 14.0 mm square plate cutout with +0.05 mm positive tolerance (14.00-14.05 mm) so the switch's plate clips seat without being loose enough to rattle.","applies":["mx switch","switch plate","hot-swap socket"],"value":{"min":14,"max":14.05,"typical":14.02,"unit":"mm"},"basis":"Cherry's own mounting-plate drawing specifies 14.0 mm square with the switch housing's clip ribs sized for a light press fit at +0.05 mm.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["plate cutout","mx","tolerance"]},{"id":"choc-switch-plate-cutout","kind":"dimension","tier":1,"title":"Choc switch plate cutout (~14.5 x 14.5 mm)","summary":"Kailh Choc v1/v2 switches use a slightly larger square plate cutout, commonly cut 14.4-14.5 mm per side (looser than MX's 14.0 mm) because the Choc housing's retention ribs are shallower.","applies":["choc switch","low-profile plate"],"value":{"min":14.4,"max":14.5,"typical":14.45,"unit":"mm"},"basis":"Community-measured convention across open-source Choc plate files; Kailh does not publish as tight a cutout tolerance as Cherry does for MX.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["plate cutout","choc","tolerance"]},{"id":"plate-thickness","kind":"dimension","tier":1,"title":"Switch plate thickness (1.5 mm typical)","summary":"Keyboard switch plates run 1.2-1.6 mm thick depending on material; 1.5 mm is the most common thickness across steel, aluminium, FR4 and polycarbonate plates and is what most switch clip geometry assumes.","applies":["switch plate","case"],"value":{"min":1.2,"max":1.6,"typical":1.5,"unit":"mm","options":["steel","aluminum","FR4","polycarbonate"]},"basis":"Cherry's clip-rib height and standard plate mounting drawings assume ~1.5 mm engagement; thinner plates reduce clip retention, thicker plates need the switch pins to still reach the PCB.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["plate","thickness","material"]},{"id":"plate-to-pcb-spacing-mx","kind":"dimension","tier":1,"title":"Plate-to-PCB spacing, MX (5.0 mm)","summary":"The gap from the underside of an MX switch plate to the top of the PCB is 5.0 mm — the distance MX switch pins and stem travel through before soldering onto the board.","applies":["mx switch","case design","tray mount"],"value":{"value":5,"unit":"mm"},"basis":"Fixed by Cherry MX's housing height below the plate-retention clips; case standoffs and PCB mounting posts are dimensioned around this 5 mm gap.","sources":["cherry-mx-installation-guide","keyboard-plate-guide"],"tags":["plate to pcb","mx","standoff"]},{"id":"plate-to-pcb-spacing-choc","kind":"dimension","tier":1,"title":"Plate-to-PCB spacing, Choc (3.4 mm)","summary":"Kailh Choc's shorter low-profile housing needs only 3.4 mm from plate underside to PCB top, versus 5.0 mm for MX — the main reason Choc boards can be built thinner.","applies":["choc switch","low-profile case"],"value":{"value":3.4,"unit":"mm"},"basis":"Set by the Choc housing height below its plate clips; used across open-source Choc case/standoff designs.","sources":["kailh-choc-datasheet","keyboard-plate-guide"],"tags":["plate to pcb","choc","standoff"]},{"id":"stabilizer-cutout-2u","kind":"dimension","tier":1,"title":"Cherry-style stabilizer plate cutout, 2u key (Costar/Cherry)","summary":"A 2u key (backspace, tab, etc.) needs a Cherry-style stabilizer cutout: a 3.0 mm wide slot with wire-post holes spaced 23.8 mm either side of the switch cutout centre.","applies":["stabilizer","2u key","backspace"],"value":{"value":23.8,"unit":"mm","note":"stem-hole spacing either side of switch centre; slot width ~3.0 mm"},"basis":"Cherry-style stabilizer geometry is the de-facto standard adopted by nearly every plate/PCB design tool (KLE, plate generators).","sources":["keyboard-plate-guide","cherry-mx-installation-guide"],"tags":["stabilizer","2u","cutout"]},{"id":"stabilizer-cutout-large","kind":"dimension","tier":2,"title":"Stabilizer cutouts for 6.25u and 7u keys (spacebar)","summary":"Wider stabilized keys use the same Cherry-style stem geometry but a longer wire and wider plate cutout: 6.25u spacebar wire-post spacing is ~100 mm, 6u is ~95.5 mm, 7u is ~114.3 mm, each centred on the key.","applies":["spacebar","6.25u","7u","stabilizer"],"value":{"table":[{"key":"6u","spacing_mm":95.5},{"key":"6.25u","spacing_mm":100},{"key":"7u","spacing_mm":114.3}]},"basis":"Measured from common spacebar stabilizer wire lengths used across mainstream keyboard PCB/plate design files.","sources":["keyboard-plate-guide"],"tags":["stabilizer","spacebar","cutout"]},{"id":"case-wall-thickness-keyboard","kind":"dimension","tier":1,"title":"Keyboard case wall thickness (2-4 mm)","summary":"Injection-moulded or CNC keyboard case walls run 2-4 mm: 2-2.5 mm for a moulded ABS/PC shell, 3-4 mm for a CNC'd aluminium case that also needs to resist flex under typing force.","applies":["keyboard case","enclosure"],"value":{"min":2,"max":4,"typical":3,"unit":"mm"},"basis":"Below ~2 mm a moulded shell warps and an aluminium case rings/flexes; above 4 mm adds weight and cost with no stiffness benefit for a desktop keyboard.","sources":["keyboard-plate-guide"],"tags":["case","wall thickness","enclosure"]},{"id":"standoff-m2-keyboard","kind":"fastener","tier":2,"title":"M2 standoffs for plate/PCB/case stack","summary":"Keyboard plate-to-PCB-to-case stacks are almost universally fastened with M2 standoffs and screws (M2x5 to M2x10 depending on stack height); clearance holes and tap-drill sizes follow the general M2 hardware convention.","applies":["case assembly","plate mount","pcb mount"],"value":{"value":2,"unit":"mm","note":"see hardware/clearance-holes-metric for M2 clearance (2.4 mm) and tap-drill sizes"},"basis":"M2 is small enough to fit between switches at 19.05 mm pitch without hitting adjacent switch legs, while still giving enough thread engagement in a 2-3 mm boss.","sources":["keyboard-plate-guide"],"tags":["standoff","m2","fastener"],"see":["hardware/clearance-holes-metric"]},{"id":"tray-mount-vs-gasket-mount","kind":"feature","tier":2,"title":"Tray-mount vs gasket-mount case construction","summary":"Tray-mount screws the plate/PCB rigidly to standoffs at 6-9 points, giving a stiff, sometimes 'clacky' feel; gasket-mount floats the plate/PCB on a compressible gasket strip (1.5-3 mm silicone/poron) between top and bottom case halves for a softer, more uniform typing feel.","applies":["case construction","typing feel"],"basis":"Gasket-mount removes the rigid standoff-to-plate contact points that cause per-key feel variation in tray-mount boards; it is the dominant premium-board construction as of the mid-2020s.","sources":["keyboard-plate-guide"],"tags":["gasket mount","tray mount","case"],"detail":"Gasket-mount cases still need locating features (silicone gasket channels or foam pads, typically 1.5-3 mm compressed thickness) so the plate/PCB sandwich cannot shift laterally; tray-mount standoffs sit directly under the plate at a subset of screw positions matching the PCB's mount holes."},{"id":"typing-angle","kind":"dimension","tier":1,"title":"Keyboard typing angle (3-8 degrees)","summary":"A keyboard's typing angle — the front-to-back tilt of the key plane — runs 3-8 degrees for most boards; flip-out feet typically add 2-4 degrees on top of a 3-6 degree built-in base angle.","applies":["ergonomics","case design"],"value":{"min":3,"max":8,"typical":6,"unit":"deg"},"basis":"Angles above ~8-10 degrees increase wrist extension and RSI risk; most ergonomic guidance recommends keeping the wrist closer to neutral, favouring the low end of this range or a negative-tilt/tented design.","sources":["bifma-g1","keyboard-plate-guide"],"tags":["typing angle","ergonomics"]},{"id":"front-height-keyboard","kind":"dimension","tier":2,"title":"Keyboard front (home-row) height","summary":"Front-edge height (desk surface to the home row's top) typically runs 15-30 mm for a low-profile board and 25-40 mm for a standard-height mechanical board with a plate, PCB, switches and case stack.","applies":["case design","ergonomics"],"value":{"min":15,"max":40,"typical":25,"unit":"mm"},"basis":"Sets the wrist-extension angle in combination with the typing angle; keyboards marketed as 'low profile' target under ~20 mm front height.","sources":["keyboard-plate-guide","bifma-g1"],"tags":["front height","case design"]},{"id":"bezel-width-keyboard","kind":"dimension","tier":2,"title":"Keyboard case bezel width","summary":"Side and top bezels (case wall beyond the outermost switch cutout) run 4-15 mm; sub-10 mm bezels are marketed as 'compact'/'low-bezel', while 12-15 mm+ leaves room for a rotary encoder, USB-C port reinforcement or badge.","applies":["case design","enclosure"],"value":{"min":4,"max":15,"typical":8,"unit":"mm"},"basis":"Bezel width trades footprint against room for the case wall to stay above the minimum wall-thickness rule and clear internal standoffs.","sources":["keyboard-plate-guide"],"tags":["bezel","case design"]},{"id":"keycap-profile-heights","kind":"dimension","tier":2,"title":"Keycap profile heights (OEM, Cherry, SA, XDA, DSA)","summary":"Common keycap profiles differ in total height from the plate: DSA/XDA (uniform) ~7.5-8.5 mm, Cherry (sculpted) ~7.7-9.9 mm row-dependent, OEM (sculpted) ~9.1-11.4 mm row-dependent, SA (tall sculpted) ~11.5-14.7 mm row-dependent.","applies":["keycaps","profile"],"value":{"table":[{"profile":"DSA","min_mm":7.5,"max_mm":8.5},{"profile":"XDA","min_mm":7.9,"max_mm":8.9},{"profile":"Cherry","min_mm":7.7,"max_mm":9.9},{"profile":"OEM","min_mm":9.1,"max_mm":11.4},{"profile":"SA","min_mm":11.5,"max_mm":14.7}]},"basis":"Profile height determines finger reach and case front-height/typing-angle pairing; taller profiles (SA) are usually paired with flatter typing angles to keep total key height reasonable.","sources":["keycap-profile-reference"],"tags":["keycap profile","height"]},{"id":"usb-c-cutout-daughterboard","kind":"dimension","tier":1,"title":"USB-C port cutout (9.0 x 3.3 mm)","summary":"A USB-C receptacle case cutout is 9.0 mm wide x 3.3 mm tall to clear the connector shell; the daughterboard carrying it is usually screwed or slotted to the case wall independent of the main PCB so cable-insertion force never loads switch-side solder joints.","applies":["usb-c","daughterboard","case cutout"],"value":{"value":{"width":9,"height":3.3},"unit":"mm"},"basis":"9.0 x 3.3 mm matches the USB Type-C receptacle shell outline per the USB-IF connector spec, plus a small clearance margin for case tolerance.","sources":["usb-c-spec"],"tags":["usb-c","cutout","daughterboard"]},{"id":"daughterboard-mounting","kind":"feature","tier":2,"title":"USB-C daughterboard mounting convention","summary":"The USB-C daughterboard is mounted to the case (not floating on the flex cable alone) via two M2 screw bosses or a slot-and-clip channel, with a short (15-30 mm) flex-PCB or wire jumper to the main PCB so repeated cable insertion/removal stresses the case, not the solder joints.","applies":["usb-c","daughterboard","case assembly"],"basis":"Recurring failure mode in cheap keyboards is a cracked USB-C solder joint from cable-insertion torque; anchoring the connector to the case rather than the main PCB is the standard fix.","sources":["usb-c-spec","keyboard-plate-guide"],"tags":["usb-c","daughterboard","reliability"],"see":["hardware/clearance-holes-metric"]},{"id":"feet-bumpons","kind":"feature","tier":2,"title":"Case feet / bumpons","summary":"Keyboard case feet (bumpons) are typically 8-14 mm diameter silicone or rubber pads, 1.5-3 mm tall, placed at the four corners plus centre-rear for boards over ~350 mm wide, to prevent desk sliding and add a small typing-angle lift.","applies":["case design","feet"],"value":{"min":8,"max":14,"typical":10,"unit":"mm"},"basis":"Sized to give enough contact-patch friction without the pad itself becoming a visible/tactile lump under the case; larger boards need a centre foot to stop centre-span flex.","sources":["keyboard-plate-guide"],"tags":["feet","bumpons","case"]},{"id":"keyboard-weight-targets","kind":"dimension","tier":3,"title":"Keyboard weight targets by size class","summary":"Typical assembled weights: 60% board 500-750 g, TKL (80%) 700-1100 g, full-size 900-1400 g; aluminium-cased 'enthusiast' boards run 30-80% heavier than the same layout in polycarbonate/ABS.","applies":["case design","weight"],"value":{"table":[{"size":"60%","min_g":500,"max_g":750},{"size":"TKL","min_g":700,"max_g":1100},{"size":"full-size","min_g":900,"max_g":1400}]},"basis":"Weight scales with footprint and case material; heavier boards resist sliding during typing without needing as many/large feet.","sources":["keyboard-plate-guide"],"tags":["weight","case design"]},{"id":"corner-relief-plate-cutout","kind":"rule","tier":2,"title":"Corner relief on laser/CNC-cut plate cutouts","summary":"A CNC-milled or laser-cut switch plate needs a small relief (0.3-0.5 mm radius, or an intentional over-cut notch) at each inside corner of the 14 mm square cutout, since a milling cutter cannot produce a sharp inside corner and a sharp corner concentrates stress in a thin plate.","applies":["switch plate","manufacturing"],"basis":"A square inside corner needs an infinitely small tool radius; a real end mill leaves a fillet equal to its own radius unless relieved, and stamped/laser plates without relief are more prone to cracking at the corner under repeated switch insertion.","sources":["keyboard-plate-guide"],"tags":["corner relief","cnc","laser cut","plate"]},{"id":"switch-plate-retention-clip","kind":"feature","tier":3,"title":"Switch housing plate-retention clips","summary":"MX switch housings have two small side clips (~0.3-0.5 mm engagement) that snap into the 14.0-14.05 mm plate cutout; hot-swap sockets rely on the same clip engagement plus the PCB socket to hold the switch square to the plate.","applies":["mx switch","hot swap","plate retention"],"basis":"Clip engagement depth is why the +0.05 mm upper tolerance on the cutout matters: too loose and the switch rocks in the plate, contributing to keycap wobble.","sources":["cherry-mx-datasheet"],"tags":["retention clip","hot swap","plate"]},{"id":"keycap-stem-tolerance","kind":"tolerance","tier":2,"title":"Keycap stem-to-switch-stem clearance","summary":"MX-compatible keycap stems need 0.05-0.15 mm total clearance around the switch's cross-shaped stem (nominal 4x4 mm cross-arm) to slide on without excess wobble; too tight a stem cracks on installation, too loose causes audible rattle.","applies":["keycap","stem fit"],"value":{"min":0.05,"max":0.15,"unit":"mm"},"basis":"Injection-moulded keycap stems shrink slightly on cooling; the clearance band balances installation force against wobble across ABS/PBT and typical moulding tolerances.","sources":["cherry-mx-datasheet","pbt-abs-material-reference"],"tags":["keycap","stem","tolerance"]},{"id":"test-keystroke-cycles","kind":"test","tier":2,"title":"Keystroke durability cycle test","summary":"Mechanical switches are rated 50-100 million keystroke cycles (Cherry MX: 50M for standard, up to 100M for some low-force variants); a full keyboard design should assume the switch, not the plate/PCB/stem, is the wear-limiting part at these cycle counts.","applies":["mechanical switch","durability"],"value":{"min":50000000,"max":100000000,"typical":50000000,"unit":"cycles"},"basis":"Cherry's own MX datasheet publishes the 50M/100M cycle ratings measured to contact-resistance failure, not physical breakage; plate cutout tolerance and stem fit must stay stable across that many insertions.","sources":["cherry-mx-datasheet"],"tags":["test","durability","keystroke cycles"]},{"id":"test-mouse-click-cycles","kind":"test","tier":2,"title":"Mouse button click-durability test","summary":"Mouse main-button micro switches are rated 10-50 million clicks for standard Omron D2FC-series switches and up to 80 million for gaming-grade Kailh GM switches; button housing and dome/leaf-spring geometry must survive that actuation count without a shift in pre-travel.","applies":["mouse switch","durability"],"value":{"min":10000000,"max":80000000,"typical":20000000,"unit":"cycles"},"basis":"Omron and Kailh publish these ratings to contact-degradation failure; a mouse shell's button-arm flex geometry (thickness, pivot radius) needs enough fatigue margin to outlast the switch itself.","sources":["omron-d2fc-datasheet","kailh-gm-datasheet"],"tags":["test","durability","click cycles"]},{"id":"test-drop-1m","kind":"test","tier":2,"title":"1 m drop test","summary":"Peripherals are commonly drop-tested from 1 m onto a hard surface (6 faces + 4-8 corners/edges); passing implies case corners carry at least a 2 mm radius and no unsupported internal wall spans more than ~40 mm between ribs/bosses.","applies":["case design","durability"],"value":{"value":1000,"unit":"mm"},"basis":"1 m approximates a typical desk or lap drop height; sharp corners concentrate impact stress and long unsupported spans are what crack first in ABS/PC shells.","sources":["gaming-mouse-durability-standard","controller-ergonomics-reference"],"tags":["test","drop test","durability"]},{"id":"test-cable-flex","kind":"test","tier":2,"title":"Cable flex-life test","summary":"USB/detachable peripheral cables are typically flex-tested to 5,000-20,000 bend cycles at the strain-relief boot before conductor failure; the case-side cable entry needs a strain-relief boot or moulded grommet with a bend radius at least 3x the cable's own diameter.","applies":["cable","strain relief","durability"],"value":{"min":5000,"max":20000,"unit":"cycles"},"basis":"Repeated flexing concentrates fatigue right at the case exit point; a boot/grommet spreading the bend over a larger radius is the standard mitigation.","sources":["gaming-mouse-durability-standard"],"tags":["test","cable flex","durability"]},{"id":"test-keycap-shine-wear","kind":"test","tier":3,"title":"Keycap surface wear (shine) test","summary":"Keycap surface finish is judged for visible 'shine' (worn-smooth gloss); ABS keycaps typically show shine within 1-3 years of daily use, while PBT resists it well beyond 5 years, which is why PBT is preferred for high-touch keys (WASD, home row, spacebar).","applies":["keycap","material","wear"],"basis":"ABS's lower surface hardness and higher plasticiser content wear to a visible sheen faster than PBT under finger-oil and repeated contact; a widely cited practical (non-standardised) durability difference.","sources":["pbt-abs-material-reference"],"tags":["test","wear","keycap material"]},{"id":"material-abs-keycap","kind":"material","tier":2,"title":"ABS keycaps","summary":"ABS (acrylonitrile butadiene styrene) keycaps are the cheaper, glossier default: easy to injection-mould with sharp legend detail (double-shot or pad-print), but develop a visible shine after 1-3 years of daily use on high-contact keys.","applies":["keycap material"],"value":{"table":[{"property":"density","value":1.05,"unit":"g/cm3"},{"property":"typical wall","value":1,"unit":"mm"}]},"basis":"Lower cost and easier double-shot moulding than PBT make ABS the default on budget and mid-range keyboards despite its worse long-term shine resistance.","sources":["pbt-abs-material-reference"],"tags":["material","abs","keycap"]},{"id":"material-pbt-keycap","kind":"material","tier":2,"title":"PBT keycaps","summary":"PBT (polybutylene terephthalate) keycaps cost roughly 1.5-2x more than ABS and mould slightly rougher/textured, but resist shine and finger-oil sheen for 5+ years versus 1-3 for ABS, and are the default on enthusiast/premium keyboards.","applies":["keycap material"],"value":{"table":[{"property":"density","value":1.3,"unit":"g/cm3"},{"property":"typical wall","value":1.2,"unit":"mm"}]},"basis":"PBT's higher crystallinity and hardness resist the surface polishing effect of finger contact that causes ABS's characteristic shine.","sources":["pbt-abs-material-reference"],"tags":["material","pbt","keycap"]},{"id":"material-pc-case","kind":"material","tier":2,"title":"Polycarbonate (PC) case shells","summary":"PC is used for translucent/RGB-diffusing case shells and premium keyboard bottom cases needing more impact toughness than ABS; typical wall 2.5-3.5 mm, often blended with ABS (PC/ABS) for a cost/toughness balance.","applies":["case material","enclosure"],"value":{"table":[{"property":"density","value":1.2,"unit":"g/cm3"},{"property":"tensile modulus","value":2300,"unit":"MPa"}]},"basis":"PC's higher impact strength than ABS suits a case that must survive drop tests and repeated flexing at gasket-mount screw points.","sources":["gaming-mouse-durability-standard"],"tags":["material","polycarbonate","case"]},{"id":"material-6061-plate-case","kind":"material","tier":2,"title":"6061-T6 aluminium plates and cases","summary":"6061-T6 is the standard aluminium alloy for CNC keyboard plates and premium case shells: good machinability, anodizes cleanly, and (at 1.5 mm plate thickness) gives a noticeably stiffer, higher-pitched typing sound than steel or polymer plates.","applies":["plate material","case material"],"value":{"table":[{"property":"density","value":2.7,"unit":"g/cm3"},{"property":"yield strength","value":276,"unit":"MPa"}]},"basis":"6061-T6's machinability and anodizing response make it the default 'enthusiast' CNC aluminium alloy across the hobby, distinct from cast or die-cast aluminium used in mass-market cases.","sources":["keyboard-plate-guide"],"tags":["material","aluminum","6061","plate"]},{"id":"material-fr4-plate","kind":"material","tier":2,"title":"FR4 (fibreglass PCB laminate) plates","summary":"FR4 plates (the same glass-epoxy laminate as PCBs, usually 1.2-1.6 mm) are prized for their flex — noticeably more give under keypress than steel, aluminium or polycarbonate — giving a softer bottom-out feel at the cost of plate rigidity.","applies":["plate material"],"value":{"table":[{"property":"density","value":1.85,"unit":"g/cm3"},{"property":"flexural modulus","value":18000,"unit":"MPa"}]},"basis":"FR4's glass-fibre/epoxy composite has a much lower flexural modulus than metal plates at the same thickness, which enthusiast builds exploit deliberately for feel.","sources":["keyboard-plate-guide"],"tags":["material","fr4","plate"]},{"id":"material-pom-switch-housing","kind":"material","tier":2,"title":"POM (Delrin) switch and stem components","summary":"POM (polyoxymethylene, e.g. Delrin) is the standard material for switch housings, stems and slider components: low friction (coefficient ~0.2) and wear resistance across the 50-100M cycle switch rating, sometimes chosen for keycaps for its smoother, waxier feel than ABS/PBT.","applies":["switch material","keycap material"],"value":{"table":[{"property":"density","value":1.41,"unit":"g/cm3"},{"property":"coefficient of friction","value":0.2,"unit":"ratio"}]},"basis":"POM's self-lubricating, low-friction surface is why switch sliders keep a consistent actuation feel over their 50-100M cycle rating rather than developing scratchy travel.","sources":["cherry-mx-datasheet"],"tags":["material","pom","delrin","switch"]},{"id":"mouse-dims-palm-grip","kind":"dimension","tier":1,"title":"Mouse dimensions for palm grip","summary":"Palm-grip mice (whole hand rests on the shell) run larger: length 120-130 mm, width 62-70 mm, height (rear hump) 38-45 mm — tall enough for the palm to sit on the hump rather than hover above it.","applies":["mouse shell","palm grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":120,"max_mm":130},{"axis":"width","min_mm":62,"max_mm":70},{"axis":"height","min_mm":38,"max_mm":45}]},"basis":"Palm grip needs a tall rear hump and long shell so the whole hand (not just fingertips) is supported, unlike claw/fingertip grips which favour a lower, shorter shell.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","palm grip","dimension"]},{"id":"mouse-dims-claw-grip","kind":"dimension","tier":1,"title":"Mouse dimensions for claw grip","summary":"Claw-grip mice (arched fingers, palm barely touching) suit a shorter, lower shell: length 110-120 mm, width 58-65 mm, height 34-40 mm, often with a steeper front slope for the fingertips to hook over the front edge.","applies":["mouse shell","claw grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":110,"max_mm":120},{"axis":"width","min_mm":58,"max_mm":65},{"axis":"height","min_mm":34,"max_mm":40}]},"basis":"A lower rear hump and shorter length keep the palm from needing to fully rest, matching the arched-finger claw posture.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","claw grip","dimension"]},{"id":"mouse-dims-fingertip-grip","kind":"dimension","tier":2,"title":"Mouse dimensions for fingertip grip","summary":"Fingertip-grip mice (only fingertips touch, palm fully off the shell) are the smallest and lowest: length 100-115 mm, width 55-62 mm, height 30-36 mm, favouring a symmetrical, low-profile shell for fast lift-off and repositioning.","applies":["mouse shell","fingertip grip","ergonomics"],"value":{"table":[{"axis":"length","min_mm":100,"max_mm":115},{"axis":"width","min_mm":55,"max_mm":62},{"axis":"height","min_mm":30,"max_mm":36}]},"basis":"A small, low, often symmetric shell minimises the contact area a fingertip-grip user needs to clear when lifting and repositioning the mouse rapidly.","sources":["mouse-grip-ergonomics-study"],"tags":["mouse","fingertip grip","dimension"]},{"id":"mouse-sensor-placement","kind":"feature","tier":2,"title":"Optical sensor placement","summary":"The optical/laser sensor sits on the shell centreline, offset 3-8 mm behind the geometric centre of the mouse's footprint (biased toward the palm side), at a fixed 2.0-2.5 mm standoff height from the PCB to the mouse-feet contact plane for correct focal distance.","applies":["mouse","sensor","pcb layout"],"value":{"min":2,"max":2.5,"unit":"mm"},"basis":"Centreline placement avoids introducing yaw error into cursor tracking during rotation about the wrist; the standoff height is set by the sensor lens's fixed focal distance to the tracking surface.","sources":["gaming-mouse-durability-standard"],"tags":["sensor","placement","mouse"]},{"id":"mouse-button-travel","kind":"dimension","tier":1,"title":"Main button travel and pre-travel","summary":"Main mouse buttons have 1.5-2.5 mm total travel with 0.3-0.8 mm pre-travel (movement before the switch clicks); the shell's flexure button arm is tuned in thickness (0.6-1.0 mm) to give this travel without fatiguing before the switch's rated cycle life.","applies":["mouse button","travel","ergonomics"],"value":{"min":1.5,"max":2.5,"typical":2,"unit":"mm"},"basis":"Pre-travel and total travel are dominated by the shell's button-arm flexure design, not the micro switch itself, which typically actuates over <1 mm of its own plunger movement.","sources":["omron-d2fc-datasheet","kailh-gm-datasheet"],"tags":["button travel","pre-travel","mouse"]},{"id":"mouse-side-button-position","kind":"feature","tier":2,"title":"Side button placement","summary":"Side (thumb) buttons sit 25-40 mm forward of the shell's rear edge on the left side (right-handed mice), positioned so a relaxed thumb rests just below them and only extends to press, avoiding accidental actuation during normal grip.","applies":["mouse","side button","ergonomics"],"value":{"min":25,"max":40,"unit":"mm"},"basis":"Placed by where a relaxed thumb naturally sits against the shell for the target grip style; too far forward causes accidental presses during aggressive flicks, too far back is unreachable.","sources":["mouse-grip-ergonomics-study"],"tags":["side button","thumb button","mouse"]},{"id":"mouse-skate-thickness","kind":"dimension","tier":2,"title":"Mouse skate (foot/glide pad) thickness","summary":"PTFE mouse skates (feet) run 0.6-0.8 mm thick, applied to 3-5 contact pads around the sensor; thickness sets the sensor-to-surface standoff and is chosen to balance glide smoothness against skate wear life.","applies":["mouse","skate","feet"],"value":{"min":0.6,"max":0.8,"unit":"mm"},"basis":"0.6-0.8 mm is thin enough to keep the sensor within its focal range while thick enough that normal wear does not drop the sensor below its minimum working height before the skate needs replacing.","sources":["gaming-mouse-durability-standard"],"tags":["skate","feet","mouse"]},{"id":"mouse-shell-wall-thickness","kind":"dimension","tier":1,"title":"Mouse shell wall thickness","summary":"Injection-moulded mouse shell walls run 1.2-1.8 mm — thin enough to mould without sink marks or long cooling times, thick enough to resist flex under grip pressure and to survive the 1 m drop test at unsupported spans.","applies":["mouse shell","enclosure"],"value":{"min":1.2,"max":1.8,"typical":1.5,"unit":"mm"},"basis":"Sits in the general thin-wall injection-moulding sweet spot; ribs and bosses (not thicker walls) carry the extra local stiffness a shell needs at screw points and the button-arm root.","sources":["gaming-mouse-durability-standard"],"tags":["wall thickness","mouse shell"]},{"id":"mouse-weight-targets","kind":"dimension","tier":3,"title":"Mouse weight targets","summary":"Wired gaming mice commonly target 60-90 g (lightweight/perforated shells can reach 45-55 g); wireless mice with a battery typically run 75-115 g including the internal cell.","applies":["mouse","weight"],"value":{"min":45,"max":115,"typical":80,"unit":"g"},"basis":"Weight is a marketed competitive spec in gaming mice; perforated/honeycomb shells trade shell stiffness for the lower end of this range.","sources":["gaming-mouse-durability-standard"],"tags":["weight","mouse"]},{"id":"controller-grip-diameter","kind":"dimension","tier":1,"title":"Controller handgrip diameter","summary":"Console-style controller handgrips (the cylindrical/tapered section under each hand) run 34-40 mm across at their widest, tapering to 28-32 mm near the top where the fingers curl around the trigger housing.","applies":["controller","grip","ergonomics"],"value":{"min":28,"max":40,"typical":36,"unit":"mm"},"basis":"Sized to fill an adult palm without over-extending the fingers to reach the face buttons/sticks on top, based on measured teardown dimensions of mainstream console controllers.","sources":["controller-ergonomics-reference"],"tags":["controller","grip diameter","ergonomics"]},{"id":"controller-trigger-travel","kind":"dimension","tier":2,"title":"Analog trigger travel","summary":"Analog shoulder triggers (L2/R2, LT/RT) have 8-11 mm of rotational travel at the fingertip contact point, pivoting about an axis near the trigger's top edge, with a detectable soft-stop or click around 80-90% travel on controllers offering a digital 'hair-trigger' mode.","applies":["controller","trigger","ergonomics"],"value":{"min":8,"max":11,"unit":"mm"},"basis":"Travel and pivot geometry are set by the potentiometer or Hall-effect sensor's usable rotation range combined with a lever ratio that keeps fingertip force reasonable.","sources":["controller-ergonomics-reference"],"tags":["trigger travel","controller"]},{"id":"headset-band-clamp-force","kind":"dimension","tier":2,"title":"Headset band clamping force","summary":"Over-ear headset headbands apply 3-6 N of clamping force at the ear cups; below ~3 N the headset feels loose and slides during head movement, above ~6-7 N causes discomfort and jaw/temple pressure within an hour of wear.","applies":["headset","band","ergonomics"],"value":{"min":3,"max":6,"typical":4.5,"unit":"N"},"basis":"Clamping force is usually measured with a spreader jig at the ear-cup centres per common headphone-review methodology; the 3-6 N band is where most comfortable, secure headsets land.","sources":["headset-clamp-force-reference"],"tags":["clamp force","headset","ergonomics"]},{"id":"headset-earcup-id","kind":"dimension","tier":2,"title":"Ear-cup internal diameter/depth","summary":"Over-ear headset ear cups need an internal opening at least 55-60 mm across and 15-20 mm of internal depth (cushion to driver face) to avoid the ear touching the driver housing for most adult ear sizes; on-ear designs instead use a 45-55 mm pad that rests on (not around) the ear.","applies":["headset","ear cup","ergonomics"],"value":{"min":55,"max":60,"unit":"mm"},"basis":"Ear-touching-driver is one of the most common comfort complaints in headset reviews; the depth/diameter combination is chosen from anthropometric ear-size data.","sources":["headset-clamp-force-reference"],"tags":["ear cup","headset","dimension"]},{"id":"headset-mic-boom-conventions","kind":"note","tier":3,"title":"Boom microphone mounting conventions","summary":"Detachable/flip-up boom microphones typically mount via a 3.5 mm mono/TRRS jack or a proprietary snap connector on the left ear cup, with a flexible gooseneck or a pivot-and-slide mechanism giving roughly 90-180 degrees of positional adjustment toward the mouth.","applies":["headset","microphone"],"basis":"Left-side mounting is a near-universal convention so the boom does not conflict with a right-handed mouse hand's cable routing, though it carries no numeric spec of its own beyond adjustment range.","sources":["headset-clamp-force-reference"],"tags":["microphone","boom","headset"]},{"id":"usb-c-connector-standard","kind":"standard","tier":2,"title":"USB Type-C connector specification","summary":"The USB-IF Type-C spec defines the receptacle outline (the 9.0 x 3.3 mm case cutout used across peripherals), insertion/removal durability (rated 10,000 cycles minimum) and the reversible-plug envelope every USB-C peripheral port must clear.","applies":["usb-c","connector"],"basis":"Any peripheral daughterboard cutout, PCB footprint and case clearance for a USB-C port derives from this spec's receptacle outline and durability rating.","sources":["usb-c-spec"],"tags":["standard","usb-c","connector"]},{"id":"recipe-60-keyboard-plate","kind":"recipe","tier":2,"title":"Recipe: 60% keyboard switch plate with MX cutout grid","summary":"Worked build: a 300x105x1.5 mm plate blank with a 5x3 grid of 14mm square MX cutouts at 19.05mm pitch, built as three row-patterns (box + cad_pattern_copies + cad_boolean_subtract) since cad_hole_pattern has no square-hole option.","applies":["60% keyboard","switch plate"],"basis":"Demonstrates the plate-cutout (mx-switch-plate-cutout) and key-pitch (key-pitch-mx) facts as an actual buildable body; square cutouts require boolean_subtract with a patterned box rather than cad_hole_pattern.","sources":["cherry-mx-datasheet","keyboard-plate-guide"],"tags":["recipe","plate","60 percent"],"recipe":{"prompt":"Model a 60% keyboard switch plate with a 5x3 grid of MX 14mm switch cutouts","steps":[{"tool":"cad_box","args":{"dx":300,"dy":105,"dz":1.5},"note":"plate blank, 60% board footprint"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,20,-0.75]},"note":"row 1 seed cutout, oversized in Z to guarantee a clean through-cut"},{"tool":"cad_pattern_copies","args":{"of":"$1","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 1 across X at MX pitch"},{"tool":"cad_boolean_subtract","args":{"of":"$0","tool":"$2"},"note":"cut row 1 into the plate"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,39.05,-0.75]},"note":"row 2 seed cutout, one pitch up in Y"},{"tool":"cad_pattern_copies","args":{"of":"$4","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 2 across X"},{"tool":"cad_boolean_subtract","args":{"of":"$3","tool":"$5"},"note":"cut row 2 into the plate"},{"tool":"cad_box","args":{"dx":14,"dy":14,"dz":3,"origin":[20,58.1,-0.75]},"note":"row 3 seed cutout, two pitches up in Y"},{"tool":"cad_pattern_copies","args":{"of":"$7","type":"linear","step":[19.05,0,0],"count":5},"note":"pattern row 3 across X"},{"tool":"cad_boolean_subtract","args":{"of":"$6","tool":"$8"},"note":"cut row 3 into the plate, 15 cutouts total"}],"expect":{"volume":42840,"faceCount":66,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-mouse-shell","kind":"recipe","tier":2,"title":"Recipe: claw-grip mouse shell","summary":"Worked build: a 62x116x38 mm box shelled to a 1.5mm wall then filleted to a 1.5mm edge radius — on a shelled body the blanket radius cannot exceed the wall (a larger one drives the fillet through the inner face; CADSB-744), so the grip radius is the wall thickness.","applies":["mouse shell","claw grip"],"basis":"Demonstrates mouse-dims-claw-grip and mouse-shell-wall-thickness as an actual buildable body via box + shell + fillet, with the fillet radius bounded by mouse-shell-wall-thickness's 1.5mm wall.","sources":["mouse-grip-ergonomics-study","gaming-mouse-durability-standard"],"tags":["recipe","mouse shell"],"recipe":{"prompt":"Model a claw-grip mouse shell as a 62x116x38mm box shelled to a 1.5mm wall and filleted to a 1.5mm edge radius","steps":[{"tool":"cad_box","args":{"dx":62,"dy":116,"dz":38},"note":"claw-grip shell blank, mouse-dims-claw-grip range"},{"tool":"cad_shell","args":{"of":"$0","thickness":1.5},"note":"hollow to mouse-shell-wall-thickness; shell BEFORE fillet keeps face count low"},{"tool":"cad_fillet_edges","args":{"of":"$1","radius":1.5},"note":"round the shell's outer edges for grip comfort — radius = the 1.5mm wall; anything larger is refused blend-through-wall (CADSB-744)"}],"expect":{"volume":39538.33,"faceCount":32,"watertight":true,"selfIntersection":false,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}},{"id":"recipe-controller-grip","kind":"recipe","tier":2,"title":"Recipe: controller handgrip","summary":"Worked build: an 18mm-radius, 90mm-tall cylinder with a 9mm fillet at each end, approximating a console controller's tapered handgrip blank.","applies":["controller","grip"],"basis":"Demonstrates controller-grip-diameter as an actual buildable body via cylinder + fillet.","sources":["controller-ergonomics-reference"],"tags":["recipe","controller grip"],"recipe":{"prompt":"Model a controller handgrip as a tapered, filleted cylinder","steps":[{"tool":"cad_cylinder","args":{"r":18,"h":90}},{"tool":"cad_fillet_edges","args":{"of":"$0","radius":9}}],"expect":{"volume":88116.09,"faceCount":5,"watertight":true,"note":"measured 2026-09-19: agrees with the kernel on the CADSF-1630 corpus sweep — volume inside the 0.5% band and faceCount exact"}}}]}