{ "revision": "R1-PLACEMENT-START", "source": "Reviewed constants from ../.claude/pcb2_place.py and design section 26.24; no routed PCB imported", "frame": "Common top view; source mechanical coordinates in mm, origin at bottom left, y up. KiCad x=50+x, y=50+135-y on BOTH boards", "size_mm": [220, 135], "origin_kicad_mm": [50, 50], "corner_radius_mm": 5, "thickness_mm": 1.6, "copper_mm": [0.035, 0.0175, 0.0175, 0.035], "dielectric_mm": [0.2104, 1.0742, 0.2104], "stackup_note": "Preliminary symmetric stack: outer spacing from existing 90-ohm calculation; core inferred from nominal total thickness. Fabricator must confirm before controlled-impedance release", "board_gap_mm": 13, "input_connector_kicad": {"reference": "J1", "position_mm": [58.4, 67], "angle_deg": 270, "mating_edge": "left", "outline_edge_inset_mm": 0.25041, "source": "User requested board-edge placement and 180 degree rotation from R2 on 2026-09-07"}, "mounting_holes_common_mm": [[8, 8], [212, 8], [4, 131], [216, 131], [7, 60], [213, 45]], "mounting_holes_carrier_only_mm": [[76.6, 79.5], [148.1, 79.5]], "mounting_hole_drill_mm": 3.2, "mounting_hole_pad_mm": 6, "mounting_hole_courtyard_radius_mm": 3.5, "phone_size_mm": [67, 44], "phone_sites": {"1": [5, 83, 180], "2": [76.5, 83, 180], "3": [148, 83, 180], "4": [40.75, 7.5, 0], "5": [112.25, 7.5, 0]}, "phone_holes_mm": {"H1": [1.4, 9.9], "H2": [0.7, 27.3], "H3": [1.7, 38.7], "H4": [41.9, 1.9], "H5": [57.4, 41.2], "H6": [64.6, 28.1], "H7": [64.8, 32.4]}, "phone_holes_skipped": ["H5"], "phone_hole_drill_mm": 1.8, "phone_hole_courtyard_radius_mm": 1.8, "phone_hole_component_clearance_radius_mm": 2.2, "phone_hole_note": "Courtyard is 3.2mm nylon screw head plus 0.2mm radial assembly margin; ordinary component clearance retains the source 2.2mm radius. Avoid double-counting that clearance between H6/H7", "phone_standoff_mm": 1, "phone_key_contacts_mm": [[4.72, 5.16], [3.42, 6.37], [3.49, 3.74], [2.05, 4.99]], "contact_position_note": "Provisional measured contact coordinates retained; +/-0.6mm historical uncertainty, mechanical fit still needs confirmation", "slots_local_mm": {"battery": [18.8, -4.2, 28.8, -1.2], "tail": [45, -4.2, 64, -1.2]}, "slot_corner_radius_mm": 0.5, "slot_clearance_mm": 0.5, "slot_note": "Rounded internal corners for a provisional 1mm router; 9mm/18mm straight spans retain 8mm/18mm ribbon clearance", "ribbon_lanes_local_mm": {"battery": [18.8, -1.2, 27.8, 13], "tail": [44.6, -1.2, 62.6, 36.3]}, "battery_connector_local_mm": [22.8, 15], "tail_connector_local_mm": [52.5, 35], "headers_source_mm": {"left": [62, 67.5], "right": [158, 67.5]}, "usb_upstream_source_mm": [214.866, 62] }