Compare commits
10 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab1e29d663 | ||
|
|
2dcae5db6f | ||
|
|
7b7b18cb14 | ||
|
|
621d39437a | ||
|
|
6033f3c6b9 | ||
|
|
1413a0e665 | ||
|
|
7f376f46d6 | ||
|
|
400ad2288d | ||
|
|
620bdcf705 | ||
|
|
91ce4bc0df |
19 changed files with 97436 additions and 90 deletions
1065
8seg_digit_circuit.svg
Normal file
1065
8seg_digit_circuit.svg
Normal file
File diff suppressed because it is too large
Load diff
|
After Width: | Height: | Size: 51 KiB |
500
8seg_strand_power_distribution.svg
Normal file
500
8seg_strand_power_distribution.svg
Normal file
|
|
@ -0,0 +1,500 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="297mm"
|
||||
height="210mm"
|
||||
viewBox="0 0 297 210"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
|
||||
sodipodi:docname="8seg_strand_power_distribution.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="3.3756135"
|
||||
inkscape:cx="542.71616"
|
||||
inkscape:cy="393.26184"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2091"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<rect
|
||||
x="365.72055"
|
||||
y="199.51234"
|
||||
width="342.47363"
|
||||
height="107.58745"
|
||||
id="rect76" />
|
||||
<rect
|
||||
x="159.17676"
|
||||
y="268.1709"
|
||||
width="209.77623"
|
||||
height="56.109158"
|
||||
id="rect65" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect45" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect46" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect47" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect48" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect49" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect50" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect51" />
|
||||
<rect
|
||||
x="213.55869"
|
||||
y="338.95828"
|
||||
width="92.228409"
|
||||
height="107.67358"
|
||||
id="rect52" />
|
||||
<rect
|
||||
x="159.17676"
|
||||
y="268.1709"
|
||||
width="307.93604"
|
||||
height="31.362564"
|
||||
id="rect66" />
|
||||
<rect
|
||||
x="159.17676"
|
||||
y="268.1709"
|
||||
width="449.28024"
|
||||
height="31.606376"
|
||||
id="rect67" />
|
||||
<rect
|
||||
x="365.72055"
|
||||
y="199.51234"
|
||||
width="436.93361"
|
||||
height="105.38921"
|
||||
id="rect77" />
|
||||
<rect
|
||||
x="365.72055"
|
||||
y="199.51234"
|
||||
width="568.39698"
|
||||
height="105.62805"
|
||||
id="rect78" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g97"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,88.198567,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7288-9"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7290-2"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7292-0"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g3"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,102.19874,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path2"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g6"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,116.19874,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g9"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,130.19891,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path9"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g12"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,144.19874,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path10"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path11"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path12"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g15"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,158.19891,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path13"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path14"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path15"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g18"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,172.19891,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path16"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path17"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path18"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g21"
|
||||
transform="matrix(0.99867976,0,0,0.80998993,186.19908,0.32484439)"
|
||||
style="stroke:#cc0000;stroke-width:1.11186">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path19"
|
||||
d="m 40.760409,104.53616 v 15.71634 h 9.742942 v -15.71634 z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path20"
|
||||
d="m 40.760409,104.53616 9.742942,15.71634"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path21"
|
||||
d="M 50.503351,104.53616 40.760409,120.2525"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.300112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,-19.531248,-75.07778)"
|
||||
id="text45"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect45);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="298.94265"
|
||||
y="355.42094"
|
||||
id="tspan2"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan1">1</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,-4.8796409,-75.07778)"
|
||||
id="text46"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect46);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="296.63626"
|
||||
y="355.42094"
|
||||
id="tspan4"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan3">2</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,9.2213001,-75.07778)"
|
||||
id="text47"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect47);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="296.74414"
|
||||
y="355.42094"
|
||||
id="tspan6"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan5">3</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,23.257104,-75.07778)"
|
||||
id="text48"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect48);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="296.31273"
|
||||
y="355.42094"
|
||||
id="tspan8"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan7">4</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,37.086934,-75.07778)"
|
||||
id="text49"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect49);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="297.19215"
|
||||
y="355.42094"
|
||||
id="tspan10"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan9">5</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,51.200505,-75.07778)"
|
||||
id="text50"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect50);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="296.3708"
|
||||
y="355.42094"
|
||||
id="tspan12"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan11">6</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,64.786539,-75.07778)"
|
||||
id="text51"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect51);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="297.2917"
|
||||
y="355.42094"
|
||||
id="tspan14"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan13">7</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.50666058,0,0,0.50666058,79.330959,-75.07778)"
|
||||
id="text52"
|
||||
style="font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display, Normal';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect52);display:inline;fill:#000000;stroke-width:0.592113;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="295.94769"
|
||||
y="355.42094"
|
||||
id="tspan16"><tspan
|
||||
style="-inkscape-font-specification:'Sitka Display'"
|
||||
id="tspan15">8</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 140.75158,80.570218 h 12.4892"
|
||||
id="path52"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 138.37356,82.867536 h 2.07802"
|
||||
id="path56"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 140.60158,77.580565 h 27.24371"
|
||||
id="path63"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 169.32363,77.580565 h 26.1367"
|
||||
id="path64"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 196.93867,77.580565 h 26.1367"
|
||||
id="path65"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,27.983625,10.314591)"
|
||||
id="text65"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect65);display:inline;fill:none;stroke:#000000;stroke-width:1.13386;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="326.29349"
|
||||
y="284.63383"
|
||||
id="tspan18"><tspan
|
||||
style="fill:#000000;stroke:none"
|
||||
id="tspan17">0.2 m</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,2.0120841,5.8582719)"
|
||||
id="text66"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect66);display:inline;fill:none;stroke:#000000;stroke-width:1.13386;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="279.80754"
|
||||
y="284.63383"
|
||||
id="tspan20"><tspan
|
||||
style="fill:#000000;stroke:none"
|
||||
id="tspan19">0.4 + 1.0 + 0.3 m = 1.7 m</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-35.385118,1.404148)"
|
||||
id="text67"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect67);display:inline;fill:none;stroke:#000000;stroke-width:1.13386;stroke-linecap:round;stroke-linejoin:round"><tspan
|
||||
x="247.66717"
|
||||
y="284.63383"
|
||||
id="tspan22"><tspan
|
||||
style="fill:#000000;stroke:none"
|
||||
id="tspan21">0.4 + 1.0 + 0.4 + 1.0 + 0.1 + 0.2 + 0.2 m = 3.3 m</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 168.77046,80.570218 h 12.4892"
|
||||
id="path67"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 166.39244,82.867536 h 2.07802"
|
||||
id="path68"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 196.52763,80.570218 h 12.4892"
|
||||
id="path69"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 194.14961,82.867536 h 2.07802"
|
||||
id="path70"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 223.72646,80.570218 h 12.4892"
|
||||
id="path71"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 221.34844,82.867536 h 2.07802"
|
||||
id="path72"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#808080;stroke-width:0.15;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 140.45158,73.993385 V 88.513586"
|
||||
id="path73" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#808080;stroke-width:0.15;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 168.714,73.993385 V 88.513586"
|
||||
id="path74" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#808080;stroke-width:0.15;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 196.30263,73.993385 V 88.513586"
|
||||
id="path75" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#808080;stroke-width:0.15;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
d="M 223.71141,73.993385 V 88.513586"
|
||||
id="path76" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,23.84675,-15.672795)"
|
||||
id="text76"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect76);display:inline;fill:#000000;stroke:none;stroke-width:0.566929;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"><tspan
|
||||
x="472.27943"
|
||||
y="215.97367"
|
||||
id="tspan23">Splitter "A" side is cable red side</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-1.1460406,-9.3386453)"
|
||||
id="text77"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect77);display:inline;fill:#000000;stroke:none;stroke-width:0.566929;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"><tspan
|
||||
x="366.318"
|
||||
y="215.97367"
|
||||
id="tspan24">Left (short) stub: Terminal block right side is cable red side</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-35.928931,-3.0044956)"
|
||||
id="text78"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;line-height:normal;font-family:'Sitka Display';-inkscape-font-specification:'Sitka Display';text-align:end;text-decoration-color:#000000;white-space:pre;shape-inside:url(#rect78);display:inline;fill:#000000;stroke:none;stroke-width:0.566929;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"><tspan
|
||||
x="505.71223"
|
||||
y="215.97367"
|
||||
id="tspan25">Right (long) stub: Terminal block left side is cable red side</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
target extended-remote 192.168.1.97:2022
|
||||
target extended-remote 192.168.27.119:2022
|
||||
set print pretty on
|
||||
set print elements 512
|
||||
|
||||
|
|
@ -29,7 +29,3 @@ define jdump
|
|||
end
|
||||
end
|
||||
|
||||
define reconnect
|
||||
disconnect
|
||||
target extended-remote 192.168.1.97:2022
|
||||
end
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ void ADC1_IRQHandler(void) {
|
|||
|
||||
/* Read sample and apply threshold */
|
||||
int sample = ADC1->DR; /* resets the EOC interrupt flag */
|
||||
int bit = sample > THRESHOLD_ADC_COUNTS;
|
||||
int bit = sample < THRESHOLD_ADC_COUNTS;
|
||||
int bit_margin = ((int)sample) - THRESHOLD_ADC_COUNTS;
|
||||
if (bit_margin < 0) {
|
||||
bit_margin = -bit_margin;
|
||||
|
|
|
|||
|
|
@ -273,6 +273,13 @@
|
|||
],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"ipc2581": {
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": ""
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,5 +1,16 @@
|
|||
|
||||
target extended-remote 192.168.1.95:2022
|
||||
# blackmagic-1
|
||||
# target extended-remote 192.168.27.252:2022
|
||||
|
||||
# blackmagic-2
|
||||
# target extended-remote 193.168.27.114:2022
|
||||
|
||||
# blackmagic-3
|
||||
target extended-remote 192.168.27.207:2022
|
||||
|
||||
# blackmagic-4
|
||||
# target extended-remote 192.168.27.153:2022
|
||||
|
||||
set print pretty on
|
||||
set print elements 512
|
||||
|
||||
|
|
@ -18,8 +29,3 @@ end
|
|||
source ~/ref/PyCortexMDebug/cmdebug/svd_gdb.py
|
||||
svd_load ~/ref/stm32square/svd/STM32G070.svd
|
||||
|
||||
define reconnect
|
||||
disconnect
|
||||
target extended-remote 192.168.1.95:2022
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ MUSL_DIR ?= upstream/musl
|
|||
# Algorithm parameters
|
||||
########################################################################################################################
|
||||
|
||||
# - none -
|
||||
DRIVER_ADDR ?= 0
|
||||
|
||||
########################################################################################################################
|
||||
# High-level build parameters
|
||||
|
|
@ -91,7 +91,7 @@ CFLAGS += -fno-common -ffunction-sections -fdata-sections
|
|||
|
||||
COMMON_CFLAGS += -O$(OPT) -std=gnu2x -g
|
||||
COMMON_CFLAGS += $(DEVICE_DEFINES)
|
||||
COMMON_CFLAGS += -DDEBUG=$(DEBUG)
|
||||
COMMON_CFLAGS += -DDEBUG=$(DEBUG) -DDRIVER_ADDR=$(DRIVER_ADDR)
|
||||
|
||||
GEN_HEADERS := $(BUILDDIR)/generated/waveform_tables.h
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ static void dma_tx_waveform(size_t table_size, const uint16_t *table);
|
|||
|
||||
#define SYNC_INTERVAL 13
|
||||
|
||||
static size_t time_to_sync = 0;
|
||||
static size_t tx_bitpos = 0;
|
||||
static size_t tx_sympos = 0;
|
||||
static int tx_last_bit = 0;
|
||||
|
|
@ -36,7 +35,37 @@ static union tx_buf_union *tx_buf_write = &tx_buf[2];
|
|||
static bool idle_buf_ready = false;
|
||||
|
||||
void update_tx_buf(void);
|
||||
int hex_to_int(char *hex, size_t len);
|
||||
|
||||
int hex_to_int(char *hex, size_t len) {
|
||||
int rv = 0;
|
||||
while (len--) {
|
||||
rv = rv<<4;
|
||||
char c = hex[len];
|
||||
if ('0' <= c && c <= '9')
|
||||
c = c - '0';
|
||||
else if ('a' <= c && c <= 'f')
|
||||
c = c - 'a' + 0xa;
|
||||
else if ('A' <= c && c <= 'F')
|
||||
c = c - 'A' + 0xa;
|
||||
else
|
||||
c = 0;
|
||||
rv |= c;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
enum leds {
|
||||
LED_ON = 1,
|
||||
LED_PING = 2,
|
||||
LED_OVERHEAT = 4,
|
||||
LED_CONTROL_ERR = 8,
|
||||
LED_INPUT_ERR = 16,
|
||||
LED_OUTPUT_ERR = 32
|
||||
};
|
||||
|
||||
char rxbuf[256];
|
||||
size_t rxp = 0;
|
||||
|
||||
int main(void) {
|
||||
/* Configure clocks for 64 MHz system clock.
|
||||
|
|
@ -132,7 +161,9 @@ int main(void) {
|
|||
GPIOB->OSPEEDR = (3<<0) | (3<<1) | (3<<3);
|
||||
|
||||
/* GPIOC:
|
||||
* C0-C3: (testpoint)
|
||||
* C0, C3: (testpoint)
|
||||
* C1: Fan 2 PWM
|
||||
* C2: Fan 1 PWM
|
||||
* C4: RJ45 LED 4
|
||||
* C5: RJ45 LED 3
|
||||
* C6: Fuse monitor 7
|
||||
|
|
@ -143,12 +174,14 @@ int main(void) {
|
|||
* C11-C15: (testpoint)
|
||||
*/
|
||||
GPIOC->MODER =
|
||||
IN(0) | IN(1) | IN(2) | IN(3) | IN(9) | IN(11) | IN(12) | IN(13) | IN(14) | IN(15) |
|
||||
IN(0) | OUT(1) | OUT(2) | IN(3) | IN(9) | IN(11) | IN(12) | IN(13) | IN(14) | IN(15) |
|
||||
OUT(4) | OUT(5) |
|
||||
IN(6) | IN(7) | IN(8) |
|
||||
AF(10);
|
||||
GPIOC->OTYPER = (1<<1) | (1<<2);
|
||||
GPIOC->AFR[1] = AFRH(10, 2);
|
||||
GPIOC->OSPEEDR = (3<<10);
|
||||
GPIOC->BRR = (1<<1) | (1<<2); /* Turn down fans (most fans don't turn off at 0% PWM) */
|
||||
|
||||
/* GPIOD:
|
||||
* D0-D6: (testpoint)
|
||||
|
|
@ -158,6 +191,22 @@ int main(void) {
|
|||
GPIOD->MODER = IN(0) | IN(1) | IN(2) | IN(3) | IN(4) | IN(5) | IN(6) |
|
||||
IN(8) | IN(9);
|
||||
|
||||
for (int i=0; i<10; i++) {
|
||||
set_status_leds(LED_ON);
|
||||
delay_us(250*1000);
|
||||
set_status_leds(0);
|
||||
delay_us(250*1000);
|
||||
}
|
||||
|
||||
GPIOC->BSRR = (1<<1) | (1<<2); /* Enable fans */
|
||||
|
||||
for (int i=0; i<10; i++) {
|
||||
set_status_leds(LED_ON);
|
||||
delay_us(250*1000);
|
||||
set_status_leds(0);
|
||||
delay_us(250*1000);
|
||||
}
|
||||
|
||||
TIM1->CCMR1 = (6<<TIM_CCMR1_OC2M_Pos) | TIM_CCMR1_OC2PE;
|
||||
TIM1->CCMR2 = (6<<TIM_CCMR2_OC3M_Pos) | TIM_CCMR2_OC3PE;
|
||||
TIM1->CCER = TIM_CCER_CC2E | TIM_CCER_CC2NE | TIM_CCER_CC2NP | TIM_CCER_CC3E | TIM_CCER_CC3NE | TIM_CCER_CC3P;
|
||||
|
|
@ -177,38 +226,79 @@ int main(void) {
|
|||
dma_tx_constant(COUNT_OF(waveform_zero_one), 0x00);
|
||||
xfr_8b10b_encode_reset(&encoder_state_8b10b);
|
||||
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
int k = 0;
|
||||
int n = 0;
|
||||
USART1->CR1 = /* 8-bit -> M1, M0 clear */
|
||||
/* OVER8 clear. Use default 16x oversampling */
|
||||
/* CMIF clear */
|
||||
/* MME clear */
|
||||
/* WAKE clear */
|
||||
/* PCE, PS clear */
|
||||
/* RXNEIE, other interrupts clear */
|
||||
USART_CR1_TE
|
||||
| USART_CR1_RE;
|
||||
USART1->CR3 |= USART_CR3_DEM; /* Output DE signal on RTS pin */
|
||||
USART1->BRR = 6667; /* Set baudrate to 9600 Bd */
|
||||
USART1->CR1 |= USART_CR1_UE; /* And... go! */
|
||||
|
||||
int rj45_rx_ctr = 0;
|
||||
int ping_ctr = 0;
|
||||
int control_err_ctr = 0;
|
||||
while (23) {
|
||||
i++;
|
||||
j++;
|
||||
i %= 6;
|
||||
j %= 4;
|
||||
delay_us(30000);
|
||||
set_rj45_leds(1 << j);
|
||||
set_status_leds(1 << i);
|
||||
if (i == 0) {
|
||||
k++;
|
||||
if (k == 16) {
|
||||
k = 0;
|
||||
n++;
|
||||
if (n == 16) {
|
||||
n = 0;
|
||||
if (rj45_rx_ctr) {
|
||||
set_rj45_leds(0x5);
|
||||
rj45_rx_ctr--;
|
||||
|
||||
} else {
|
||||
set_rj45_leds(0x0);
|
||||
}
|
||||
|
||||
int leds = LED_ON;
|
||||
if (ping_ctr) {
|
||||
leds |= LED_PING;
|
||||
ping_ctr--;
|
||||
}
|
||||
if (control_err_ctr) {
|
||||
leds |= LED_CONTROL_ERR;
|
||||
control_err_ctr--;
|
||||
}
|
||||
set_status_leds(leds);
|
||||
|
||||
int isr = USART1->ISR;
|
||||
if ((isr & USART_ISR_ORE) || (isr & USART_ISR_FE)) {
|
||||
USART1->ICR = USART_ICR_ORECF | USART_ICR_FECF;
|
||||
}
|
||||
|
||||
if (isr & USART_ISR_RXNE_RXFNE) {
|
||||
rj45_rx_ctr = 20000;
|
||||
char c = USART1->RDR;
|
||||
if (c == '\n') {
|
||||
if (rxp > 2 && rxp != 4*16*3) {
|
||||
control_err_ctr = 1000000;
|
||||
rxp = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
for (size_t i=0; i<16; i++) {
|
||||
int brightness = hex_to_int(&rxbuf[DRIVER_ADDR*16*3 + i*3], 1);
|
||||
int channels = hex_to_int(&rxbuf[DRIVER_ADDR*16*3 + i*3 + 1], 2);
|
||||
|
||||
tx_buf_write->packet.channels[i] = channels;
|
||||
|
||||
if ((i&1) == 0) {
|
||||
tx_buf_write->packet.brightness[i>>1] = brightness;
|
||||
} else {
|
||||
tx_buf_write->packet.brightness[i>>1] |= brightness<<4;
|
||||
}
|
||||
}
|
||||
rxp = 0;
|
||||
ping_ctr = 500000;
|
||||
update_tx_buf();
|
||||
|
||||
} else {
|
||||
if (rxp <= sizeof(rxbuf)) {
|
||||
rxbuf[rxp] = c;
|
||||
rxp ++;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t b = (k < 8) ? (1<<k) : ~(1<<(k-8));
|
||||
|
||||
memset(tx_buf_write, 0, sizeof(*tx_buf_write));
|
||||
for (size_t i=0; i<COUNT_OF(tx_buf_write->packet.channels); i++) {
|
||||
tx_buf_write->packet.channels[i] = 0xff;
|
||||
}
|
||||
for (size_t i=0; i<COUNT_OF(tx_buf_write->packet.brightness); i++) {
|
||||
tx_buf_write->packet.brightness[i] = 0xff; //(n<<4) | n;
|
||||
}
|
||||
update_tx_buf();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -243,7 +333,6 @@ size_t cnd_pos = 0;
|
|||
void DMA1_Channel1_IRQHandler() {
|
||||
static int transfer_errors = 0;
|
||||
static int current_symbol = 0;
|
||||
static int idle_symbol = 0;
|
||||
|
||||
if (DMA1->ISR & DMA_ISR_TEIF1) {
|
||||
transfer_errors ++;
|
||||
|
|
@ -272,32 +361,23 @@ void DMA1_Channel1_IRQHandler() {
|
|||
|
||||
sym_arr[sym_pos] = -255;
|
||||
|
||||
idle_symbol++;
|
||||
if (idle_symbol == 3) {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K23_7);
|
||||
idle_symbol = 0;
|
||||
|
||||
} else if (tx_sympos == sizeof(struct data_packet)) {
|
||||
if (time_to_sync > 0) {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K27_7);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
time_to_sync--;
|
||||
|
||||
} else {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K28_1);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
packet_rng_state = xorshift32(1);
|
||||
time_to_sync = SYNC_INTERVAL;
|
||||
}
|
||||
|
||||
if (tx_sympos == sizeof(struct data_packet)) {
|
||||
if (idle_buf_ready) {
|
||||
union tx_buf_union *tmp = tx_buf_idle;
|
||||
tx_buf_idle = tx_buf_read;
|
||||
tx_buf_read = tmp;
|
||||
idle_buf_ready = false;
|
||||
}
|
||||
|
||||
tx_sympos = 0;
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K28_1);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
packet_rng_state = xorshift32(1);
|
||||
|
||||
tx_sympos = 0;
|
||||
|
||||
} else {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K23_7);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
}
|
||||
|
||||
} else {
|
||||
uint8_t b = tx_buf_read->bytes[tx_sympos];
|
||||
|
|
|
|||
48
led_tape.svg
48
led_tape.svg
|
|
@ -2,21 +2,21 @@
|
|||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="5mm"
|
||||
height="2.5mm"
|
||||
viewBox="0 0 18.897638 9.4488189"
|
||||
sodipodi:docname="led_tape.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
||||
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
|
|
@ -25,7 +25,6 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
|
@ -40,15 +39,15 @@
|
|||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1030"
|
||||
inkscape:window-width="3208"
|
||||
inkscape:window-height="1981"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.99999999"
|
||||
inkscape:cx="119.84761"
|
||||
inkscape:cy="40.617263"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="50"
|
||||
inkscape:zoom="0.12102105"
|
||||
inkscape:cx="-1222.9277"
|
||||
inkscape:cy="-1739.3668"
|
||||
inkscape:window-x="26"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2"
|
||||
inkscape:measure-start="288.323,-37.2999"
|
||||
|
|
@ -59,27 +58,30 @@
|
|||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:snap-global="false" />
|
||||
inkscape:snap-global="false"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g7297-4"
|
||||
transform="matrix(1.3935337,0,0,1.5391961,-1554.0801,276.53669)"
|
||||
style="stroke-width:20.64532852;stroke-miterlimit:4;stroke-dasharray:none;fill:none;stroke:#bfbfbf">
|
||||
transform="matrix(1.5310128,0,0,1.6910455,-1737.4329,315.54284)"
|
||||
style="fill:none;stroke:#bfbfbf;stroke-width:20.6453;stroke-miterlimit:4;stroke-dasharray:none">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7288-9"
|
||||
d="M 1344,-246.55117 V 2697.4487 H 3791.9999 V -246.55117 Z"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.6453276;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.6453;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7290-2"
|
||||
d="M 1344,-246.55117 3791.9999,2697.4487"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.64532852;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.6453;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7292-0"
|
||||
d="M 3791.9999,-246.55117 1344,2697.4487"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.64532852;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
style="fill:none;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:20.6453;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1,002 KiB After Width: | Height: | Size: 1,002 KiB |
96
len_map.py
Normal file
96
len_map.py
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# This script calculates the optimal cut distribution to reduce waste while matching the desired 2:2:4 segment count
|
||||
# It applies brute force since the problem space is very small.
|
||||
|
||||
import numpy as np
|
||||
import itertools
|
||||
|
||||
l_tot = 500
|
||||
|
||||
a, b, c = 94, 124, 80
|
||||
n, m, l = 2, 2, 4
|
||||
arr = np.array([a, b, c], dtype=int)
|
||||
arr_count = np.array([n, m, l], dtype=int)
|
||||
|
||||
# Find all possible splits of a [l_tot] m led tape into segments of lengths [a], [b] and [c] that leave a remainder
|
||||
# that's smaller than any of [a], [b] and [c].
|
||||
candidates = []
|
||||
for i in range(l_tot//a + 1):
|
||||
l_rem_i = l_tot - i*a
|
||||
if l_rem_i < 0:
|
||||
continue
|
||||
|
||||
for j in range(l_rem_i//b + 1):
|
||||
l_rem_j = l_rem_i - j*b
|
||||
if l_rem_j < 0:
|
||||
continue
|
||||
|
||||
k = l_rem_j // c
|
||||
l_rem_k = l_rem_j - k*c
|
||||
|
||||
print(f'Candidate: ({i} {j} {k}) {i=}*{a} {j=}*{b=} {k=}*{c=} => remainder {l_rem_k}')
|
||||
candidates.append((i, j, k))
|
||||
candidates = np.array(candidates, dtype=int)
|
||||
print()
|
||||
|
||||
# Find all ways to combine the cuts found above to cut [num_rolls] into segments, where the amount of segments of length
|
||||
# [a], [b], and [c] that we get in total best matches the proportions we need ([n] times [a], [m] times [b], [l] times
|
||||
# [c], so 2:2:4 times for 94:124:80 cm)
|
||||
num_rolls = 3
|
||||
indices_seen = set()
|
||||
out = []
|
||||
for indices in itertools.product(candidates, repeat=num_rolls):
|
||||
indices = np.array(indices)
|
||||
index_tup = tuple(sorted(map(tuple, indices)))
|
||||
if index_tup in indices_seen:
|
||||
continue
|
||||
indices_seen.add(index_tup)
|
||||
rem = l_tot - (indices * arr).sum(axis=1)
|
||||
rem_total = rem.sum()
|
||||
count_total = indices.sum(axis=0).astype(float)
|
||||
count_total /= arr_count
|
||||
spread = count_total.max() - count_total.min()
|
||||
|
||||
if spread > 2 or (rem < 2).any():
|
||||
continue
|
||||
print(indices.tolist(), f'{rem_total=} {spread=}')
|
||||
out.append((spread, rem_total, indices.tolist(), rem.tolist(), indices.sum(axis=0).tolist()))
|
||||
print()
|
||||
|
||||
# Print out the n best matches found. Sort first by how close we match our target 2:2:4 ratio, then by how much waste
|
||||
# we leave.
|
||||
print('Best matches:')
|
||||
for spread, rem_total, indices, rem, index_sum in sorted(out, key=lambda x: (x[0], x[1]))[:25]:
|
||||
print(indices, f'{spread=} {rem_total=} {rem=} {index_sum=}')
|
||||
|
||||
# Here's the output for future reference. There are a number of combinations that produce 68 cm of waste split across
|
||||
# three 5m rolls of tape. We selected # 1 since it leaves leftovers of useful lengths.
|
||||
#
|
||||
# Best matches:
|
||||
# [[0, 0, 6], [0, 4, 0], [4, 0, 1]] spread=0.25 rem_total=68 rem=[20, 4, 44] index_sum=[4, 4, 7]
|
||||
# [[0, 0, 6], [1, 3, 0], [3, 1, 1]] spread=0.25 rem_total=68 rem=[20, 34, 14] index_sum=[4, 4, 7]
|
||||
# [[0, 2, 3], [0, 2, 3], [4, 0, 1]] spread=0.25 rem_total=68 rem=[12, 12, 44] index_sum=[4, 4, 7]
|
||||
# [[0, 2, 3], [1, 1, 3], [3, 1, 1]] spread=0.25 rem_total=68 rem=[12, 42, 14] index_sum=[4, 4, 7]
|
||||
# [[0, 2, 3], [2, 1, 2], [2, 1, 2]] spread=0.25 rem_total=68 rem=[12, 28, 28] index_sum=[4, 4, 7]
|
||||
# [[0, 3, 1], [1, 0, 5], [3, 1, 1]] spread=0.25 rem_total=68 rem=[48, 6, 14] index_sum=[4, 4, 7]
|
||||
# [[0, 4, 0], [1, 0, 5], [3, 0, 2]] spread=0.25 rem_total=68 rem=[4, 6, 58] index_sum=[4, 4, 7]
|
||||
# [[1, 0, 5], [1, 3, 0], [2, 1, 2]] spread=0.25 rem_total=68 rem=[6, 34, 28] index_sum=[4, 4, 7]
|
||||
# [[0, 0, 6], [0, 3, 1], [3, 1, 1]] spread=0.5 rem_total=82 rem=[20, 48, 14] index_sum=[3, 4, 8]
|
||||
# [[0, 0, 6], [0, 4, 0], [3, 0, 2]] spread=0.5 rem_total=82 rem=[20, 4, 58] index_sum=[3, 4, 8]
|
||||
# [[0, 0, 6], [1, 3, 0], [2, 1, 2]] spread=0.5 rem_total=82 rem=[20, 34, 28] index_sum=[3, 4, 8]
|
||||
# [[0, 1, 4], [0, 2, 3], [3, 1, 1]] spread=0.5 rem_total=82 rem=[56, 12, 14] index_sum=[3, 4, 8]
|
||||
# [[0, 2, 3], [0, 2, 3], [3, 0, 2]] spread=0.5 rem_total=82 rem=[12, 12, 58] index_sum=[3, 4, 8]
|
||||
# [[0, 2, 3], [1, 0, 5], [2, 2, 0]] spread=0.5 rem_total=82 rem=[12, 6, 64] index_sum=[3, 4, 8]
|
||||
# [[0, 2, 3], [1, 1, 3], [2, 1, 2]] spread=0.5 rem_total=82 rem=[12, 42, 28] index_sum=[3, 4, 8]
|
||||
# [[0, 3, 1], [1, 0, 5], [2, 1, 2]] spread=0.5 rem_total=82 rem=[48, 6, 28] index_sum=[3, 4, 8]
|
||||
# [[0, 4, 0], [1, 0, 5], [2, 0, 3]] spread=0.5 rem_total=82 rem=[4, 6, 72] index_sum=[3, 4, 8]
|
||||
# [[1, 0, 5], [1, 1, 3], [1, 3, 0]] spread=0.5 rem_total=82 rem=[6, 42, 34] index_sum=[3, 4, 8]
|
||||
# [[0, 0, 6], [0, 3, 1], [4, 0, 1]] spread=0.5 rem_total=112 rem=[20, 48, 44] index_sum=[4, 3, 8]
|
||||
# [[0, 0, 6], [1, 2, 1], [3, 1, 1]] spread=0.5 rem_total=112 rem=[20, 78, 14] index_sum=[4, 3, 8]
|
||||
# [[0, 0, 6], [1, 3, 0], [3, 0, 2]] spread=0.5 rem_total=112 rem=[20, 34, 58] index_sum=[4, 3, 8]
|
||||
# [[0, 0, 6], [2, 1, 2], [2, 2, 0]] spread=0.5 rem_total=112 rem=[20, 28, 64] index_sum=[4, 3, 8]
|
||||
# [[0, 1, 4], [0, 2, 3], [4, 0, 1]] spread=0.5 rem_total=112 rem=[56, 12, 44] index_sum=[4, 3, 8]
|
||||
# [[0, 1, 4], [1, 1, 3], [3, 1, 1]] spread=0.5 rem_total=112 rem=[56, 42, 14] index_sum=[4, 3, 8]
|
||||
# [[0, 1, 4], [2, 1, 2], [2, 1, 2]] spread=0.5 rem_total=112 rem=[56, 28, 28] index_sum=[4, 3, 8]
|
||||
|
||||
|
|
@ -90,6 +90,21 @@ body {
|
|||
"9": 0x33,
|
||||
"/": 0x0a,
|
||||
"\\": 0x05,
|
||||
".": 0x04,
|
||||
",": 0x08,
|
||||
"_": 0x40,
|
||||
"!": 0x53,
|
||||
"?": 0x52,
|
||||
"*": 0x0f,
|
||||
":": 0x50,
|
||||
"(": 0x06,
|
||||
"<": 0x06,
|
||||
"[": 0xd0,
|
||||
")": 0x09,
|
||||
">": 0x09,
|
||||
"]": 0x70,
|
||||
"|": 0x20,
|
||||
"#": 0xff,
|
||||
};
|
||||
|
||||
function map_digit(codepoint) {
|
||||
|
|
|
|||
BIN
wire-splitter-pcb/8seg-wire-splitter-v1-23-11-04-grb-final.zip
Normal file
BIN
wire-splitter-pcb/8seg-wire-splitter-v1-23-11-04-grb-final.zip
Normal file
Binary file not shown.
|
|
@ -0,0 +1,20 @@
|
|||
(footprint "double_wire_pads" (version 20221018) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(attr smd)
|
||||
(fp_text reference "REF**" (at 0 -0.5 unlocked) (layer "F.SilkS")
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
(tstamp cf043f51-e415-43dc-9a1a-f1be56a11d98)
|
||||
)
|
||||
(fp_text value "double_wire_pads" (at 0 1 unlocked) (layer "F.Fab")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp db15ba4e-d2d9-45a1-8d68-26a6caa8a2ab)
|
||||
)
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp 7cca8717-8e6a-45c5-92f3-f50e60376275)
|
||||
)
|
||||
(pad "1" thru_hole rect (at -2.5 0 90) (size 8 3.5) (drill 2) (layers "*.Cu" "*.Mask")
|
||||
(thermal_bridge_angle 45) (tstamp a9430b68-d1fa-4341-b8d1-e783a3cb168d))
|
||||
(pad "2" thru_hole rect (at 2.5 0 90) (size 8 3.5) (drill 2) (layers "*.Cu" "*.Mask")
|
||||
(thermal_bridge_angle 45) (tstamp c60f0d20-a2b9-415e-b867-94b73ce8e55d))
|
||||
)
|
||||
91078
wire-splitter-pcb/fp-info-cache
Normal file
91078
wire-splitter-pcb/fp-info-cache
Normal file
File diff suppressed because it is too large
Load diff
4
wire-splitter-pcb/fp-lib-table
Normal file
4
wire-splitter-pcb/fp-lib-table
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(fp_lib_table
|
||||
(version 7)
|
||||
(lib (name "footprints")(type "KiCad")(uri "${KIPRJMOD}/footprints.pretty")(options "")(descr ""))
|
||||
)
|
||||
3638
wire-splitter-pcb/wire-splitter-pcb.kicad_pcb
Normal file
3638
wire-splitter-pcb/wire-splitter-pcb.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
83
wire-splitter-pcb/wire-splitter-pcb.kicad_prl
Normal file
83
wire-splitter-pcb/wire-splitter-pcb.kicad_prl
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 37,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"repo_password": "",
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "wire-splitter-pcb.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
524
wire-splitter-pcb/wire-splitter-pcb.kicad_pro
Normal file
524
wire-splitter-pcb/wire-splitter-pcb.kicad_pro
Normal file
|
|
@ -0,0 +1,524 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.049999999999999996,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.09999999999999999,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"silk_line_width": 0.09999999999999999,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.09999999999999999,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"min_clearance": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.7999999999999999,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.09999999999999999,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0,
|
||||
1.8
|
||||
],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 100,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.1,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 100,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.1,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 100,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.1,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "wire-splitter-pcb.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "gerber",
|
||||
"pos_files": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"195662ba-81d5-4ede-8600-7793b163223d",
|
||||
""
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
232
wire-splitter-pcb/wire-splitter-pcb.kicad_sch
Normal file
232
wire-splitter-pcb/wire-splitter-pcb.kicad_sch
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
(kicad_sch (version 20230121) (generator eeschema)
|
||||
|
||||
(uuid 195662ba-81d5-4ede-8600-7793b163223d)
|
||||
|
||||
(paper "A4")
|
||||
|
||||
(lib_symbols
|
||||
(symbol "Connector_Generic:Conn_01x02" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
|
||||
(property "Reference" "J" (at 0 2.54 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x02" (at 0 -5.08 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_keywords" "connector" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(symbol "Conn_01x02_1_1"
|
||||
(rectangle (start -1.27 -2.413) (end 0 -2.667)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 0.127) (end 0 -0.127)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 1.27) (end 1.27 -3.81)
|
||||
(stroke (width 0.254) (type default))
|
||||
(fill (type background))
|
||||
)
|
||||
(pin passive line (at -5.08 0 0) (length 3.81)
|
||||
(name "Pin_1" (effects (font (size 1.27 1.27))))
|
||||
(number "1" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
(pin passive line (at -5.08 -2.54 0) (length 3.81)
|
||||
(name "Pin_2" (effects (font (size 1.27 1.27))))
|
||||
(number "2" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(junction (at 113.03 45.72) (diameter 0) (color 0 0 0 0)
|
||||
(uuid 11901a65-2a66-4376-bc4b-2d8758ac6ebd)
|
||||
)
|
||||
(junction (at 96.52 48.26) (diameter 0) (color 0 0 0 0)
|
||||
(uuid 25e2cdac-7cda-483d-8c90-d45ab302f9fa)
|
||||
)
|
||||
(junction (at 115.57 48.26) (diameter 0) (color 0 0 0 0)
|
||||
(uuid 2ff7d7ae-c0ba-4e08-85c9-06748d1874ca)
|
||||
)
|
||||
(junction (at 93.98 45.72) (diameter 0) (color 0 0 0 0)
|
||||
(uuid bdc97da8-8c62-4d80-bb7b-b5ab100d9cab)
|
||||
)
|
||||
|
||||
(wire (pts (xy 93.98 45.72) (xy 74.93 45.72))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 07f5fca7-e238-4617-83db-ddecb948484b)
|
||||
)
|
||||
(wire (pts (xy 96.52 48.26) (xy 96.52 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 378be16c-ca77-4f0f-8148-d7e5ec9e71bc)
|
||||
)
|
||||
(wire (pts (xy 115.57 48.26) (xy 115.57 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 3f6fe1ad-8658-4acc-b474-f5ff782a9257)
|
||||
)
|
||||
(wire (pts (xy 74.93 45.72) (xy 74.93 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 5ae13bad-5734-46ea-b6bd-35181b675fd2)
|
||||
)
|
||||
(wire (pts (xy 115.57 48.26) (xy 134.62 48.26))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 5e097960-a0ee-4b3d-90ba-cc2b7d265059)
|
||||
)
|
||||
(wire (pts (xy 113.03 45.72) (xy 93.98 45.72))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 85fadff3-c723-43ca-8eef-c23e714d5511)
|
||||
)
|
||||
(wire (pts (xy 134.62 48.26) (xy 134.62 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 864cf265-10b6-42e7-9a0f-6e36f5620579)
|
||||
)
|
||||
(wire (pts (xy 113.03 45.72) (xy 113.03 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid a9465065-d3c4-4c0e-861b-fe688b235ca0)
|
||||
)
|
||||
(wire (pts (xy 132.08 43.18) (xy 132.08 45.72))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid c40a6ab7-493d-45c7-ab04-9c8f1435b1af)
|
||||
)
|
||||
(wire (pts (xy 132.08 45.72) (xy 113.03 45.72))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid c521285d-d0ce-4121-8696-4937b57235b9)
|
||||
)
|
||||
(wire (pts (xy 93.98 45.72) (xy 93.98 43.18))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid fcf60d41-ae8f-4fa7-8c00-bc9b2c38c1c7)
|
||||
)
|
||||
(wire (pts (xy 77.47 43.18) (xy 77.47 48.26))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid fd2f0900-c47a-4749-9514-9fd90324daa1)
|
||||
)
|
||||
(wire (pts (xy 77.47 48.26) (xy 96.52 48.26))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid fdb50a5a-5378-4611-b9dc-591a155e823e)
|
||||
)
|
||||
(wire (pts (xy 96.52 48.26) (xy 115.57 48.26))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid ff1e020a-f7f8-4c43-a044-d249d4aa71d6)
|
||||
)
|
||||
|
||||
(symbol (lib_id "Connector_Generic:Conn_01x02") (at 74.93 38.1 90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
|
||||
(uuid 6a271670-9cc1-48a8-90d6-28daa1d0704e)
|
||||
(property "Reference" "J1" (at 80.01 36.83 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Value" "Conn_01x02" (at 80.01 39.37 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Footprint" "footprints:double_wire_pads" (at 74.93 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 74.93 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid 440d6680-f1d2-4b0c-bfa2-575d5ad5a1cc))
|
||||
(pin "2" (uuid cbce39f0-6575-422a-b849-38f313ea95d4))
|
||||
(instances
|
||||
(project "wire-splitter-pcb"
|
||||
(path "/195662ba-81d5-4ede-8600-7793b163223d"
|
||||
(reference "J1") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(symbol (lib_id "Connector_Generic:Conn_01x02") (at 93.98 38.1 90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
|
||||
(uuid 98bb5b63-4f36-4e7d-bf0a-526230579ce9)
|
||||
(property "Reference" "J2" (at 99.06 36.83 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Value" "Conn_01x02" (at 99.06 39.37 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Footprint" "footprints:double_wire_pads" (at 93.98 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 93.98 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid ead486db-12cf-41d6-9f1b-873239ef776d))
|
||||
(pin "2" (uuid 48bec30a-e718-4403-a318-58d0bd73f6e6))
|
||||
(instances
|
||||
(project "wire-splitter-pcb"
|
||||
(path "/195662ba-81d5-4ede-8600-7793b163223d"
|
||||
(reference "J2") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(symbol (lib_id "Connector_Generic:Conn_01x02") (at 113.03 38.1 90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
|
||||
(uuid a1041d02-3ff3-473d-925c-8c8475517a5f)
|
||||
(property "Reference" "J3" (at 118.11 36.83 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Value" "Conn_01x02" (at 118.11 39.37 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Footprint" "footprints:double_wire_pads" (at 113.03 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 113.03 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid 308d78e4-3d93-49f6-951e-ae626a2368c5))
|
||||
(pin "2" (uuid 916793c7-12eb-470f-a4c1-ed63ae92a469))
|
||||
(instances
|
||||
(project "wire-splitter-pcb"
|
||||
(path "/195662ba-81d5-4ede-8600-7793b163223d"
|
||||
(reference "J3") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(symbol (lib_id "Connector_Generic:Conn_01x02") (at 132.08 38.1 90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
|
||||
(uuid d6a889e8-fd02-44b0-9b63-d0994d53dbe0)
|
||||
(property "Reference" "J4" (at 137.16 36.83 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Value" "Conn_01x02" (at 137.16 39.37 90)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
)
|
||||
(property "Footprint" "footprints:double_wire_pads" (at 132.08 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 132.08 38.1 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid 4a718f90-5ec7-4f1a-8d1c-bdd68c448396))
|
||||
(pin "2" (uuid 416929de-6439-4cff-8d42-c31512b88062))
|
||||
(instances
|
||||
(project "wire-splitter-pcb"
|
||||
(path "/195662ba-81d5-4ede-8600-7793b163223d"
|
||||
(reference "J4") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(sheet_instances
|
||||
(path "/" (page "1"))
|
||||
)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue