seveibar/am3352-dev-board-4layer-dogbone

Defines PCB footprints and pin mappings for a TI AM3352ZCZ100 processor, JST GH connectors, and assembly-part lookup helpers for capacitors, resistors, and headers.

Version
0.1.5
License
unset
Stars
0

scripts/check-via-connectivity.mjs

import assert from 'node:assert/strict'
import { PcbConnectivityMap } from 'circuit-json-to-connectivity-map'
const wire=(id,layer,x,y,x2,y2)=>({type:'pcb_trace',pcb_trace_id:id,route:[{route_type:'wire',x,y,layer,width:.1},{route_type:'wire',x:x2,y:y2,layer,width:.1}]})
const via={type:'pcb_via',pcb_via_id:'v',pcb_trace_id:'barrel',x:0,y:0,outer_diameter:.3,hole_diameter:.15,layers:['top','inner1','bottom']}
const c=[wire('top','top',-1,0,0,0),wire('bottom','bottom',0,0,1,0),wire('inner','inner1',0,0,0,1),wire('distant','top',2,2,3,3),wire('outside_span','inner2',0,0,1,0)]
let map=new PcbConnectivityMap(c)
assert(!map.areTracesConnected('top','bottom'),'XY coincidence alone must not connect layers')
map=new PcbConnectivityMap([...c,via])
assert(map.areTracesConnected('top','bottom'),'Through barrel joins surface traces')
assert(map.areTracesConnected('top','inner'),'Through barrel joins included inner layers')
assert(!map.areTracesConnected('top','distant'),'Separated copper remains isolated')
assert(!map.areTracesConnected('top','outside_span'),'Layers outside via span remain isolated')
console.log('Physical via connectivity regression passed: contacts, clearance, and layer span')