techmannih/museview
A 50×35 mm USB‑C 5 V camera board combining an ESP32‑S3 module, M0031 parallel camera connector, buck/LDO power rails, USB/ESD protection, controls, status LED, and passives.
- Version
- 0.1.18
- License
- unset
- Stars
- 1
docs/evidence/two-layer-feasibility.json
{
"date": "2026-10-05",
"status": "REJECTED_TWO_LAYER_TRIAL_NOT_FOR_ORDER",
"baselineCommit": "7c9b41137d943b7360f18bac38ae7db58a59127b",
"releaseDecision": "Retain existing four-layer hardware and release artifacts. Four layers are not a universal requirement.",
"trialFileSha256": {
"index.circuit.tsx": "7831cdb82c5045bb35e4d5c265d649945e9f9f10f0521cce32f847f5e8d3b5d4",
"pcb-routes.json": "0b31679d36a51cbead71b4ae3327f213723ac2b1b874ab7521585a26d5f9b9b2",
"routing/input.simple-route.json": "9e15d72eae2f5b334519e164809ab9830aa661e0ac51c5c65d74160370b09ccf",
"routing/geometry.json": "8ea824c10d7bc068e3f0b4babd348ef91830a33a8d0560e8eda9f1b190e6b637",
"scripts/route-grid.py": "68afb82fa60a9bb02444cfaa9c5e247543ac599f6573fad05963df410ea38989",
"scripts/capture-routing-input.mjs": "751b35cda4104955b5dc56e65f625a4df59bd83c4ae9c701c0a2179b5e177dac",
"scripts/analyze-ground-trial.mjs": "b1853a7204355f65b0df7458337719be71cd576ab662ba49124ba2f88b5e8272",
"scripts/analyze-usb-return-trial.mjs": "9b1bd5d7d4c044fab397aa7c6db1ec84ee5fbdee399bad52cc82a02b58594eec",
"dist/index/circuit.json": "9f2fe88b36141f4ceb80e1c52de21ea22f93a198618f32e1d3178af78738c0fe"
},
"boardLayers": 2,
"generatedTraceCount": 120,
"routerFailedConnections": [],
"pcbTraceCount": 169,
"pcbViaCount": 143,
"nativeBuildExitCode": 1,
"nativeErrors": [
{
"type": "pcb_port_not_connected_error",
"message": "Port [J1.GND1] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [J1.GND2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [R1.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [R2.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [R5.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [C1.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [U2.GND] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [D1.anode] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [R9.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [U1.GND1] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [U1.GND2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [U1.GND3] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW1.B] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW1.D] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW2.B] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW2.D] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW3.B] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [SW3.D] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [LED1.cathode] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [J2.MP1] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [J2.MP2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [R16.pin2] is not connected to net [GND] by a PCB trace."
},
{
"type": "pcb_port_not_connected_error",
"message": "Port [TP4.pin1] is not connected to net [GND] by a PCB trace."
}
],
"groundConnectivity": {
"method": "Physical intersection/containment of GND pad, plated-hole, via, trace and pour polygons on common layers; no hypothetical added stitches included.",
"groupCount": 3,
"groups": [
{
"ports": [
"J1.GND1",
"J1.GND2",
"R1.pin2",
"R2.pin2",
"R5.pin2",
"C1.pin2",
"U2.GND",
"C18.pin2",
"D1.anode",
"U3.GND",
"C2.pin2",
"C3.pin2",
"C4.pin2",
"R7.pin2",
"U4.VSS",
"C6.pin2",
"C7.pin2",
"U5.GND",
"C8.pin2",
"C9.pin2",
"R9.pin2",
"U1.GND1",
"U1.GND2",
"U1.GND3",
"U1.pin41_internal_1",
"U1.pin41_internal_2",
"U1.pin41_internal_3",
"U1.pin41_internal_4",
"U1.pin41_internal_5",
"U1.pin41_internal_6",
"U1.pin41_internal_7",
"U1.pin41_internal_8",
"C10.pin2",
"C11.pin2",
"C12.pin2",
"SW1.B",
"SW1.D",
"SW2.B",
"SW2.D",
"SW3.B",
"SW3.D",
"LED1.cathode",
"J2.MP1",
"J2.MP2",
"J2.AGND",
"R16.pin2",
"C14.pin2",
"C15.pin2",
"C17.pin2",
"TP4.pin1"
],
"geometryElementCount": 116
},
{
"ports": [
"C13.pin2",
"C16.pin2"
],
"geometryElementCount": 14
},
{
"ports": [
"J2.DGND"
],
"geometryElementCount": 5
}
],
"limitations": "Geometric diagnostic, not electrical measurement or RF simulation; element areas overlap and are not reported as copper coverage."
},
"usbReferenceSampling": {
"method": "0.05 mm centerline samples against actual opposite-layer GND pours/pads; includes connector/IC escape regions; not an impedance or field simulation",
"report": [
{
"net": "USB_DM_PORT",
"totalLengthMm": 21.65516587723596,
"withoutOppositeGroundMm": 13.25225382605463,
"longestGapMm": 3.6892869570040348
},
{
"net": "USB_DP_PORT",
"totalLengthMm": 19.832300500333798,
"withoutOppositeGroundMm": 13.288838624274097,
"longestGapMm": 2.963155729559737
},
{
"net": "USB_DM_ESD",
"totalLengthMm": 21.65516587723596,
"withoutOppositeGroundMm": 13.25225382605463,
"longestGapMm": 3.6892869570040348
},
{
"net": "USB_DP_ESD",
"totalLengthMm": 19.832300500333798,
"withoutOppositeGroundMm": 13.288838624274097,
"longestGapMm": 2.963155729559737
},
{
"net": "USB_DM_MCU",
"totalLengthMm": 1.9481982148521975,
"withoutOppositeGroundMm": 1.9481982148521975,
"longestGapMm": 1.9481982148521975
},
{
"net": "USB_DP_MCU",
"totalLengthMm": 1.9530275692762984,
"withoutOppositeGroundMm": 0,
"longestGapMm": 0
}
]
},
"usbSamplingLimitations": "PORT/ESD aliases describe the same connected copper. Do not sum those rows. Ground traces/vias are not counted as a reference plane. No impedance qualification.",
"releaseExported": false,
"unchangedOrderBlockers": [
"Exact M0031/AFC01 mechanical qualification",
"Authenticated JLC placement-preview review"
]
}