@tscircuit/schematic-trace-solver 0.0.170 → 0.0.171
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -1
- package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +6 -1
- package/package.json +1 -1
- package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +10 -10
- package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +10 -10
- package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +10 -10
- package/tests/repros/__snapshots__/repro-hdc3020-ground-label-alignment.snap.svg +110 -0
- package/tests/repros/assets/repro-hdc3020-ground-label-alignment.input.json +282 -0
- package/tests/repros/repro-hdc3020-ground-label-alignment.test.ts +25 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<svg width="1200" height="2016" viewBox="0 0 1200 2016" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on top and Circuit JSON schematic on the bottom">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="1.5,2.45 1.5,2.6500000000000004 0.7,2.6500000000000004 0.7,2.45" data-type="line" data-label="" points="335.84905660377353,205.0943396226415 335.84905660377353,194.52830188679243 293.58490566037733,194.52830188679243 293.58490566037733,205.0943396226415" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.10000000000000009,0.3250000000000002 0.7,0.3250000000000002 0.7,1.8499999999999996" data-type="line" data-label="" points="251.3207547169811,317.35849056603774 293.58490566037733,317.35849056603774 293.58490566037733,236.79245283018872" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.10000000000000009,-2.075 0.09999999999999992,-2.075 0.09999999999999992,-1.8750000000000002 -0.10000000000000009,-1.8750000000000002" data-type="line" data-label="" points="251.3207547169811,444.15094339622647 261.88679245283015,444.15094339622647 261.88679245283015,433.5849056603774 251.3207547169811,433.5849056603774" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.10000000000000009,-1.4250000000000003 0.09999999999999992,-1.4250000000000003 0.09999999999999992,-1.8750000000000002 -0.10000000000000009,-1.8750000000000002" data-type="line" data-label="" points="251.3207547169811,409.81132075471703 261.88679245283015,409.81132075471703 261.88679245283015,433.5849056603774 251.3207547169811,433.5849056603774" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,-0.125 1.5,-0.125 1.5,1.8499999999999996" data-type="line" data-label="" points="388.6792452830189,341.1320754716981 335.84905660377353,341.1320754716981 335.84905660377353,236.79245283018872" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,-0.525 2.209,-0.525 2.209,-0.5760000000000001" data-type="line" data-label="" points="388.6792452830189,362.26415094339626 373.30566037735844,362.26415094339626 373.30566037735844,364.95849056603777" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,0.525 -0.10000000000000009,0.5250000000000004" data-type="line" data-label="" points="388.6792452830189,306.79245283018867 251.3207547169811,306.79245283018867" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,0.325 1.82,0.325" data-type="line" data-label="" points="388.6792452830189,317.35849056603774 352.75471698113205,317.35849056603774" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.10000000000000009,-0.12500000000000022 0.5799999999999998,-0.12500000000000022" data-type="line" data-label="" points="251.3207547169811,341.13207547169816 287.2452830188679,341.13207547169816" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,-0.32500000000000007 1.82,-0.32500000000000007" data-type="line" data-label="" points="388.6792452830189,351.6981132075472 352.75471698113205,351.6981132075472" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.10000000000000009,-0.3250000000000002 0.5799999999999998,-0.3250000000000002" data-type="line" data-label="" points="251.3207547169811,351.6981132075472 287.2452830188679,351.6981132075472" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.5,0.525 -0.10000000000000009,0.5250000000000004" data-type="line" data-label="recovered from net labels: schematic_port_0 -> schematic_port_9" points="388.6792452830189,306.79245283018867 251.3207547169811,306.79245283018867" fill="none" stroke="green" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="4.5" data-y="0" x="388.6792452830189" y="213.0188679245283" width="211.32075471698113" height="243.0188679245283" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.1" data-y="0" x="39.999999999999986" y="213.0188679245283" width="211.3207547169811" height="243.0188679245283" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="0.735" data-y="2.15" x="269.811320754717" y="205.09433962264154" width="51.245283018867894" height="31.69811320754721" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="1.5350000000000001" data-y="2.15" x="312.07547169811323" y="205.09433962264154" width="51.24528301886795" height="31.69811320754721" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="MCU" data-x="3.08" data-y="-2.4299999999999997" x="409.81132075471703" y="458.15094339622635" width="19.01886792452825" height="9.509433962264154" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="U2" data-x="3.0199999999999996" data-y="2.415" x="406.64150943396226" y="200.33962264150944" width="19.01886792452825" height="13.207547169811335" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="HDC3020DEFR" data-x="-3.04" data-y="-2.4299999999999997" x="61.13207547169807" y="458.15094339622635" width="69.7358490566038" height="9.509433962264154" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="U1" data-x="-3.58" data-y="2.415" x="57.96226415094337" y="200.33962264150944" width="19.018867924528337" height="13.207547169811335" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="netId: VDD
|
|
4
|
+
globalConnNetId: connectivity_net0" data-x="1.5" data-y="2.8600000000000003" x="323.16981132075466" y="172.33962264150944" width="25.358490566037744" height="22.188679245282998" fill="#ef444466" stroke="#ef4444" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
5
|
+
globalConnNetId: connectivity_net4" data-x="2.209" data-y="-0.786" x="360.62641509433956" y="364.95849056603777" width="25.358490566037688" height="22.18867924528297" fill="#00000066" stroke="#000000" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
6
|
+
globalConnNetId: connectivity_net4" data-x="0.09999999999999992" data-y="-2.285" x="249.20754716981128" y="444.15094339622647" width="25.358490566037716" height="22.18867924528297" fill="#00000066" stroke="#000000" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: SCL
|
|
7
|
+
axis: x
|
|
8
|
+
side: y+" data-x="2.2" data-y="0.435" x="364.37735849056605" y="308.37735849056605" width="16.905660377358515" height="6.339622641509436" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: SCL
|
|
9
|
+
axis: y
|
|
10
|
+
side: x-" data-x="0.59" data-y="1.0875" x="284.60377358490564" y="268.62264150943395" width="6.339622641509436" height="16.905660377358515" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: SDA
|
|
11
|
+
axis: y
|
|
12
|
+
side: x-" data-x="1.39" data-y="0.8624999999999998" x="326.86792452830184" y="280.5094339622642" width="6.339622641509436" height="16.905660377358515" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: SDA
|
|
13
|
+
axis: x
|
|
14
|
+
side: y+" data-x="0.1999999999999999" data-y="-0.015000000000000221" x="258.7169811320754" y="332.1509433962264" width="16.905660377358515" height="6.339622641509436" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: ALERT
|
|
15
|
+
axis: x
|
|
16
|
+
side: y+" data-x="2.16" data-y="-0.21500000000000008" x="358.0377358490566" y="342.7169811320755" width="25.358490566037744" height="6.339622641509436" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><g><rect data-type="rect" data-label="INLINE netId: ALERT
|
|
17
|
+
axis: x
|
|
18
|
+
side: y+" data-x="0.23999999999999988" data-y="-0.2150000000000002" x="256.60377358490564" y="342.7169811320755" width="25.358490566037744" height="6.339622641509436" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01892857142857143"/></g><text data-type="text" data-label="SCL" data-x="2.3600000000000003" data-y="0.435" x="381.2830188679245" y="311.54716981132077" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="end" dominant-baseline="central">SCL</text><text data-type="text" data-label="SCL" data-x="0.59" data-y="1.0875" x="287.77358490566036" y="277.07547169811323" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="middle" dominant-baseline="central" transform="rotate(-90, 287.77358490566036, 277.07547169811323)">SCL</text><text data-type="text" data-label="SDA" data-x="1.39" data-y="0.8624999999999998" x="330.03773584905656" y="288.96226415094344" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="middle" dominant-baseline="central" transform="rotate(-90, 330.03773584905656, 288.96226415094344)">SDA</text><text data-type="text" data-label="SDA" data-x="0.0399999999999999" data-y="-0.015000000000000221" x="258.71698113207543" y="335.3207547169811" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="start" dominant-baseline="central">SDA</text><text data-type="text" data-label="ALERT" data-x="2.4000000000000004" data-y="-0.21500000000000008" x="383.39622641509436" y="345.8867924528302" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="end" dominant-baseline="central">ALERT</text><text data-type="text" data-label="ALERT" data-x="-1.1102230246251565e-16" data-y="-0.2150000000000002" x="256.60377358490564" y="345.8867924528302" fill="green" font-size="6.339622641509433" font-family="sans-serif" text-anchor="start" dominant-baseline="central">ALERT</text><g><circle data-type="point" data-label="VDD
|
|
19
|
+
x-" data-x="2.5" data-y="0.525" cx="388.6792452830189" cy="306.79245283018867" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="SCL
|
|
20
|
+
x-" data-x="2.5" data-y="0.325" cx="388.6792452830189" cy="317.35849056603774" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="SDA
|
|
21
|
+
x-" data-x="2.5" data-y="-0.125" cx="388.6792452830189" cy="341.1320754716981" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="GPIO
|
|
22
|
+
x-" data-x="2.5" data-y="-0.32500000000000007" cx="388.6792452830189" cy="351.6981132075472" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="GND
|
|
23
|
+
x-" data-x="2.5" data-y="-0.525" cx="388.6792452830189" cy="362.26415094339626" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="I2C_SDA
|
|
24
|
+
x+" data-x="-0.10000000000000009" data-y="-0.12500000000000022" cx="251.3207547169811" cy="341.13207547169816" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="I2C_ADDR
|
|
25
|
+
x+" data-x="-0.10000000000000009" data-y="-1.4250000000000003" cx="251.3207547169811" cy="409.81132075471703" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="ALERT
|
|
26
|
+
x+" data-x="-0.10000000000000009" data-y="-0.3250000000000002" cx="251.3207547169811" cy="351.6981132075472" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="I2C_SCL
|
|
27
|
+
x+" data-x="-0.10000000000000009" data-y="0.3250000000000002" cx="251.3207547169811" cy="317.35849056603774" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="VDD
|
|
28
|
+
x+" data-x="-0.10000000000000009" data-y="0.5250000000000004" cx="251.3207547169811" cy="306.79245283018867" r="3" fill="hsl(248, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="RESET
|
|
29
|
+
x+" data-x="-0.10000000000000009" data-y="-0.7750000000000001" cx="251.3207547169811" cy="375.4716981132076" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="I2C_ADDR1
|
|
30
|
+
x+" data-x="-0.10000000000000009" data-y="-1.8750000000000002" cx="251.3207547169811" cy="433.5849056603774" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="GND
|
|
31
|
+
x+" data-x="-0.10000000000000009" data-y="-2.075" cx="251.3207547169811" cy="444.15094339622647" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anode
|
|
32
|
+
y+" data-x="0.7" data-y="2.45" cx="293.58490566037733" cy="205.0943396226415" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="cathode
|
|
33
|
+
y-" data-x="0.7" data-y="1.8499999999999996" cx="293.58490566037733" cy="236.79245283018872" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anode
|
|
34
|
+
y+" data-x="1.5" data-y="2.45" cx="335.84905660377353" cy="205.0943396226415" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="cathode
|
|
35
|
+
y-" data-x="1.5" data-y="1.8499999999999996" cx="335.84905660377353" cy="236.79245283018872" r="3" fill="hsl(184, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
36
|
+
orientation: y+" data-x="1.5" data-y="2.6500000000000004" cx="335.84905660377353" cy="194.52830188679243" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
37
|
+
orientation: y-" data-x="2.209" data-y="-0.5760000000000001" cx="373.30566037735844" cy="364.95849056603777" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
|
|
38
|
+
orientation: y-" data-x="0.09999999999999992" data-y="-2.075" cx="261.88679245283015" cy="444.15094339622647" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="inline anchor
|
|
39
|
+
SCL" data-x="2.16" data-y="0.325" cx="370.7169811320755" cy="317.35849056603774" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
|
|
40
|
+
SCL" data-x="0.7" data-y="1.0875" cx="293.58490566037733" cy="277.07547169811323" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
|
|
41
|
+
SDA" data-x="1.5" data-y="0.8624999999999998" cx="335.84905660377353" cy="288.96226415094344" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
|
|
42
|
+
SDA" data-x="0.23999999999999988" data-y="-0.12500000000000022" cx="269.2830188679245" cy="341.13207547169816" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
|
|
43
|
+
ALERT" data-x="2.16" data-y="-0.32500000000000007" cx="370.7169811320755" cy="351.6981132075472" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
|
|
44
|
+
ALERT" data-x="0.23999999999999988" data-y="-0.3250000000000002" cx="269.2830188679245" cy="351.6981132075472" r="3" fill="green"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
|
|
45
|
+
document.currentScript.parentElement.addEventListener('mousemove', (e) => {
|
|
46
|
+
const svg = e.currentTarget;
|
|
47
|
+
const rect = svg.getBoundingClientRect();
|
|
48
|
+
const x = e.clientX - rect.left;
|
|
49
|
+
const y = e.clientY - rect.top;
|
|
50
|
+
const crosshair = svg.getElementById('crosshair');
|
|
51
|
+
const h = svg.getElementById('crosshair-h');
|
|
52
|
+
const v = svg.getElementById('crosshair-v');
|
|
53
|
+
const coords = svg.getElementById('coordinates');
|
|
54
|
+
|
|
55
|
+
crosshair.style.display = 'block';
|
|
56
|
+
h.setAttribute('x1', '0');
|
|
57
|
+
h.setAttribute('x2', '640');
|
|
58
|
+
h.setAttribute('y1', y);
|
|
59
|
+
h.setAttribute('y2', y);
|
|
60
|
+
v.setAttribute('x1', x);
|
|
61
|
+
v.setAttribute('x2', x);
|
|
62
|
+
v.setAttribute('y1', '0');
|
|
63
|
+
v.setAttribute('y2', '640');
|
|
64
|
+
|
|
65
|
+
// Calculate real coordinates using inverse transformation
|
|
66
|
+
const matrix = {"a":52.83018867924528,"c":0,"e":256.60377358490564,"b":0,"d":-52.83018867924528,"f":334.52830188679246};
|
|
67
|
+
// Manually invert and apply the affine transform
|
|
68
|
+
// Since we only use translate and scale, we can directly compute:
|
|
69
|
+
// x' = (x - tx) / sx
|
|
70
|
+
// y' = (y - ty) / sy
|
|
71
|
+
const sx = matrix.a;
|
|
72
|
+
const sy = matrix.d;
|
|
73
|
+
const tx = matrix.e;
|
|
74
|
+
const ty = matrix.f;
|
|
75
|
+
const realPoint = {
|
|
76
|
+
x: (x - tx) / sx,
|
|
77
|
+
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
81
|
+
coords.setAttribute('x', (x + 5).toString());
|
|
82
|
+
coords.setAttribute('y', (y - 5).toString());
|
|
83
|
+
});
|
|
84
|
+
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
85
|
+
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
86
|
+
});
|
|
87
|
+
]]></script>
|
|
88
|
+
</g>
|
|
89
|
+
<g transform="translate(0, 1216)">
|
|
90
|
+
<style>
|
|
91
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
92
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
93
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
94
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
95
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
96
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
97
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
98
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
99
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
100
|
+
|
|
101
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 650.13477088945 164.25516621746493 L 650.13477088945 142.69182389940494 L 563.88140161721 142.69182389940494 L 563.88140161721 164.25516621746493" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 650.13477088945 164.25516621746493 L 650.13477088945 142.69182389940494 L 563.88140161721 142.69182389940494 L 563.88140161721 164.25516621746493" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 477.62803234497 393.36567834685246 L 563.88140161721 393.36567834685246 L 563.88140161721 228.945193171645" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 477.62803234497 393.36567834685246 L 563.88140161721 393.36567834685246 L 563.88140161721 228.945193171645" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 477.62803234497 652.1257861635725 L 499.19137466303 652.1257861635725 L 499.19137466303 630.5624438455125 L 477.62803234497 630.5624438455125" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 477.62803234497 652.1257861635725 L 499.19137466303 652.1257861635725 L 499.19137466303 630.5624438455125 L 477.62803234497 630.5624438455125" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 477.62803234497 582.0449236298775 L 499.19137466303 582.0449236298775 L 499.19137466303 630.5624438455125 L 477.62803234497 630.5624438455125" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 477.62803234497 582.0449236298775 L 499.19137466303 582.0449236298775 L 499.19137466303 630.5624438455125 L 477.62803234497 630.5624438455125" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 757.95148247975 441.8831985624875 L 650.13477088945 441.8831985624875 L 650.13477088945 228.945193171645" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 757.95148247975 441.8831985624875 L 650.13477088945 441.8831985624875 L 650.13477088945 228.945193171645" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"><path d="M 757.95148247975 485.0098831986075 L 726.5768194069727 485.0098831986075 L 726.5768194069727 490.5085354897128" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 757.95148247975 485.0098831986075 L 726.5768194069727 485.0098831986075 L 726.5768194069727 490.5085354897128" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"><path d="M 757.95148247975 371.80233602879247 L 477.62803234497 371.80233602879247" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 757.95148247975 371.80233602879247 L 477.62803234497 371.80233602879247" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_7__stack1"><path d="M 757.95148247975 393.36567834685246 L 684.636118598346 393.36567834685246" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 757.95148247975 393.36567834685246 L 684.636118598346 393.36567834685246" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_8__stack1"><path d="M 477.62803234497 441.8831985624875 L 550.943396226374 441.8831985624875" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 477.62803234497 441.8831985624875 L 550.943396226374 441.8831985624875" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_9__stack1"><path d="M 757.95148247975 463.4465408805475 L 684.636118598346 463.4465408805475" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 757.95148247975 463.4465408805475 L 684.636118598346 463.4465408805475" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_10__stack1"><path d="M 477.62803234497 463.4465408805475 L 550.943396226374 463.4465408805475" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="17.250673854448px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 477.62803234497 463.4465408805475 L 550.943396226374 463.4465408805475" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><circle cx="499.19137466303" cy="630.5624438455125" r="3.234501347709" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/><circle cx="477.62803234497" cy="630.5624438455125" r="3.234501347709" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_7__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_8__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_9__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_10__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="801.07816711587" y="180.42767295600999" width="345.0134770889599" height="495.95687331538005" stroke-width="2.156334231806px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="801.07816711587" y="180.42767295600999" width="345.0134770889599" height="495.95687331538005" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="801.07816711587" y1="371.80233602879247" x2="757.95148247975" y2="371.80233602879247" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="755.795148247944" y="369.64600179698647" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="779.51482479781" y="369.64600179698647" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="811.8598382749001" y="371.80233602879247" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="">VDD</text><line class="component-pin sch-component-pin sch-port-line" x1="801.07816711587" y1="393.36567834685246" x2="757.95148247975" y2="393.36567834685246" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="755.795148247944" y="391.20934411504646" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="779.51482479781" y="391.20934411504646" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="811.8598382749001" y="393.36567834685246" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="">SCL</text><line class="component-pin sch-component-pin sch-port-line" x1="801.07816711587" y1="441.8831985624875" x2="757.95148247975" y2="441.8831985624875" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="755.795148247944" y="439.7268643306815" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="779.51482479781" y="439.7268643306815" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="811.8598382749001" y="441.8831985624875" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="">SDA</text><line class="component-pin sch-component-pin sch-port-line" x1="801.07816711587" y1="463.4465408805475" x2="757.95148247975" y2="463.4465408805475" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="755.795148247944" y="461.2902066487415" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="779.51482479781" y="461.2902066487415" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="811.8598382749001" y="463.4465408805475" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="">GPIO</text><line class="component-pin sch-component-pin sch-port-line" x1="801.07816711587" y1="485.0098831986075" x2="757.95148247975" y2="485.0098831986075" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="755.795148247944" y="482.8535489668015" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="779.51482479781" y="482.8535489668015" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="811.8598382749001" y="485.0098831986075" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="">GND</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="89.48787061988997" y="180.42767295600999" width="345.01347708896003" height="495.95687331538005" stroke-width="2.156334231806px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="89.48787061988997" y="180.42767295600999" width="345.01347708896003" height="495.95687331538005" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="441.8831985624875" x2="477.62803234497" y2="441.8831985624875" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="475.471698113164" y="439.7268643306815" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="439.7268643306815" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="441.8831985624875" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">I2C_SDA</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="582.0449236298775" x2="477.62803234497" y2="582.0449236298775" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="475.471698113164" y="579.8885893980715" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="579.8885893980715" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="582.0449236298775" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">I2C_ADDR</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="463.4465408805475" x2="477.62803234497" y2="463.4465408805475" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="475.471698113164" y="461.2902066487415" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="461.2902066487415" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="463.4465408805475" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">ALERT</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="393.36567834685246" x2="477.62803234497" y2="393.36567834685246" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_3__stack1"><rect x="475.471698113164" y="391.20934411504646" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="391.20934411504646" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="393.36567834685246" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">I2C_SCL</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="371.80233602879247" x2="477.62803234497" y2="371.80233602879247" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_4__stack1"><rect x="475.471698113164" y="369.64600179698647" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="369.6460017969864" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="371.80233602879247" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">VDD</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="511.9640610961825" x2="475.471698113164" y2="511.9640610961825" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="477.62803234497" cy="511.9640610961825" r="2.156334231806" stroke-width="2.156334231806px"/><rect x="475.471698113164" y="509.8077268643765" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="509.8077268643765" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="511.9640610961825" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">RESET</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="630.5624438455125" x2="477.62803234497" y2="630.5624438455125" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_6__stack1"><rect x="475.471698113164" y="628.4061096137065" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="628.4061096137066" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="630.5624438455125" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">I2C_ADDR1</text><line class="component-pin sch-component-pin sch-port-line" x1="434.50134770885" y1="652.1257861635725" x2="477.62803234497" y2="652.1257861635725" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_1_7__stack1"><rect x="475.471698113164" y="649.9694519317665" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="456.06469002691" y="649.9694519317666" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform=""></text><text class="pin-number sch-pin-label" x="423.71967654982" y="652.1257861635725" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="">GND</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="515.363881401575" y="191.20934411504" width="104.58221024259103" height="10.781671159029969" stroke-width="2.156334231806px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="515.363881401575" y="191.20934411504" width="104.58221024259103" height="10.781671159029969" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="563.88140161721" y1="191.20934411504" x2="563.88140161721" y2="164.25516621746493" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="561.725067385404" y="162.09883198565893" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="561.725067385404" y="177.73225516625246" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform="rotate(-90 561.725067385404 177.73225516625246)"></text><text class="pin-number sch-pin-label" x="563.88140161721" y="201.99101527407" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="rotate(-90 563.88140161721 201.99101527407)">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="563.88140161721" y1="201.99101527406998" x2="563.88140161721" y2="228.945193171645" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="561.725067385404" y="226.788858939839" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="561.725067385404" y="215.4681042228575" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform="rotate(-90 561.725067385404 215.4681042228575)"></text><text class="pin-number sch-pin-label" x="563.88140161721" y="191.20934411503995" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="rotate(-90 563.88140161721 191.20934411503995)">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component chip sch-component-body" x="601.6172506738151" y="191.20934411504" width="104.58221024259092" height="10.781671159029969" stroke-width="2.156334231806px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="601.6172506738151" y="191.20934411504" width="104.58221024259092" height="10.781671159029969" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="650.13477088945" y1="191.20934411504" x2="650.13477088945" y2="164.25516621746493" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_3_0__stack1"><rect x="647.978436657644" y="162.09883198565893" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="647.978436657644" y="177.73225516625246" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform="rotate(-90 647.978436657644 177.73225516625246)"></text><text class="pin-number sch-pin-label" x="650.13477088945" y="201.99101527407" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="16.172506738545px" transform="rotate(-90 650.13477088945 201.99101527407)">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="650.13477088945" y1="201.99101527406998" x2="650.13477088945" y2="228.945193171645" stroke-width="2.156334231806px"/><g class="sch-port" data-schematic-port-id="source_port_3_1__stack1"><rect x="647.978436657644" y="226.788858939839" width="4.312668463612" height="4.312668463612" opacity="0"/></g><text class="pin-number sch-pin-number" x="647.978436657644" y="215.4681042228575" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="16.172506738545px" transform="rotate(-90 647.978436657644 215.4681042228575)"></text><text class="pin-number sch-pin-label" x="650.13477088945" y="191.20934411503995" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="16.172506738545px" transform="rotate(-90 650.13477088945 191.20934411503995)">cathode</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="757.95148247975" cy="371.80233602879247" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="757.95148247975" cy="393.36567834685246" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="757.95148247975" cy="441.8831985624875" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="757.95148247975" cy="463.4465408805475" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="757.95148247975" cy="485.0098831986075" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="477.62803234497" cy="441.8831985624875" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="477.62803234497" cy="582.0449236298775" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="477.62803234497" cy="463.4465408805475" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_3__stack1"><circle cx="477.62803234497" cy="393.36567834685246" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_4__stack1"><circle cx="477.62803234497" cy="371.80233602879247" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_5__stack1"><circle cx="477.62803234497" cy="511.9640610961825" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_6__stack1"><circle cx="477.62803234497" cy="630.5624438455125" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_7__stack1"><circle cx="477.62803234497" cy="652.1257861635725" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="563.88140161721" cy="164.25516621746493" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="563.88140161721" cy="228.945193171645" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="650.13477088945" cy="164.25516621746493" r="4.312668463612" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="650.13477088945" cy="228.945193171645" r="4.312668463612" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
102
|
+
M 650.13477088945,142.69182389940494
|
|
103
|
+
L 639.35309973042,136.86972147352873
|
|
104
|
+
L 639.35309973042,99.89577717882852
|
|
105
|
+
L 660.91644204848,99.89577717882852
|
|
106
|
+
L 660.91644204848,136.86972147352873
|
|
107
|
+
Z
|
|
108
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.156334231806px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="650.13477088945" y="132.98831985627794" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="19.407008086254px" transform="rotate(-90 650.13477088945 132.98831985627794)">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="713.6388140161367" y="490.50853548971276" width="25.876010781671994" height="19.407008086253995" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 713.6388140161367 509.91554357596675 L 739.5148247978087 509.91554357596675" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="M 726.5768194069727 509.91554357596675 L 726.5768194069727 490.50853548971276" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="726.5768194069727" y="515.3063791554817" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="19.407008086254px">XX</text><rect class="component-overlay sch-component-overlay sch-net-label-overlay" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="486.253369272194" y="652.1257861635725" width="25.87601078167205" height="19.40700808625411" fill="transparent"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 486.253369272194 671.5327942498266 L 512.129380053866 671.5327942498266" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round"/><path class="sch-net-label-symbol-path" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="M 499.19137466303 671.5327942498266 L 499.19137466303 652.1257861635725" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.156334231806px" stroke-linecap="round"/><text class="sch-net-label-symbol-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="499.19137466303" y="676.9236298293415" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="19.407008086254px">XX</text><text class="sch-text" x="820.4851752021241" y="690.400718778129" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.40700808625397px" transform="rotate(0, 820.4851752021241, 690.400718778129)">MCU</text><text class="sch-text" x="814.016172506706" y="168.02875112312546" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.407008086254px" transform="rotate(0, 814.016172506706, 168.02875112312546)">U2</text><text class="sch-text" x="160.64690026948796" y="690.400718778129" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.40700808625397px" transform="rotate(0, 160.64690026948796, 690.400718778129)">HDC3020DEFR</text><text class="sch-text" x="102.42587601072597" y="168.02875112312546" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="19.407008086254px" transform="rotate(0, 102.42587601072597, 168.02875112312546)">U1</text><text class="sch-text" x="725.60646900266" y="381.50584007191947" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(0, 725.60646900266, 381.50584007191947)">XXX</text><text class="sch-text" x="552.021563342277" y="311.15543575924875" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(-90, 552.021563342277, 311.15543575924875)">XXX</text><text class="sch-text" x="638.274932614517" y="335.41419586706627" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(-90, 638.274932614517, 335.41419586706627)">XXX</text><text class="sch-text" x="509.97304582206" y="430.0233602875545" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(0, 509.97304582206, 430.0233602875545)">XXX</text><text class="sch-text" x="721.293800539048" y="451.5867026056145" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(0, 721.293800539048, 451.5867026056145)">XXXXX</text><text class="sch-text" x="514.2857142856719" y="451.5867026056145" fill="#047857" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="12.938005390836px" transform="rotate(0, 514.2857142856719, 451.5867026056145)">XXXXX</text><rect class="schematic-box sch-box" x="801.07816711587" y="680.697214735002" width="38.81401617250799" height="19.40700808625388" stroke-width="2.156334231806px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.250673854448 8.625336927224"/><rect class="schematic-box sch-box" x="794.609164420452" y="154.55166217433805" width="38.81401617250799" height="26.954177897574937" stroke-width="2.156334231806px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.250673854448 8.625336927224"/><rect class="schematic-box sch-box" x="89.48787061988997" y="680.697214735002" width="142.31805929919597" height="19.40700808625388" stroke-width="2.156334231806px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.250673854448 8.625336927224"/><rect class="schematic-box sch-box" x="83.01886792447198" y="154.55166217433805" width="38.81401617250799" height="26.954177897574937" stroke-width="2.156334231806px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="17.250673854448 8.625336927224"/>
|
|
109
|
+
</g>
|
|
110
|
+
</svg>
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
{
|
|
2
|
+
"chips": [
|
|
3
|
+
{
|
|
4
|
+
"chipId": "schematic_component_0",
|
|
5
|
+
"center": {
|
|
6
|
+
"x": 4.5,
|
|
7
|
+
"y": 0
|
|
8
|
+
},
|
|
9
|
+
"width": 4,
|
|
10
|
+
"height": 4.6,
|
|
11
|
+
"pins": [
|
|
12
|
+
{
|
|
13
|
+
"pinId": "schematic_port_0",
|
|
14
|
+
"displayName": "VDD",
|
|
15
|
+
"x": 2.5,
|
|
16
|
+
"y": 0.525
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"pinId": "schematic_port_1",
|
|
20
|
+
"displayName": "SCL",
|
|
21
|
+
"x": 2.5,
|
|
22
|
+
"y": 0.325
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"pinId": "schematic_port_2",
|
|
26
|
+
"displayName": "SDA",
|
|
27
|
+
"x": 2.5,
|
|
28
|
+
"y": -0.125
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"pinId": "schematic_port_3",
|
|
32
|
+
"displayName": "GPIO",
|
|
33
|
+
"x": 2.5,
|
|
34
|
+
"y": -0.32500000000000007
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"pinId": "schematic_port_4",
|
|
38
|
+
"displayName": "GND",
|
|
39
|
+
"x": 2.5,
|
|
40
|
+
"y": -0.525
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"chipId": "schematic_component_1",
|
|
46
|
+
"center": {
|
|
47
|
+
"x": -2.1,
|
|
48
|
+
"y": 0
|
|
49
|
+
},
|
|
50
|
+
"width": 4,
|
|
51
|
+
"height": 4.6,
|
|
52
|
+
"pins": [
|
|
53
|
+
{
|
|
54
|
+
"pinId": "schematic_port_5",
|
|
55
|
+
"displayName": "I2C_SDA",
|
|
56
|
+
"x": -0.10000000000000009,
|
|
57
|
+
"y": -0.12500000000000022
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"pinId": "schematic_port_6",
|
|
61
|
+
"displayName": "I2C_ADDR",
|
|
62
|
+
"x": -0.10000000000000009,
|
|
63
|
+
"y": -1.4250000000000003
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"pinId": "schematic_port_7",
|
|
67
|
+
"displayName": "ALERT",
|
|
68
|
+
"x": -0.10000000000000009,
|
|
69
|
+
"y": -0.3250000000000002
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"pinId": "schematic_port_8",
|
|
73
|
+
"displayName": "I2C_SCL",
|
|
74
|
+
"x": -0.10000000000000009,
|
|
75
|
+
"y": 0.3250000000000002
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"pinId": "schematic_port_9",
|
|
79
|
+
"displayName": "VDD",
|
|
80
|
+
"x": -0.10000000000000009,
|
|
81
|
+
"y": 0.5250000000000004
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"pinId": "schematic_port_10",
|
|
85
|
+
"displayName": "RESET",
|
|
86
|
+
"x": -0.10000000000000009,
|
|
87
|
+
"y": -0.7750000000000001
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"pinId": "schematic_port_11",
|
|
91
|
+
"displayName": "I2C_ADDR1",
|
|
92
|
+
"x": -0.10000000000000009,
|
|
93
|
+
"y": -1.8750000000000002
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"pinId": "schematic_port_12",
|
|
97
|
+
"displayName": "GND",
|
|
98
|
+
"x": -0.10000000000000009,
|
|
99
|
+
"y": -2.075
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"chipId": "schematic_component_2",
|
|
105
|
+
"center": {
|
|
106
|
+
"x": 0.735,
|
|
107
|
+
"y": 2.15
|
|
108
|
+
},
|
|
109
|
+
"width": 0.97,
|
|
110
|
+
"height": 0.6000000000000001,
|
|
111
|
+
"pins": [
|
|
112
|
+
{
|
|
113
|
+
"pinId": "schematic_port_13",
|
|
114
|
+
"displayName": "anode",
|
|
115
|
+
"x": 0.7,
|
|
116
|
+
"y": 2.45
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"pinId": "schematic_port_14",
|
|
120
|
+
"displayName": "cathode",
|
|
121
|
+
"x": 0.7,
|
|
122
|
+
"y": 1.8499999999999999
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"chipId": "schematic_component_3",
|
|
128
|
+
"center": {
|
|
129
|
+
"x": 1.5350000000000001,
|
|
130
|
+
"y": 2.15
|
|
131
|
+
},
|
|
132
|
+
"width": 0.97,
|
|
133
|
+
"height": 0.6000000000000001,
|
|
134
|
+
"pins": [
|
|
135
|
+
{
|
|
136
|
+
"pinId": "schematic_port_15",
|
|
137
|
+
"displayName": "anode",
|
|
138
|
+
"x": 1.5,
|
|
139
|
+
"y": 2.45
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"pinId": "schematic_port_16",
|
|
143
|
+
"displayName": "cathode",
|
|
144
|
+
"x": 1.5,
|
|
145
|
+
"y": 1.8499999999999999
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"directConnections": [],
|
|
151
|
+
"netConnections": [
|
|
152
|
+
{
|
|
153
|
+
"netId": "VDD",
|
|
154
|
+
"isGround": false,
|
|
155
|
+
"netLabelWidth": 0.42,
|
|
156
|
+
"netLabelHeight": 0.48,
|
|
157
|
+
"pinIds": [
|
|
158
|
+
"schematic_port_0",
|
|
159
|
+
"schematic_port_9",
|
|
160
|
+
"schematic_port_13",
|
|
161
|
+
"schematic_port_15"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"netId": "SCL",
|
|
166
|
+
"isGround": false,
|
|
167
|
+
"netLabelWidth": 0.48,
|
|
168
|
+
"anchoredNetLabelWidth": 0.48,
|
|
169
|
+
"allowInlineNetLabel": true,
|
|
170
|
+
"inlineNetLabelHeight": 0.12,
|
|
171
|
+
"inlineNetLabelWidth": 0.32,
|
|
172
|
+
"pinIds": [
|
|
173
|
+
"schematic_port_1",
|
|
174
|
+
"schematic_port_8",
|
|
175
|
+
"schematic_port_14"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"netId": "SDA",
|
|
180
|
+
"isGround": false,
|
|
181
|
+
"netLabelWidth": 0.48,
|
|
182
|
+
"anchoredNetLabelWidth": 0.48,
|
|
183
|
+
"allowInlineNetLabel": true,
|
|
184
|
+
"inlineNetLabelHeight": 0.12,
|
|
185
|
+
"inlineNetLabelWidth": 0.32,
|
|
186
|
+
"pinIds": [
|
|
187
|
+
"schematic_port_2",
|
|
188
|
+
"schematic_port_5",
|
|
189
|
+
"schematic_port_16"
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"netId": "ALERT",
|
|
194
|
+
"isGround": false,
|
|
195
|
+
"netLabelWidth": 0.72,
|
|
196
|
+
"anchoredNetLabelWidth": 0.72,
|
|
197
|
+
"allowInlineNetLabel": true,
|
|
198
|
+
"inlineNetLabelHeight": 0.12,
|
|
199
|
+
"inlineNetLabelWidth": 0.48,
|
|
200
|
+
"pinIds": [
|
|
201
|
+
"schematic_port_3",
|
|
202
|
+
"schematic_port_7"
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"netId": "GND",
|
|
207
|
+
"isGround": true,
|
|
208
|
+
"netLabelWidth": 0.42,
|
|
209
|
+
"netLabelHeight": 0.48,
|
|
210
|
+
"pinIds": [
|
|
211
|
+
"schematic_port_4",
|
|
212
|
+
"schematic_port_6",
|
|
213
|
+
"schematic_port_11",
|
|
214
|
+
"schematic_port_12"
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"textBoxes": [
|
|
219
|
+
{
|
|
220
|
+
"chipId": "schematic_component_0",
|
|
221
|
+
"center": {
|
|
222
|
+
"x": 3.08,
|
|
223
|
+
"y": -2.4299999999999997
|
|
224
|
+
},
|
|
225
|
+
"width": 0.3599999999999999,
|
|
226
|
+
"height": 0.17999999999999972,
|
|
227
|
+
"text": "MCU"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"chipId": "schematic_component_0",
|
|
231
|
+
"center": {
|
|
232
|
+
"x": 3.0199999999999996,
|
|
233
|
+
"y": 2.415
|
|
234
|
+
},
|
|
235
|
+
"width": 0.3599999999999999,
|
|
236
|
+
"height": 0.24999999999999956,
|
|
237
|
+
"text": "U2"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"chipId": "schematic_component_1",
|
|
241
|
+
"center": {
|
|
242
|
+
"x": -3.04,
|
|
243
|
+
"y": -2.4299999999999997
|
|
244
|
+
},
|
|
245
|
+
"width": 1.3199999999999998,
|
|
246
|
+
"height": 0.17999999999999972,
|
|
247
|
+
"text": "HDC3020DEFR"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"chipId": "schematic_component_1",
|
|
251
|
+
"center": {
|
|
252
|
+
"x": -3.58,
|
|
253
|
+
"y": 2.415
|
|
254
|
+
},
|
|
255
|
+
"width": 0.3600000000000003,
|
|
256
|
+
"height": 0.24999999999999956,
|
|
257
|
+
"text": "U1"
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
"availableNetLabelOrientations": {
|
|
261
|
+
"VDD": [
|
|
262
|
+
"y+"
|
|
263
|
+
],
|
|
264
|
+
"SCL": [
|
|
265
|
+
"x-",
|
|
266
|
+
"x+"
|
|
267
|
+
],
|
|
268
|
+
"SDA": [
|
|
269
|
+
"x-",
|
|
270
|
+
"x+"
|
|
271
|
+
],
|
|
272
|
+
"ALERT": [
|
|
273
|
+
"x-",
|
|
274
|
+
"x+"
|
|
275
|
+
],
|
|
276
|
+
"GND": [
|
|
277
|
+
"y-"
|
|
278
|
+
]
|
|
279
|
+
},
|
|
280
|
+
"maxMspPairDistance": 2.4,
|
|
281
|
+
"_hideRatsNet": false
|
|
282
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { expect, test } from "bun:test"
|
|
2
|
+
import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
|
|
3
|
+
import type { InputProblem } from "lib/types/InputProblem"
|
|
4
|
+
import "tests/fixtures/matcher"
|
|
5
|
+
import inputProblem from "./assets/repro-hdc3020-ground-label-alignment.input.json"
|
|
6
|
+
|
|
7
|
+
test("repro HDC3020 shared ground rail label alignment", () => {
|
|
8
|
+
const solver = new SchematicTracePipelineSolver(
|
|
9
|
+
inputProblem as InputProblem,
|
|
10
|
+
{
|
|
11
|
+
hideRatsNet: true,
|
|
12
|
+
},
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
solver.solve()
|
|
16
|
+
|
|
17
|
+
const groundLabel = solver
|
|
18
|
+
.availableNetOrientationSolver!.getOutput()
|
|
19
|
+
.netLabelPlacements.find((label) =>
|
|
20
|
+
label.pinIds.includes("schematic_port_6"),
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
expect(groundLabel?.anchorPoint.x).toBeCloseTo(0.1)
|
|
24
|
+
expect(solver).toMatchSolverSnapshot(import.meta.path)
|
|
25
|
+
})
|