Merge branch 'dev' into feature-multicolor-wires

# Conflicts:
#	examples/ex01.bom.tsv
#	examples/ex01.gv
#	examples/ex01.html
#	examples/ex01.png
#	examples/ex01.svg
#	examples/ex05.gv
#	examples/ex05.html
#	examples/ex05.png
#	examples/ex05.svg
#	src/wireviz/Harness.py
#	src/wireviz/build_examples.py
This commit is contained in:
Andrew Katz 2020-07-16 09:01:16 -04:00
commit bb0826ae9a
32 changed files with 2048 additions and 1007 deletions

29
CHANGELOG.md Normal file
View File

@ -0,0 +1,29 @@
# Change Log
## [0.2](https://github.com/formatc1702/WireViz/tree/v0.2) (2020-XX-XX)
### Backward incompatible changes
- Change names of connector attributes ([#77](https://github.com/formatc1702/WireViz/issues/77))
- Remove ferrules as a separate connector type ([#78](https://github.com/formatc1702/WireViz/issues/78))
- Change the way loops are defined ([#79](https://github.com/formatc1702/WireViz/issues/79))
### New features
- Add bidirectional AWG/mm2 conversion ([#41](https://github.com/formatc1702/WireViz/pull/41))
- Add support for part numbers ([#11](https://github.com/formatc1702/WireViz/pull/11))
- Add support for multicolored wires ([#17](https://github.com/formatc1702/WireViz/pull/17))
- Add ability to export data directly to other programs ([#55](https://github.com/formatc1702/WireViz/pull/55))
- Add support for line breaks in various fields ([#63](https://github.com/formatc1702/WireViz/issues/63))
- Allow using connector pin names to define connections ([#72](https://github.com/formatc1702/WireViz/issues/72))
- Make defining connection sets easier and more flexible ([#67](https://github.com/formatc1702/WireViz/issues/67))
### Misc. fixes
- Improve BOM generation
- Add various input sanity checks
###
## [0.1](https://github.com/formatc1702/WireViz/tree/v0.1) (2020-06-29)
- Initial release

18
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,18 @@
# Contribution Guidelines
When contributing to this repository, please first discuss the change you
wish to make via issue, email, or any other method with the owners of this
repository before making a change.
## Pull Requests
1. Fork this repository to your repository
1. Clone the repository to your local machine
1. Checkout the `dev` branch
1. Make any changes to the code on the `dev` branch
1. Push your changes to your fork
1. Create new pull request
## Documentation Strings
Documentation strings are to follow the Google Style ([examples](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)).

View File

@ -110,7 +110,13 @@ If you would like to rebuild all of the included demos, examples and tutorials,
```cd src/wireviz ```cd src/wireviz
./build_examples.py ./build_examples.py
``` ```
## Changelog
See [CHANGELOG.md](CHANGELOG.md)
## Status ## Status
This is very much a [work in progress](https://github.com/formatc1702/WireViz/projects/1). Source code, API, syntax and functionality may change wildly at any time. This is very much a [work in progress](https://github.com/formatc1702/WireViz/projects/1). Source code, API, syntax and functionality may change wildly at any time.
@ -123,4 +129,4 @@ Ubuntu 18.04 LTS users in particular may need to separately install Python 3.7 o
## License ## License
GNU GPLv3 [GPL-3.0](LICENSE)

View File

@ -9,11 +9,6 @@ templates: # defining templates to be used later on
gauge: 0.14 mm2 gauge: 0.14 mm2
colors: [BK, RD, YE, GN] colors: [BK, RD, YE, GN]
ferrules:
ferrule_crimp:
type: Crimp ferrule
subtype: 0.25 mm²
connectors: connectors:
X1: X1:
<<: *molex_f # copying items from the template <<: *molex_f # copying items from the template
@ -27,6 +22,11 @@ connectors:
X4: X4:
<<: *molex_f <<: *molex_f
pinout: [GND, +12V, MISO, MOSI, SCK] pinout: [GND, +12V, MISO, MOSI, SCK]
ferrule_crimp:
category: ferrule
autogenerate: true
type: Crimp ferrule
subtype: 0.25 mm²
cables: cables:
W1: W1:

View File

@ -1,3 +1,3 @@
Item Qty Unit Designators Item Qty Unit Designators
Connector, Molex KK 254, female, 4 pins 2 X1, X2 Connector, Molex KK 254, female, 4 pins 2 X1, X2
Cable, 4 x 0.25 mm² shielded 0.2 m W1 Cable, Serial, 4 x 0.25 mm² shielded 0.2 m W1

1 Item Qty Unit Designators
2 Connector, Molex KK 254, female, 4 pins 2 X1, X2
3 Cable, 4 x 0.25 mm² shielded Cable, Serial, 4 x 0.25 mm² shielded 0.2 m W1

View File

@ -1,12 +1,12 @@
graph { graph {
// Graph generated by WireViz // Graph generated by WireViz
// https://github.com/formatc1702/WireViz // https://github.com/formatc1702/WireViz
graph [bgcolor="#fffbf8" fontname=arial nodesep=0.33 rankdir=LR ranksep=2] graph [bgcolor=white fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor=white fontname=arial shape=record style=filled] node [fillcolor=white fontname=arial shape=record style=filled]
edge [fontname=arial style=bold] edge [fontname=arial style=bold]
X1 [label="X1|{Molex KK 254|female|4-pin}|{{GND|VCC|RX|TX}|{<p1r>1|<p2r>2|<p3r>3|<p4r>4}}"] X1 [label="X1|{Molex KK 254|female|4-pin}|{{GND|VCC|RX|TX}|{<p1r>1|<p2r>2|<p3r>3|<p4r>4}}"]
X2 [label="X2|{Molex KK 254|female|4-pin}|{{<p1l>1|<p2l>2|<p3l>3|<p4l>4}|{GND|VCC|RX|TX}}"] X2 [label="X2|{Molex KK 254|female|4-pin}|{{<p1l>1|<p2l>2|<p3l>3|<p4l>4}|{GND|VCC|RX|TX}}"]
edge [color="#000000:#a52a2a:#000000"] edge [color="#000000:#666600:#000000"]
X1:p1r:e -- W1:w1:w X1:p1r:e -- W1:w1:w
W1:w1:e -- X2:p1l:w W1:w1:e -- X2:p1l:w
edge [color="#000000:#ff0000:#000000"] edge [color="#000000:#ff0000:#000000"]
@ -18,7 +18,7 @@ graph {
edge [color="#000000:#ffff00:#000000"] edge [color="#000000:#ffff00:#000000"]
X1:p4r:e -- W1:w4:w X1:p4r:e -- W1:w4:w
W1:w4:e -- X2:p3l:w W1:w4:e -- X2:p3l:w
edge [color="#aaaaaa:#84878c"] edge [color="#000000"]
X1:p1r:e -- W1:ws:w X1:p1r:e -- W1:ws:w
W1 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="4">W1</td></tr><tr><td>4x</td><td>0.25 mm² (24 AWG)</td><td>+ S</td><td>0.2 m</td></tr></table></td></tr><tr><td></td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>BN</td><td>X2:1</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#a52a2a" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:2</td><td>RD</td><td>X2:2</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff0000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:3</td><td>OG</td><td>X2:4</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff8000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:4</td><td>YE</td><td>X2:3</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td></td></tr><tr><td>X1:1</td><td>Shield</td><td><!-- s_out --></td></tr><tr><td colspan="3" cellpadding="0" bgcolor="#aaaaaa:#84878c" height="6" border="2" sides="b" port="ws"></td></tr><tr><td></td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style=""] W1 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="5">W1</td></tr><tr><td>Serial</td><td>4x</td><td>0.25 mm² (24 AWG)</td><td>+ S</td><td>0.2 m</td></tr></table></td></tr><tr><td>&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>BN</td><td>X2:1</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#666600" border="2" sides="tb" port="w1"></td></tr><tr><td>X1:2</td><td>RD</td><td>X2:2</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff0000" border="2" sides="tb" port="w2"></td></tr><tr><td>X1:3</td><td>OG</td><td>X2:4</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff8000" border="2" sides="tb" port="w3"></td></tr><tr><td>X1:4</td><td>YE</td><td>X2:3</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ffff00" border="2" sides="tb" port="w4"></td></tr><tr><td>&nbsp;</td></tr><tr><td>X1:1</td><td>Shield</td><td><!-- s_out --></td></tr><tr><td colspan="3" cellpadding="0" height="6" border="2" sides="b" port="ws"></td></tr><tr><td>&nbsp;</td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style=""]
} }

View File

@ -1,169 +1,177 @@
<html><body style="font-family:Arial"><h1>Diagram</h1><?xml version="1.0" encoding="UTF-8" standalone="no"?> <html><body style="font-family:Arial"><h1>Diagram</h1><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041) <!-- Generated by graphviz version 2.44.0 (20200408.0750)
--> -->
<!-- Title: %3 Pages: 1 --> <!-- Pages: 1 -->
<svg width="961pt" height="187pt" <svg width="979pt" height="232pt"
viewBox="0.00 0.00 961.00 187.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 979.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 183)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<title>%3</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-228 975,-228 975,4 -4,4"/>
<polygon fill="#fffbf8" stroke="none" points="-4,4 -4,-183 957,-183 957,4 -4,4"/>
<!-- X1 --> <!-- X1 -->
<g id="node1" class="node"><title>X1</title> <g id="node1" class="node">
<polygon fill="white" stroke="black" points="0,-26.5 0,-164.5 214,-164.5 214,-26.5 0,-26.5"/> <title>X1</title>
<text text-anchor="middle" x="107" y="-149.3" font-family="arial" font-size="14.00">X1</text> <polygon fill="white" stroke="black" points="0,-57 0,-195 206,-195 206,-57 0,-57"/>
<polyline fill="none" stroke="black" points="0,-141.5 214,-141.5 "/> <text text-anchor="middle" x="103" y="-179.8" font-family="arial" font-size="14.00">X1</text>
<text text-anchor="middle" x="53" y="-126.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="0,-172 206,-172 "/>
<polyline fill="none" stroke="black" points="106,-118.5 106,-141.5 "/> <text text-anchor="middle" x="50.5" y="-156.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="136" y="-126.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="101,-149 101,-172 "/>
<polyline fill="none" stroke="black" points="166,-118.5 166,-141.5 "/> <text text-anchor="middle" x="130" y="-156.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="190" y="-126.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="159,-149 159,-172 "/>
<polyline fill="none" stroke="black" points="0,-118.5 214,-118.5 "/> <text text-anchor="middle" x="182.5" y="-156.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="59" y="-103.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="0,-149 206,-149 "/>
<polyline fill="none" stroke="black" points="0,-95.5 118,-95.5 "/> <text text-anchor="middle" x="57" y="-133.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="59" y="-80.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="0,-126 114,-126 "/>
<polyline fill="none" stroke="black" points="0,-72.5 118,-72.5 "/> <text text-anchor="middle" x="57" y="-110.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="59" y="-57.3" font-family="arial" font-size="14.00">RX</text> <polyline fill="none" stroke="black" points="0,-103 114,-103 "/>
<polyline fill="none" stroke="black" points="0,-49.5 118,-49.5 "/> <text text-anchor="middle" x="57" y="-87.8" font-family="arial" font-size="14.00">RX</text>
<text text-anchor="middle" x="59" y="-34.3" font-family="arial" font-size="14.00">TX</text> <polyline fill="none" stroke="black" points="0,-80 114,-80 "/>
<polyline fill="none" stroke="black" points="118,-26.5 118,-118.5 "/> <text text-anchor="middle" x="57" y="-64.8" font-family="arial" font-size="14.00">TX</text>
<text text-anchor="middle" x="166" y="-103.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="114,-57 114,-149 "/>
<polyline fill="none" stroke="black" points="118,-95.5 214,-95.5 "/> <text text-anchor="middle" x="160" y="-133.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="166" y="-80.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="114,-126 206,-126 "/>
<polyline fill="none" stroke="black" points="118,-72.5 214,-72.5 "/> <text text-anchor="middle" x="160" y="-110.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="166" y="-57.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="114,-103 206,-103 "/>
<polyline fill="none" stroke="black" points="118,-49.5 214,-49.5 "/> <text text-anchor="middle" x="160" y="-87.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="166" y="-34.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="114,-80 206,-80 "/>
<text text-anchor="middle" x="160" y="-64.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W1 --> <!-- W1 -->
<g id="node3" class="node"><title>W1</title> <g id="node3" class="node">
<polygon fill="none" stroke="black" points="595,-179 358,-179 358,-0 595,-0 595,-179"/> <title>W1</title>
<polygon fill="none" stroke="black" points="358.5,-155.5 358.5,-178.5 595.5,-178.5 595.5,-155.5 358.5,-155.5"/> <polygon fill="none" stroke="black" points="621,-224 350,-224 350,0 621,0 621,-224"/>
<text text-anchor="start" x="465.5" y="-163.3" font-family="arial" font-size="14.00">W1</text> <polygon fill="none" stroke="black" points="350.5,-201 350.5,-224 621.5,-224 621.5,-201 350.5,-201"/>
<polygon fill="none" stroke="black" points="358.5,-132.5 358.5,-155.5 382.5,-155.5 382.5,-132.5 358.5,-132.5"/> <text text-anchor="start" x="475" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<text text-anchor="start" x="362.5" y="-140.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="350.5,-178 350.5,-201 393.5,-201 393.5,-178 350.5,-178"/>
<polygon fill="none" stroke="black" points="382.5,-132.5 382.5,-155.5 520.5,-155.5 520.5,-132.5 382.5,-132.5"/> <text text-anchor="start" x="354.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<text text-anchor="start" x="386.5" y="-140.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text> <polygon fill="none" stroke="black" points="393.5,-178 393.5,-201 416.5,-201 416.5,-178 393.5,-178"/>
<polygon fill="none" stroke="black" points="520.5,-132.5 520.5,-155.5 550.5,-155.5 550.5,-132.5 520.5,-132.5"/> <text text-anchor="start" x="397.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="524.5" y="-140.3" font-family="arial" font-size="14.00">+ S</text> <polygon fill="none" stroke="black" points="416.5,-178 416.5,-201 548.5,-201 548.5,-178 416.5,-178"/>
<polygon fill="none" stroke="black" points="550.5,-132.5 550.5,-155.5 595.5,-155.5 595.5,-132.5 550.5,-132.5"/> <text text-anchor="start" x="420.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<text text-anchor="start" x="554.5" y="-140.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="548.5,-178 548.5,-201 578.5,-201 578.5,-178 548.5,-178"/>
<text text-anchor="start" x="381" y="-119.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="552.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<text text-anchor="start" x="467" y="-119.3" font-family="arial" font-size="14.00">BN</text> <polygon fill="none" stroke="black" points="578.5,-178 578.5,-201 621.5,-201 621.5,-178 578.5,-178"/>
<text text-anchor="start" x="542" y="-119.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="582.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="358.5,-111.5 358.5,-113.5 595.5,-113.5 595.5,-111.5 358.5,-111.5"/> <text text-anchor="start" x="484" y="-166.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#a52a2a" stroke="none" points="358.5,-109.5 358.5,-111.5 595.5,-111.5 595.5,-109.5 358.5,-109.5"/> <text text-anchor="start" x="380" y="-149.8" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="358.5,-107.5 358.5,-109.5 595.5,-109.5 595.5,-107.5 358.5,-107.5"/> <text text-anchor="start" x="476.5" y="-149.8" font-family="arial" font-size="14.00">BN</text>
<text text-anchor="start" x="381" y="-94.3" font-family="arial" font-size="14.00">X1:2</text> <text text-anchor="start" x="564" y="-149.8" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="466" y="-94.3" font-family="arial" font-size="14.00">RD</text> <polygon fill="#666600" stroke="transparent" points="350.5,-138 350.5,-144 621.5,-144 621.5,-138 350.5,-138"/>
<text text-anchor="start" x="542" y="-94.3" font-family="arial" font-size="14.00">X2:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-139 620.5,-139 "/>
<polygon fill="#000000" stroke="none" points="358.5,-86.5 358.5,-88.5 595.5,-88.5 595.5,-86.5 358.5,-86.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-143 351.5,-143 "/>
<polygon fill="#ff0000" stroke="none" points="358.5,-84.5 358.5,-86.5 595.5,-86.5 595.5,-84.5 358.5,-84.5"/> <text text-anchor="start" x="380" y="-124.8" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="358.5,-82.5 358.5,-84.5 595.5,-84.5 595.5,-82.5 358.5,-82.5"/> <text text-anchor="start" x="476" y="-124.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="381" y="-69.3" font-family="arial" font-size="14.00">X1:3</text> <text text-anchor="start" x="564" y="-124.8" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="465.5" y="-69.3" font-family="arial" font-size="14.00">OG</text> <polygon fill="#ff0000" stroke="transparent" stroke-width="2" points="350.5,-113 350.5,-119 621.5,-119 621.5,-113 350.5,-113"/>
<text text-anchor="start" x="542" y="-69.3" font-family="arial" font-size="14.00">X2:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-114 620.5,-114 "/>
<polygon fill="#000000" stroke="none" points="358.5,-61.5 358.5,-63.5 595.5,-63.5 595.5,-61.5 358.5,-61.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-118 351.5,-118 "/>
<polygon fill="#ff8000" stroke="none" points="358.5,-59.5 358.5,-61.5 595.5,-61.5 595.5,-59.5 358.5,-59.5"/> <text text-anchor="start" x="380" y="-99.8" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="358.5,-57.5 358.5,-59.5 595.5,-59.5 595.5,-57.5 358.5,-57.5"/> <text text-anchor="start" x="474.5" y="-99.8" font-family="arial" font-size="14.00">OG</text>
<text text-anchor="start" x="381" y="-44.3" font-family="arial" font-size="14.00">X1:4</text> <text text-anchor="start" x="564" y="-99.8" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="467.5" y="-44.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#ff8000" stroke="transparent" stroke-width="2" points="350.5,-88 350.5,-94 621.5,-94 621.5,-88 350.5,-88"/>
<text text-anchor="start" x="542" y="-44.3" font-family="arial" font-size="14.00">X2:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-89 620.5,-89 "/>
<polygon fill="#000000" stroke="none" points="358.5,-36.5 358.5,-38.5 595.5,-38.5 595.5,-36.5 358.5,-36.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-93 351.5,-93 "/>
<polygon fill="#ffff00" stroke="none" points="358.5,-34.5 358.5,-36.5 595.5,-36.5 595.5,-34.5 358.5,-34.5"/> <text text-anchor="start" x="380" y="-74.8" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="358.5,-32.5 358.5,-34.5 595.5,-34.5 595.5,-32.5 358.5,-32.5"/> <text text-anchor="start" x="476.5" y="-74.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="381" y="-15.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="564" y="-74.8" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="457" y="-15.3" font-family="arial" font-size="14.00">Shield</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350.5,-63 350.5,-69 621.5,-69 621.5,-63 350.5,-63"/>
<defs> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-64 620.5,-64 "/>
<linearGradient id="l_0" gradientUnits="userSpaceOnUse" x1="358.5" y1="-6.5" x2="595.5" y2="-6.5" > <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-68 351.5,-68 "/>
<stop offset="0" style="stop-color:#aaaaaa;stop-opacity:1.;"/> <text text-anchor="start" x="392" y="-49.8" font-family="arial" font-size="14.00"> </text>
<stop offset="1" style="stop-color:#84878c;stop-opacity:1.;"/> <text text-anchor="start" x="380" y="-30.8" font-family="arial" font-size="14.00">X1:1</text>
</linearGradient> <text text-anchor="start" x="467" y="-30.8" font-family="arial" font-size="14.00">Shield</text>
</defs> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-20 620.5,-20 "/>
<polygon fill="url(#l_0)" stroke="none" points="358.5,-3.5 358.5,-9.5 595.5,-9.5 595.5,-3.5 358.5,-3.5"/> <text text-anchor="start" x="392" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polyline fill="none" stroke="black" stroke-width="2" points="359.5,-4.5 594.5,-4.5 "/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge"><title>X1:p1r:e&#45;&#45;W1:w1:w</title> <g id="edge1" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-105.5C278.383,-105.534 294.355,-108.534 358,-108.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#a52a2a" stroke-width="2" d="M214,-107.5C278.014,-107.5 293.986,-110.5 358,-110.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-136C270.38,-136.03 286.36,-139.03 350,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-109.5C277.645,-109.466 293.617,-112.466 358,-112.5"/> <path fill="none" stroke="#666600" stroke-width="2" d="M206,-138C270.01,-138 285.99,-141 350,-141"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-140C269.64,-139.97 285.62,-142.97 350,-143"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge"><title>X1:p2r:e&#45;&#45;W1:w2:w</title> <g id="edge3" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-81.5C278.254,-81.5155 294.242,-83.5155 358,-83.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M214,-83.5C278.006,-83.5 293.994,-85.5 358,-85.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-112C270.25,-112.02 286.24,-114.02 350,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-85.5C277.758,-85.4845 293.746,-87.4845 358,-87.5"/> <path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-114C270.01,-114 285.99,-116 350,-116"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-116C269.76,-115.98 285.75,-117.98 350,-118"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge"><title>X1:p3r:e&#45;&#45;W1:w3:w</title> <g id="edge5" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-58.5C278,-58.5 294,-58.5 358,-58.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M214,-60.5C278,-60.5 294,-60.5 358,-60.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-89C270,-89 286,-89 350,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-62.5C278,-62.5 294,-62.5 358,-62.5"/> <path fill="none" stroke="#ff8000" stroke-width="2" d="M206,-91C270,-91 286,-91 350,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-93C270,-93 286,-93 350,-93"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge"><title>X1:p4r:e&#45;&#45;W1:w4:w</title> <g id="edge7" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-35.5C277.758,-35.5155 293.746,-33.5155 358,-33.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M214,-37.5C278.006,-37.5 293.994,-35.5 358,-35.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-66C269.76,-66.02 285.75,-64.02 350,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-39.5C278.254,-39.4845 294.242,-37.4845 358,-37.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-68C270.01,-68 285.99,-66 350,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-70C270.25,-69.98 286.24,-67.98 350,-68"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge"><title>X1:p1r:e&#45;&#45;W1:ws:w</title> <g id="edge9" class="edge">
<path fill="none" stroke="#aaaaaa" stroke-width="2" d="M214,-106.5C291.18,-107.621 278.834,-6.62133 358,-5.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#84878c" stroke-width="2" d="M214,-108.5C293.166,-107.379 280.82,-6.37867 358,-7.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-138C288.18,-138 267.82,-22 350,-22"/>
</g> </g>
<!-- X2 --> <!-- X2 -->
<g id="node2" class="node"><title>X2</title> <g id="node2" class="node">
<polygon fill="white" stroke="black" points="739,-28.5 739,-166.5 953,-166.5 953,-28.5 739,-28.5"/> <title>X2</title>
<text text-anchor="middle" x="846" y="-151.3" font-family="arial" font-size="14.00">X2</text> <polygon fill="white" stroke="black" points="765,-59 765,-197 971,-197 971,-59 765,-59"/>
<polyline fill="none" stroke="black" points="739,-143.5 953,-143.5 "/> <text text-anchor="middle" x="868" y="-181.8" font-family="arial" font-size="14.00">X2</text>
<text text-anchor="middle" x="792" y="-128.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="765,-174 971,-174 "/>
<polyline fill="none" stroke="black" points="845,-120.5 845,-143.5 "/> <text text-anchor="middle" x="815.5" y="-158.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="875" y="-128.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="866,-151 866,-174 "/>
<polyline fill="none" stroke="black" points="905,-120.5 905,-143.5 "/> <text text-anchor="middle" x="895" y="-158.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="929" y="-128.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="924,-151 924,-174 "/>
<polyline fill="none" stroke="black" points="739,-120.5 953,-120.5 "/> <text text-anchor="middle" x="947.5" y="-158.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="786.5" y="-105.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="765,-151 971,-151 "/>
<polyline fill="none" stroke="black" points="739,-97.5 834,-97.5 "/> <text text-anchor="middle" x="810.5" y="-135.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="786.5" y="-82.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="765,-128 856,-128 "/>
<polyline fill="none" stroke="black" points="739,-74.5 834,-74.5 "/> <text text-anchor="middle" x="810.5" y="-112.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="786.5" y="-59.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="765,-105 856,-105 "/>
<polyline fill="none" stroke="black" points="739,-51.5 834,-51.5 "/> <text text-anchor="middle" x="810.5" y="-89.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="786.5" y="-36.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="765,-82 856,-82 "/>
<polyline fill="none" stroke="black" points="834,-28.5 834,-120.5 "/> <text text-anchor="middle" x="810.5" y="-66.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="893.5" y="-105.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="856,-59 856,-151 "/>
<polyline fill="none" stroke="black" points="834,-97.5 953,-97.5 "/> <text text-anchor="middle" x="913.5" y="-135.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="893.5" y="-82.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="856,-128 971,-128 "/>
<polyline fill="none" stroke="black" points="834,-74.5 953,-74.5 "/> <text text-anchor="middle" x="913.5" y="-112.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="893.5" y="-59.3" font-family="arial" font-size="14.00">RX</text> <polyline fill="none" stroke="black" points="856,-105 971,-105 "/>
<polyline fill="none" stroke="black" points="834,-51.5 953,-51.5 "/> <text text-anchor="middle" x="913.5" y="-89.8" font-family="arial" font-size="14.00">RX</text>
<text text-anchor="middle" x="893.5" y="-36.3" font-family="arial" font-size="14.00">TX</text> <polyline fill="none" stroke="black" points="856,-82 971,-82 "/>
<text text-anchor="middle" x="913.5" y="-66.8" font-family="arial" font-size="14.00">TX</text>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge"><title>W1:w1:e&#45;&#45;X2:p1l:w</title> <g id="edge2" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-108.5C658.877,-108.504 674.874,-107.504 739,-107.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#a52a2a" stroke-width="2" d="M595,-110.5C659.002,-110.5 674.998,-109.5 739,-109.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-139C684.88,-139 700.87,-138 765,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-112.5C659.126,-112.496 675.123,-111.496 739,-111.5"/> <path fill="none" stroke="#666600" stroke-width="2" d="M621,-141C685,-141 701,-140 765,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-143C685.13,-143 701.12,-142 765,-142"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge"><title>W1:w2:e&#45;&#45;X2:p2l:w</title> <g id="edge4" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-83.5C659,-83.5 675,-83.5 739,-83.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M595,-85.5C659,-85.5 675,-85.5 739,-85.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-114C685,-114 701,-114 765,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-87.5C659,-87.5 675,-87.5 739,-87.5"/> <path fill="none" stroke="#ff0000" stroke-width="2" d="M621,-116C685,-116 701,-116 765,-116"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-118C685,-118 701,-118 765,-118"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge"><title>W1:w3:e&#45;&#45;X2:p4l:w</title> <g id="edge6" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-58.5C658.037,-59.3559 672.683,-38.3559 739,-37.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M595,-60.5C659.677,-60.5 674.323,-39.5 739,-39.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-89C684.04,-89.86 698.68,-68.86 765,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-62.5C661.317,-61.6441 675.963,-40.6441 739,-41.5"/> <path fill="none" stroke="#ff8000" stroke-width="2" d="M621,-91C685.68,-91 700.32,-70 765,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-93C687.32,-92.14 701.96,-71.14 765,-72"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge"><title>W1:w4:e&#45;&#45;X2:p3l:w</title> <g id="edge8" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-33.5C661.897,-34.5914 675.666,-61.5914 739,-60.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M595,-35.5C660.115,-35.5 673.885,-62.5 739,-62.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-64C687.9,-65.09 701.67,-92.09 765,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-37.5C658.334,-36.4086 672.103,-63.4086 739,-64.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M621,-66C686.12,-66 699.88,-93 765,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-68C684.33,-66.91 698.1,-93.91 765,-95"/>
</g> </g>
</g> </g>
</svg> </svg>
<h1>Bill of Materials</h1><table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px"><tr><th align="left" style="border:1px solid #000000; padding: 8px">Item</th><th align="left" style="border:1px solid #000000; padding: 8px">Qty</th><th align="left" style="border:1px solid #000000; padding: 8px">Unit</th><th align="left" style="border:1px solid #000000; padding: 8px">Designators</th></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">2</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X1, X2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Cable, 4 x 0.25 mm² shielded</td><td align="right" style="border:1px solid #000000; padding: 4px">0.2</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1</td></tr></table></body></html> <h1>Bill of Materials</h1><table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px"><tr><th align="left" style="border:1px solid #000000; padding: 8px">Item</th><th align="left" style="border:1px solid #000000; padding: 8px">Qty</th><th align="left" style="border:1px solid #000000; padding: 8px">Unit</th><th align="left" style="border:1px solid #000000; padding: 8px">Designators</th></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">2</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X1, X2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Cable, Serial, 4 x 0.25 mm² shielded</td><td align="right" style="border:1px solid #000000; padding: 4px">0.2</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1</td></tr></table></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -1,168 +1,176 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041) <!-- Generated by graphviz version 2.44.0 (20200408.0750)
--> -->
<!-- Title: %3 Pages: 1 --> <!-- Pages: 1 -->
<svg width="961pt" height="187pt" <svg width="979pt" height="232pt"
viewBox="0.00 0.00 961.00 187.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 979.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 183)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<title>%3</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-228 975,-228 975,4 -4,4"/>
<polygon fill="#fffbf8" stroke="none" points="-4,4 -4,-183 957,-183 957,4 -4,4"/>
<!-- X1 --> <!-- X1 -->
<g id="node1" class="node"><title>X1</title> <g id="node1" class="node">
<polygon fill="white" stroke="black" points="0,-26.5 0,-164.5 214,-164.5 214,-26.5 0,-26.5"/> <title>X1</title>
<text text-anchor="middle" x="107" y="-149.3" font-family="arial" font-size="14.00">X1</text> <polygon fill="white" stroke="black" points="0,-57 0,-195 206,-195 206,-57 0,-57"/>
<polyline fill="none" stroke="black" points="0,-141.5 214,-141.5 "/> <text text-anchor="middle" x="103" y="-179.8" font-family="arial" font-size="14.00">X1</text>
<text text-anchor="middle" x="53" y="-126.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="0,-172 206,-172 "/>
<polyline fill="none" stroke="black" points="106,-118.5 106,-141.5 "/> <text text-anchor="middle" x="50.5" y="-156.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="136" y="-126.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="101,-149 101,-172 "/>
<polyline fill="none" stroke="black" points="166,-118.5 166,-141.5 "/> <text text-anchor="middle" x="130" y="-156.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="190" y="-126.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="159,-149 159,-172 "/>
<polyline fill="none" stroke="black" points="0,-118.5 214,-118.5 "/> <text text-anchor="middle" x="182.5" y="-156.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="59" y="-103.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="0,-149 206,-149 "/>
<polyline fill="none" stroke="black" points="0,-95.5 118,-95.5 "/> <text text-anchor="middle" x="57" y="-133.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="59" y="-80.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="0,-126 114,-126 "/>
<polyline fill="none" stroke="black" points="0,-72.5 118,-72.5 "/> <text text-anchor="middle" x="57" y="-110.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="59" y="-57.3" font-family="arial" font-size="14.00">RX</text> <polyline fill="none" stroke="black" points="0,-103 114,-103 "/>
<polyline fill="none" stroke="black" points="0,-49.5 118,-49.5 "/> <text text-anchor="middle" x="57" y="-87.8" font-family="arial" font-size="14.00">RX</text>
<text text-anchor="middle" x="59" y="-34.3" font-family="arial" font-size="14.00">TX</text> <polyline fill="none" stroke="black" points="0,-80 114,-80 "/>
<polyline fill="none" stroke="black" points="118,-26.5 118,-118.5 "/> <text text-anchor="middle" x="57" y="-64.8" font-family="arial" font-size="14.00">TX</text>
<text text-anchor="middle" x="166" y="-103.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="114,-57 114,-149 "/>
<polyline fill="none" stroke="black" points="118,-95.5 214,-95.5 "/> <text text-anchor="middle" x="160" y="-133.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="166" y="-80.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="114,-126 206,-126 "/>
<polyline fill="none" stroke="black" points="118,-72.5 214,-72.5 "/> <text text-anchor="middle" x="160" y="-110.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="166" y="-57.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="114,-103 206,-103 "/>
<polyline fill="none" stroke="black" points="118,-49.5 214,-49.5 "/> <text text-anchor="middle" x="160" y="-87.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="166" y="-34.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="114,-80 206,-80 "/>
<text text-anchor="middle" x="160" y="-64.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W1 --> <!-- W1 -->
<g id="node3" class="node"><title>W1</title> <g id="node3" class="node">
<polygon fill="none" stroke="black" points="595,-179 358,-179 358,-0 595,-0 595,-179"/> <title>W1</title>
<polygon fill="none" stroke="black" points="358.5,-155.5 358.5,-178.5 595.5,-178.5 595.5,-155.5 358.5,-155.5"/> <polygon fill="none" stroke="black" points="621,-224 350,-224 350,0 621,0 621,-224"/>
<text text-anchor="start" x="465.5" y="-163.3" font-family="arial" font-size="14.00">W1</text> <polygon fill="none" stroke="black" points="350.5,-201 350.5,-224 621.5,-224 621.5,-201 350.5,-201"/>
<polygon fill="none" stroke="black" points="358.5,-132.5 358.5,-155.5 382.5,-155.5 382.5,-132.5 358.5,-132.5"/> <text text-anchor="start" x="475" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<text text-anchor="start" x="362.5" y="-140.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="350.5,-178 350.5,-201 393.5,-201 393.5,-178 350.5,-178"/>
<polygon fill="none" stroke="black" points="382.5,-132.5 382.5,-155.5 520.5,-155.5 520.5,-132.5 382.5,-132.5"/> <text text-anchor="start" x="354.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<text text-anchor="start" x="386.5" y="-140.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text> <polygon fill="none" stroke="black" points="393.5,-178 393.5,-201 416.5,-201 416.5,-178 393.5,-178"/>
<polygon fill="none" stroke="black" points="520.5,-132.5 520.5,-155.5 550.5,-155.5 550.5,-132.5 520.5,-132.5"/> <text text-anchor="start" x="397.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="524.5" y="-140.3" font-family="arial" font-size="14.00">+ S</text> <polygon fill="none" stroke="black" points="416.5,-178 416.5,-201 548.5,-201 548.5,-178 416.5,-178"/>
<polygon fill="none" stroke="black" points="550.5,-132.5 550.5,-155.5 595.5,-155.5 595.5,-132.5 550.5,-132.5"/> <text text-anchor="start" x="420.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<text text-anchor="start" x="554.5" y="-140.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="548.5,-178 548.5,-201 578.5,-201 578.5,-178 548.5,-178"/>
<text text-anchor="start" x="381" y="-119.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="552.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<text text-anchor="start" x="467" y="-119.3" font-family="arial" font-size="14.00">BN</text> <polygon fill="none" stroke="black" points="578.5,-178 578.5,-201 621.5,-201 621.5,-178 578.5,-178"/>
<text text-anchor="start" x="542" y="-119.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="582.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="358.5,-111.5 358.5,-113.5 595.5,-113.5 595.5,-111.5 358.5,-111.5"/> <text text-anchor="start" x="484" y="-166.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#a52a2a" stroke="none" points="358.5,-109.5 358.5,-111.5 595.5,-111.5 595.5,-109.5 358.5,-109.5"/> <text text-anchor="start" x="380" y="-149.8" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="358.5,-107.5 358.5,-109.5 595.5,-109.5 595.5,-107.5 358.5,-107.5"/> <text text-anchor="start" x="476.5" y="-149.8" font-family="arial" font-size="14.00">BN</text>
<text text-anchor="start" x="381" y="-94.3" font-family="arial" font-size="14.00">X1:2</text> <text text-anchor="start" x="564" y="-149.8" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="466" y="-94.3" font-family="arial" font-size="14.00">RD</text> <polygon fill="#666600" stroke="transparent" points="350.5,-138 350.5,-144 621.5,-144 621.5,-138 350.5,-138"/>
<text text-anchor="start" x="542" y="-94.3" font-family="arial" font-size="14.00">X2:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-139 620.5,-139 "/>
<polygon fill="#000000" stroke="none" points="358.5,-86.5 358.5,-88.5 595.5,-88.5 595.5,-86.5 358.5,-86.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-143 351.5,-143 "/>
<polygon fill="#ff0000" stroke="none" points="358.5,-84.5 358.5,-86.5 595.5,-86.5 595.5,-84.5 358.5,-84.5"/> <text text-anchor="start" x="380" y="-124.8" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="358.5,-82.5 358.5,-84.5 595.5,-84.5 595.5,-82.5 358.5,-82.5"/> <text text-anchor="start" x="476" y="-124.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="381" y="-69.3" font-family="arial" font-size="14.00">X1:3</text> <text text-anchor="start" x="564" y="-124.8" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="465.5" y="-69.3" font-family="arial" font-size="14.00">OG</text> <polygon fill="#ff0000" stroke="transparent" stroke-width="2" points="350.5,-113 350.5,-119 621.5,-119 621.5,-113 350.5,-113"/>
<text text-anchor="start" x="542" y="-69.3" font-family="arial" font-size="14.00">X2:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-114 620.5,-114 "/>
<polygon fill="#000000" stroke="none" points="358.5,-61.5 358.5,-63.5 595.5,-63.5 595.5,-61.5 358.5,-61.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-118 351.5,-118 "/>
<polygon fill="#ff8000" stroke="none" points="358.5,-59.5 358.5,-61.5 595.5,-61.5 595.5,-59.5 358.5,-59.5"/> <text text-anchor="start" x="380" y="-99.8" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="358.5,-57.5 358.5,-59.5 595.5,-59.5 595.5,-57.5 358.5,-57.5"/> <text text-anchor="start" x="474.5" y="-99.8" font-family="arial" font-size="14.00">OG</text>
<text text-anchor="start" x="381" y="-44.3" font-family="arial" font-size="14.00">X1:4</text> <text text-anchor="start" x="564" y="-99.8" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="467.5" y="-44.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#ff8000" stroke="transparent" stroke-width="2" points="350.5,-88 350.5,-94 621.5,-94 621.5,-88 350.5,-88"/>
<text text-anchor="start" x="542" y="-44.3" font-family="arial" font-size="14.00">X2:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-89 620.5,-89 "/>
<polygon fill="#000000" stroke="none" points="358.5,-36.5 358.5,-38.5 595.5,-38.5 595.5,-36.5 358.5,-36.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-93 351.5,-93 "/>
<polygon fill="#ffff00" stroke="none" points="358.5,-34.5 358.5,-36.5 595.5,-36.5 595.5,-34.5 358.5,-34.5"/> <text text-anchor="start" x="380" y="-74.8" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="358.5,-32.5 358.5,-34.5 595.5,-34.5 595.5,-32.5 358.5,-32.5"/> <text text-anchor="start" x="476.5" y="-74.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="381" y="-15.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="564" y="-74.8" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="457" y="-15.3" font-family="arial" font-size="14.00">Shield</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350.5,-63 350.5,-69 621.5,-69 621.5,-63 350.5,-63"/>
<defs> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-64 620.5,-64 "/>
<linearGradient id="l_0" gradientUnits="userSpaceOnUse" x1="358.5" y1="-6.5" x2="595.5" y2="-6.5" > <polyline fill="none" stroke="black" stroke-width="2" points="620.5,-68 351.5,-68 "/>
<stop offset="0" style="stop-color:#aaaaaa;stop-opacity:1.;"/> <text text-anchor="start" x="392" y="-49.8" font-family="arial" font-size="14.00"> </text>
<stop offset="1" style="stop-color:#84878c;stop-opacity:1.;"/> <text text-anchor="start" x="380" y="-30.8" font-family="arial" font-size="14.00">X1:1</text>
</linearGradient> <text text-anchor="start" x="467" y="-30.8" font-family="arial" font-size="14.00">Shield</text>
</defs> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-20 620.5,-20 "/>
<polygon fill="url(#l_0)" stroke="none" points="358.5,-3.5 358.5,-9.5 595.5,-9.5 595.5,-3.5 358.5,-3.5"/> <text text-anchor="start" x="392" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polyline fill="none" stroke="black" stroke-width="2" points="359.5,-4.5 594.5,-4.5 "/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge"><title>X1:p1r:e&#45;&#45;W1:w1:w</title> <g id="edge1" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-105.5C278.383,-105.534 294.355,-108.534 358,-108.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#a52a2a" stroke-width="2" d="M214,-107.5C278.014,-107.5 293.986,-110.5 358,-110.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-136C270.38,-136.03 286.36,-139.03 350,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-109.5C277.645,-109.466 293.617,-112.466 358,-112.5"/> <path fill="none" stroke="#666600" stroke-width="2" d="M206,-138C270.01,-138 285.99,-141 350,-141"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-140C269.64,-139.97 285.62,-142.97 350,-143"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge"><title>X1:p2r:e&#45;&#45;W1:w2:w</title> <g id="edge3" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-81.5C278.254,-81.5155 294.242,-83.5155 358,-83.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M214,-83.5C278.006,-83.5 293.994,-85.5 358,-85.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-112C270.25,-112.02 286.24,-114.02 350,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-85.5C277.758,-85.4845 293.746,-87.4845 358,-87.5"/> <path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-114C270.01,-114 285.99,-116 350,-116"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-116C269.76,-115.98 285.75,-117.98 350,-118"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge"><title>X1:p3r:e&#45;&#45;W1:w3:w</title> <g id="edge5" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-58.5C278,-58.5 294,-58.5 358,-58.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M214,-60.5C278,-60.5 294,-60.5 358,-60.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-89C270,-89 286,-89 350,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-62.5C278,-62.5 294,-62.5 358,-62.5"/> <path fill="none" stroke="#ff8000" stroke-width="2" d="M206,-91C270,-91 286,-91 350,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-93C270,-93 286,-93 350,-93"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge"><title>X1:p4r:e&#45;&#45;W1:w4:w</title> <g id="edge7" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-35.5C277.758,-35.5155 293.746,-33.5155 358,-33.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M214,-37.5C278.006,-37.5 293.994,-35.5 358,-35.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-66C269.76,-66.02 285.75,-64.02 350,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-39.5C278.254,-39.4845 294.242,-37.4845 358,-37.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-68C270.01,-68 285.99,-66 350,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-70C270.25,-69.98 286.24,-67.98 350,-68"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge"><title>X1:p1r:e&#45;&#45;W1:ws:w</title> <g id="edge9" class="edge">
<path fill="none" stroke="#aaaaaa" stroke-width="2" d="M214,-106.5C291.18,-107.621 278.834,-6.62133 358,-5.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#84878c" stroke-width="2" d="M214,-108.5C293.166,-107.379 280.82,-6.37867 358,-7.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-138C288.18,-138 267.82,-22 350,-22"/>
</g> </g>
<!-- X2 --> <!-- X2 -->
<g id="node2" class="node"><title>X2</title> <g id="node2" class="node">
<polygon fill="white" stroke="black" points="739,-28.5 739,-166.5 953,-166.5 953,-28.5 739,-28.5"/> <title>X2</title>
<text text-anchor="middle" x="846" y="-151.3" font-family="arial" font-size="14.00">X2</text> <polygon fill="white" stroke="black" points="765,-59 765,-197 971,-197 971,-59 765,-59"/>
<polyline fill="none" stroke="black" points="739,-143.5 953,-143.5 "/> <text text-anchor="middle" x="868" y="-181.8" font-family="arial" font-size="14.00">X2</text>
<text text-anchor="middle" x="792" y="-128.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="765,-174 971,-174 "/>
<polyline fill="none" stroke="black" points="845,-120.5 845,-143.5 "/> <text text-anchor="middle" x="815.5" y="-158.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="875" y="-128.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="866,-151 866,-174 "/>
<polyline fill="none" stroke="black" points="905,-120.5 905,-143.5 "/> <text text-anchor="middle" x="895" y="-158.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="929" y="-128.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="924,-151 924,-174 "/>
<polyline fill="none" stroke="black" points="739,-120.5 953,-120.5 "/> <text text-anchor="middle" x="947.5" y="-158.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="786.5" y="-105.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="765,-151 971,-151 "/>
<polyline fill="none" stroke="black" points="739,-97.5 834,-97.5 "/> <text text-anchor="middle" x="810.5" y="-135.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="786.5" y="-82.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="765,-128 856,-128 "/>
<polyline fill="none" stroke="black" points="739,-74.5 834,-74.5 "/> <text text-anchor="middle" x="810.5" y="-112.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="786.5" y="-59.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="765,-105 856,-105 "/>
<polyline fill="none" stroke="black" points="739,-51.5 834,-51.5 "/> <text text-anchor="middle" x="810.5" y="-89.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="786.5" y="-36.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="765,-82 856,-82 "/>
<polyline fill="none" stroke="black" points="834,-28.5 834,-120.5 "/> <text text-anchor="middle" x="810.5" y="-66.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="893.5" y="-105.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="856,-59 856,-151 "/>
<polyline fill="none" stroke="black" points="834,-97.5 953,-97.5 "/> <text text-anchor="middle" x="913.5" y="-135.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="893.5" y="-82.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="856,-128 971,-128 "/>
<polyline fill="none" stroke="black" points="834,-74.5 953,-74.5 "/> <text text-anchor="middle" x="913.5" y="-112.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="893.5" y="-59.3" font-family="arial" font-size="14.00">RX</text> <polyline fill="none" stroke="black" points="856,-105 971,-105 "/>
<polyline fill="none" stroke="black" points="834,-51.5 953,-51.5 "/> <text text-anchor="middle" x="913.5" y="-89.8" font-family="arial" font-size="14.00">RX</text>
<text text-anchor="middle" x="893.5" y="-36.3" font-family="arial" font-size="14.00">TX</text> <polyline fill="none" stroke="black" points="856,-82 971,-82 "/>
<text text-anchor="middle" x="913.5" y="-66.8" font-family="arial" font-size="14.00">TX</text>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge"><title>W1:w1:e&#45;&#45;X2:p1l:w</title> <g id="edge2" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-108.5C658.877,-108.504 674.874,-107.504 739,-107.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#a52a2a" stroke-width="2" d="M595,-110.5C659.002,-110.5 674.998,-109.5 739,-109.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-139C684.88,-139 700.87,-138 765,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-112.5C659.126,-112.496 675.123,-111.496 739,-111.5"/> <path fill="none" stroke="#666600" stroke-width="2" d="M621,-141C685,-141 701,-140 765,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-143C685.13,-143 701.12,-142 765,-142"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge"><title>W1:w2:e&#45;&#45;X2:p2l:w</title> <g id="edge4" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-83.5C659,-83.5 675,-83.5 739,-83.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M595,-85.5C659,-85.5 675,-85.5 739,-85.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-114C685,-114 701,-114 765,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-87.5C659,-87.5 675,-87.5 739,-87.5"/> <path fill="none" stroke="#ff0000" stroke-width="2" d="M621,-116C685,-116 701,-116 765,-116"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-118C685,-118 701,-118 765,-118"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge"><title>W1:w3:e&#45;&#45;X2:p4l:w</title> <g id="edge6" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-58.5C658.037,-59.3559 672.683,-38.3559 739,-37.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M595,-60.5C659.677,-60.5 674.323,-39.5 739,-39.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-89C684.04,-89.86 698.68,-68.86 765,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-62.5C661.317,-61.6441 675.963,-40.6441 739,-41.5"/> <path fill="none" stroke="#ff8000" stroke-width="2" d="M621,-91C685.68,-91 700.32,-70 765,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-93C687.32,-92.14 701.96,-71.14 765,-72"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge"><title>W1:w4:e&#45;&#45;X2:p3l:w</title> <g id="edge8" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-33.5C661.897,-34.5914 675.666,-61.5914 739,-60.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M595,-35.5C660.115,-35.5 673.885,-62.5 739,-62.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M621,-64C687.9,-65.09 701.67,-92.09 765,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M595,-37.5C658.334,-36.4086 672.103,-63.4086 739,-64.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M621,-66C686.12,-66 699.88,-93 765,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M621,-68C684.33,-66.91 698.1,-93.91 765,-95"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -16,6 +16,7 @@ cables:
show_equiv: true # auto-calculate AWG equivalent from metric gauge show_equiv: true # auto-calculate AWG equivalent from metric gauge
length: 0.2 # length in m length: 0.2 # length in m
shield: true shield: true
type: Serial
connections: connections:
- -

View File

@ -1,13 +1,3 @@
# connectors:
# X1:
# type: D-Sub
# subtype: female
# pincount: 4
# X2:
# type: Molex KK 254
# subtype: female
# pincount: 3
cables: cables:
W1: W1:
gauge: 0.25 mm2 gauge: 0.25 mm2
@ -17,8 +7,10 @@ cables:
wirecount: 6 wirecount: 6
category: bundle category: bundle
ferrules: connectors:
ferrule_crimp: ferrule_crimp:
category: ferrule
autogenerate: true
type: Crimp ferrule type: Crimp ferrule
show_name: false show_name: false
show_pincount: false show_pincount: false

View File

@ -1,7 +1,7 @@
graph { graph {
// Graph generated by WireViz // Graph generated by WireViz
// https://github.com/formatc1702/WireViz // https://github.com/formatc1702/WireViz
graph [bgcolor="#fffbf8" fontname=arial nodesep=0.33 rankdir=LR ranksep=2] graph [bgcolor=white fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor=white fontname=arial shape=record style=filled] node [fillcolor=white fontname=arial shape=record style=filled]
edge [fontname=arial style=bold] edge [fontname=arial style=bold]
X1 [label="X1|{Molex KK 254|female|4-pin}|{{GND|VCC|SCL|SDA}|{<p1r>1|<p2r>2|<p3r>3|<p4r>4}}"] X1 [label="X1|{Molex KK 254|female|4-pin}|{{GND|VCC|SCL|SDA}|{<p1r>1|<p2r>2|<p3r>3|<p4r>4}}"]
@ -19,7 +19,7 @@ graph {
edge [color="#000000:#8000ff:#000000"] edge [color="#000000:#8000ff:#000000"]
X1:p4r:e -- W1:w4:w X1:p4r:e -- W1:w4:w
W1:w4:e -- X2:p4l:w W1:w4:e -- X2:p4l:w
W1 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="3">W1</td></tr><tr><td>4x</td><td>0.25 mm²</td><td>0.2 m</td></tr></table></td></tr><tr><td></td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>PK</td><td>X2:1</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff66cc" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:2</td><td>TQ</td><td>X2:2</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ffff" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:3</td><td>YE</td><td>X2:3</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X1:4</td><td>VT</td><td>X2:4</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#8000ff" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td></td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style="filled,dashed"] W1 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="4">W1</td></tr><tr><td>I2C</td><td>4x</td><td>0.25 mm²</td><td>0.2 m</td></tr></table></td></tr><tr><td>&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>PK</td><td>X2:1</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff66cc" border="2" sides="tb" port="w1"></td></tr><tr><td>X1:2</td><td>TQ</td><td>X2:2</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#00ffff" border="2" sides="tb" port="w2"></td></tr><tr><td>X1:3</td><td>YE</td><td>X2:3</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ffff00" border="2" sides="tb" port="w3"></td></tr><tr><td>X1:4</td><td>VT</td><td>X2:4</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#8000ff" border="2" sides="tb" port="w4"></td></tr><tr><td>&nbsp;</td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style="filled,dashed"]
edge [color="#000000:#ff66cc:#000000"] edge [color="#000000:#ff66cc:#000000"]
X2:p1r:e -- W2:w1:w X2:p1r:e -- W2:w1:w
W2:w1:e -- X3:p1l:w W2:w1:e -- X3:p1l:w
@ -32,5 +32,5 @@ graph {
edge [color="#000000:#8000ff:#000000"] edge [color="#000000:#8000ff:#000000"]
X2:p4r:e -- W2:w4:w X2:p4r:e -- W2:w4:w
W2:w4:e -- X3:p4l:w W2:w4:e -- X3:p4l:w
W2 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="3">W2</td></tr><tr><td>4x</td><td>0.25 mm²</td><td>0.2 m</td></tr></table></td></tr><tr><td></td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X2:1</td><td>PK</td><td>X3:1</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff66cc" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X2:2</td><td>TQ</td><td>X3:2</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ffff" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X2:3</td><td>YE</td><td>X3:3</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td>X2:4</td><td>VT</td><td>X3:4</td></tr><tr><td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6"><table cellspacing="0" cellborder="0" border = "0"><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#8000ff" border="0"></td></tr><tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr></table></td></tr><tr><td></td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style="filled,dashed"] W2 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="4">W2</td></tr><tr><td>I2C</td><td>4x</td><td>0.25 mm²</td><td>0.2 m</td></tr></table></td></tr><tr><td>&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X2:1</td><td>PK</td><td>X3:1</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff66cc" border="2" sides="tb" port="w1"></td></tr><tr><td>X2:2</td><td>TQ</td><td>X3:2</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#00ffff" border="2" sides="tb" port="w2"></td></tr><tr><td>X2:3</td><td>YE</td><td>X3:3</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ffff00" border="2" sides="tb" port="w3"></td></tr><tr><td>X2:4</td><td>VT</td><td>X3:4</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#8000ff" border="2" sides="tb" port="w4"></td></tr><tr><td>&nbsp;</td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style="filled,dashed"]
} }

View File

@ -1,271 +1,299 @@
<html><body style="font-family:Arial"><h1>Diagram</h1><?xml version="1.0" encoding="UTF-8" standalone="no"?> <html><body style="font-family:Arial"><h1>Diagram</h1><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041) <!-- Generated by graphviz version 2.44.0 (20200408.0750)
--> -->
<!-- Title: %3 Pages: 1 --> <!-- Pages: 1 -->
<svg width="1502pt" height="160pt" <svg width="1528pt" height="188pt"
viewBox="0.00 0.00 1502.00 159.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 1528.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 155.5)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>%3</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-184 1524,-184 1524,4 -4,4"/>
<polygon fill="#fffbf8" stroke="none" points="-4,4 -4,-155.5 1498,-155.5 1498,4 -4,4"/>
<!-- X1 --> <!-- X1 -->
<g id="node1" class="node"><title>X1</title> <g id="node1" class="node">
<polygon fill="white" stroke="black" points="0,-0.5 0,-138.5 214,-138.5 214,-0.5 0,-0.5"/> <title>X1</title>
<text text-anchor="middle" x="107" y="-123.3" font-family="arial" font-size="14.00">X1</text> <polygon fill="white" stroke="black" points="0,-14 0,-152 206,-152 206,-14 0,-14"/>
<polyline fill="none" stroke="black" points="0,-115.5 214,-115.5 "/> <text text-anchor="middle" x="103" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<text text-anchor="middle" x="53" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="0,-129 206,-129 "/>
<polyline fill="none" stroke="black" points="106,-92.5 106,-115.5 "/> <text text-anchor="middle" x="50.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="136" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="101,-106 101,-129 "/>
<polyline fill="none" stroke="black" points="166,-92.5 166,-115.5 "/> <text text-anchor="middle" x="130" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="190" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="159,-106 159,-129 "/>
<polyline fill="none" stroke="black" points="0,-92.5 214,-92.5 "/> <text text-anchor="middle" x="182.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="59" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="0,-106 206,-106 "/>
<polyline fill="none" stroke="black" points="0,-69.5 118,-69.5 "/> <text text-anchor="middle" x="57" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="59" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="0,-83 114,-83 "/>
<polyline fill="none" stroke="black" points="0,-46.5 118,-46.5 "/> <text text-anchor="middle" x="57" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="59" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="0,-60 114,-60 "/>
<polyline fill="none" stroke="black" points="0,-23.5 118,-23.5 "/> <text text-anchor="middle" x="57" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="59" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="0,-37 114,-37 "/>
<polyline fill="none" stroke="black" points="118,-0.5 118,-92.5 "/> <text text-anchor="middle" x="57" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<text text-anchor="middle" x="166" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="114,-14 114,-106 "/>
<polyline fill="none" stroke="black" points="118,-69.5 214,-69.5 "/> <text text-anchor="middle" x="160" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="166" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="114,-83 206,-83 "/>
<polyline fill="none" stroke="black" points="118,-46.5 214,-46.5 "/> <text text-anchor="middle" x="160" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="166" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="114,-60 206,-60 "/>
<polyline fill="none" stroke="black" points="118,-23.5 214,-23.5 "/> <text text-anchor="middle" x="160" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="166" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="114,-37 206,-37 "/>
<text text-anchor="middle" x="160" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W1 --> <!-- W1 -->
<g id="node4" class="node"><title>W1</title> <g id="node4" class="node">
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="496,-151.5 358,-151.5 358,-1.5 496,-1.5 496,-151.5"/> <title>W1</title>
<polygon fill="none" stroke="black" points="358,-128.5 358,-151.5 496,-151.5 496,-128.5 358,-128.5"/> <polygon fill="white" stroke="black" stroke-dasharray="5,2" points="513,-180 350,-180 350,0 513,0 513,-180"/>
<text text-anchor="start" x="415.5" y="-136.3" font-family="arial" font-size="14.00">W1</text> <polygon fill="none" stroke="black" points="350.5,-157 350.5,-180 513.5,-180 513.5,-157 350.5,-157"/>
<polygon fill="none" stroke="black" points="358,-105.5 358,-128.5 382,-128.5 382,-105.5 358,-105.5"/> <text text-anchor="start" x="421" y="-164.8" font-family="arial" font-size="14.00">W1</text>
<text text-anchor="start" x="362" y="-113.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="350.5,-134 350.5,-157 380.5,-157 380.5,-134 350.5,-134"/>
<polygon fill="none" stroke="black" points="382,-105.5 382,-128.5 451,-128.5 451,-105.5 382,-105.5"/> <text text-anchor="start" x="354.5" y="-141.8" font-family="arial" font-size="14.00">I2C</text>
<text text-anchor="start" x="386" y="-113.3" font-family="arial" font-size="14.00">0.25 mm²</text> <polygon fill="none" stroke="black" points="380.5,-134 380.5,-157 403.5,-157 403.5,-134 380.5,-134"/>
<polygon fill="none" stroke="black" points="451,-105.5 451,-128.5 496,-128.5 496,-105.5 451,-105.5"/> <text text-anchor="start" x="384.5" y="-141.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="455" y="-113.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="403.5,-134 403.5,-157 470.5,-157 470.5,-134 403.5,-134"/>
<text text-anchor="start" x="367.5" y="-92.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="407.5" y="-141.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<text text-anchor="start" x="417.5" y="-92.3" font-family="arial" font-size="14.00">PK</text> <polygon fill="none" stroke="black" points="470.5,-134 470.5,-157 513.5,-157 513.5,-134 470.5,-134"/>
<text text-anchor="start" x="456" y="-92.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="474.5" y="-141.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="358,-84.5 358,-86.5 496,-86.5 496,-84.5 358,-84.5"/> <text text-anchor="start" x="430" y="-122.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ff66cc" stroke="none" points="358,-82.5 358,-84.5 496,-84.5 496,-82.5 358,-82.5"/> <text text-anchor="start" x="365" y="-105.8" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="358,-80.5 358,-82.5 496,-82.5 496,-80.5 358,-80.5"/> <text text-anchor="start" x="422.5" y="-105.8" font-family="arial" font-size="14.00">PK</text>
<text text-anchor="start" x="367.5" y="-67.3" font-family="arial" font-size="14.00">X1:2</text> <text text-anchor="start" x="471" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="417" y="-67.3" font-family="arial" font-size="14.00">TQ</text> <polygon fill="#ff66cc" stroke="transparent" points="350.5,-94 350.5,-100 513.5,-100 513.5,-94 350.5,-94"/>
<text text-anchor="start" x="456" y="-67.3" font-family="arial" font-size="14.00">X2:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-95 512.5,-95 "/>
<polygon fill="#000000" stroke="none" points="358,-59.5 358,-61.5 496,-61.5 496,-59.5 358,-59.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-99 351.5,-99 "/>
<polygon fill="#00ffff" stroke="none" points="358,-57.5 358,-59.5 496,-59.5 496,-57.5 358,-57.5"/> <text text-anchor="start" x="365" y="-80.8" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="358,-55.5 358,-57.5 496,-57.5 496,-55.5 358,-55.5"/> <text text-anchor="start" x="422" y="-80.8" font-family="arial" font-size="14.00">TQ</text>
<text text-anchor="start" x="367.5" y="-42.3" font-family="arial" font-size="14.00">X1:3</text> <text text-anchor="start" x="471" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="418" y="-42.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#00ffff" stroke="transparent" stroke-width="2" points="350.5,-69 350.5,-75 513.5,-75 513.5,-69 350.5,-69"/>
<text text-anchor="start" x="456" y="-42.3" font-family="arial" font-size="14.00">X2:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-70 512.5,-70 "/>
<polygon fill="#000000" stroke="none" points="358,-34.5 358,-36.5 496,-36.5 496,-34.5 358,-34.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-74 351.5,-74 "/>
<polygon fill="#ffff00" stroke="none" points="358,-32.5 358,-34.5 496,-34.5 496,-32.5 358,-32.5"/> <text text-anchor="start" x="365" y="-55.8" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="358,-30.5 358,-32.5 496,-32.5 496,-30.5 358,-30.5"/> <text text-anchor="start" x="422.5" y="-55.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="367.5" y="-17.3" font-family="arial" font-size="14.00">X1:4</text> <text text-anchor="start" x="471" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="418" y="-17.3" font-family="arial" font-size="14.00">VT</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350.5,-44 350.5,-50 513.5,-50 513.5,-44 350.5,-44"/>
<text text-anchor="start" x="456" y="-17.3" font-family="arial" font-size="14.00">X2:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-45 512.5,-45 "/>
<polygon fill="#000000" stroke="none" points="358,-9.5 358,-11.5 496,-11.5 496,-9.5 358,-9.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-49 351.5,-49 "/>
<polygon fill="#8000ff" stroke="none" points="358,-7.5 358,-9.5 496,-9.5 496,-7.5 358,-7.5"/> <text text-anchor="start" x="365" y="-30.8" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="358,-5.5 358,-7.5 496,-7.5 496,-5.5 358,-5.5"/> <text text-anchor="start" x="423" y="-30.8" font-family="arial" font-size="14.00">VT</text>
<text text-anchor="start" x="471" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#8000ff" stroke="transparent" stroke-width="2" points="350.5,-19 350.5,-25 513.5,-25 513.5,-19 350.5,-19"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351.5,-20 512.5,-20 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="512.5,-24 351.5,-24 "/>
<text text-anchor="start" x="377" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge"><title>X1:p1r:e&#45;&#45;W1:w1:w</title> <g id="edge1" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-79.5C278.254,-79.5155 294.242,-81.5155 358,-81.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M214,-81.5C278.006,-81.5 293.994,-83.5 358,-83.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-93C270.25,-93.02 286.24,-95.02 350,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-83.5C277.758,-83.4845 293.746,-85.4845 358,-85.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M206,-95C270.01,-95 285.99,-97 350,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-97C269.76,-96.98 285.75,-98.98 350,-99"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge"><title>X1:p2r:e&#45;&#45;W1:w2:w</title> <g id="edge3" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-55.5C278.126,-55.5039 294.123,-56.5039 358,-56.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M214,-57.5C278.002,-57.5 293.998,-58.5 358,-58.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-69C270.13,-69 286.12,-70 350,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-59.5C277.877,-59.4961 293.874,-60.4961 358,-60.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M206,-71C270,-71 286,-72 350,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-73C269.88,-73 285.87,-74 350,-74"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge"><title>X1:p3r:e&#45;&#45;W1:w3:w</title> <g id="edge5" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-32.5C277.877,-32.5039 293.874,-31.5039 358,-31.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M214,-34.5C278.002,-34.5 293.998,-33.5 358,-33.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-46C269.88,-46 285.87,-45 350,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-36.5C278.126,-36.4961 294.123,-35.4961 358,-35.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-48C270,-48 286,-47 350,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-50C270.13,-50 286.12,-49 350,-49"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge"><title>X1:p4r:e&#45;&#45;W1:w4:w</title> <g id="edge7" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-9.5C277.645,-9.53437 293.617,-6.53437 358,-6.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M214,-11.5C278.014,-11.5 293.986,-8.5 358,-8.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-23C269.64,-23.03 285.62,-20.03 350,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-13.5C278.383,-13.4656 294.355,-10.4656 358,-10.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M206,-25C270.01,-25 285.99,-22 350,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-27C270.38,-26.97 286.36,-23.97 350,-24"/>
</g> </g>
<!-- X2 --> <!-- X2 -->
<g id="node2" class="node"><title>X2</title> <g id="node2" class="node">
<polygon fill="white" stroke="black" points="640,-0.5 640,-138.5 854,-138.5 854,-0.5 640,-0.5"/> <title>X2</title>
<text text-anchor="middle" x="747" y="-123.3" font-family="arial" font-size="14.00">X2</text> <polygon fill="white" stroke="black" points="657,-14 657,-152 863,-152 863,-14 657,-14"/>
<polyline fill="none" stroke="black" points="640,-115.5 854,-115.5 "/> <text text-anchor="middle" x="760" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<text text-anchor="middle" x="693" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="657,-129 863,-129 "/>
<polyline fill="none" stroke="black" points="746,-92.5 746,-115.5 "/> <text text-anchor="middle" x="707.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="776" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="758,-106 758,-129 "/>
<polyline fill="none" stroke="black" points="806,-92.5 806,-115.5 "/> <text text-anchor="middle" x="787" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="830" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="816,-106 816,-129 "/>
<polyline fill="none" stroke="black" points="640,-92.5 854,-92.5 "/> <text text-anchor="middle" x="839.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="671.5" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="657,-106 863,-106 "/>
<polyline fill="none" stroke="black" points="640,-69.5 703,-69.5 "/> <text text-anchor="middle" x="687.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="671.5" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="657,-83 718,-83 "/>
<polyline fill="none" stroke="black" points="640,-46.5 703,-46.5 "/> <text text-anchor="middle" x="687.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="671.5" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="657,-60 718,-60 "/>
<polyline fill="none" stroke="black" points="640,-23.5 703,-23.5 "/> <text text-anchor="middle" x="687.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="671.5" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="657,-37 718,-37 "/>
<polyline fill="none" stroke="black" points="703,-0.5 703,-92.5 "/> <text text-anchor="middle" x="687.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="746.5" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="718,-14 718,-106 "/>
<polyline fill="none" stroke="black" points="703,-69.5 790,-69.5 "/> <text text-anchor="middle" x="760" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="746.5" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="718,-83 802,-83 "/>
<polyline fill="none" stroke="black" points="703,-46.5 790,-46.5 "/> <text text-anchor="middle" x="760" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="746.5" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="718,-60 802,-60 "/>
<polyline fill="none" stroke="black" points="703,-23.5 790,-23.5 "/> <text text-anchor="middle" x="760" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="746.5" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="718,-37 802,-37 "/>
<polyline fill="none" stroke="black" points="790,-0.5 790,-92.5 "/> <text text-anchor="middle" x="760" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<text text-anchor="middle" x="822" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="802,-14 802,-106 "/>
<polyline fill="none" stroke="black" points="790,-69.5 854,-69.5 "/> <text text-anchor="middle" x="832.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="822" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="802,-83 863,-83 "/>
<polyline fill="none" stroke="black" points="790,-46.5 854,-46.5 "/> <text text-anchor="middle" x="832.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="822" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="802,-60 863,-60 "/>
<polyline fill="none" stroke="black" points="790,-23.5 854,-23.5 "/> <text text-anchor="middle" x="832.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="822" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="802,-37 863,-37 "/>
<text text-anchor="middle" x="832.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W2 --> <!-- W2 -->
<g id="node5" class="node"><title>W2</title> <g id="node5" class="node">
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="1136,-151.5 998,-151.5 998,-1.5 1136,-1.5 1136,-151.5"/> <title>W2</title>
<polygon fill="none" stroke="black" points="998,-128.5 998,-151.5 1136,-151.5 1136,-128.5 998,-128.5"/> <polygon fill="white" stroke="black" stroke-dasharray="5,2" points="1170,-180 1007,-180 1007,0 1170,0 1170,-180"/>
<text text-anchor="start" x="1055.5" y="-136.3" font-family="arial" font-size="14.00">W2</text> <polygon fill="none" stroke="black" points="1007.5,-157 1007.5,-180 1170.5,-180 1170.5,-157 1007.5,-157"/>
<polygon fill="none" stroke="black" points="998,-105.5 998,-128.5 1022,-128.5 1022,-105.5 998,-105.5"/> <text text-anchor="start" x="1078" y="-164.8" font-family="arial" font-size="14.00">W2</text>
<text text-anchor="start" x="1002" y="-113.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="1007.5,-134 1007.5,-157 1037.5,-157 1037.5,-134 1007.5,-134"/>
<polygon fill="none" stroke="black" points="1022,-105.5 1022,-128.5 1091,-128.5 1091,-105.5 1022,-105.5"/> <text text-anchor="start" x="1011.5" y="-141.8" font-family="arial" font-size="14.00">I2C</text>
<text text-anchor="start" x="1026" y="-113.3" font-family="arial" font-size="14.00">0.25 mm²</text> <polygon fill="none" stroke="black" points="1037.5,-134 1037.5,-157 1060.5,-157 1060.5,-134 1037.5,-134"/>
<polygon fill="none" stroke="black" points="1091,-105.5 1091,-128.5 1136,-128.5 1136,-105.5 1091,-105.5"/> <text text-anchor="start" x="1041.5" y="-141.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="1095" y="-113.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="1060.5,-134 1060.5,-157 1127.5,-157 1127.5,-134 1060.5,-134"/>
<text text-anchor="start" x="1007.5" y="-92.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="1064.5" y="-141.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<text text-anchor="start" x="1057.5" y="-92.3" font-family="arial" font-size="14.00">PK</text> <polygon fill="none" stroke="black" points="1127.5,-134 1127.5,-157 1170.5,-157 1170.5,-134 1127.5,-134"/>
<text text-anchor="start" x="1096" y="-92.3" font-family="arial" font-size="14.00">X3:1</text> <text text-anchor="start" x="1131.5" y="-141.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="998,-84.5 998,-86.5 1136,-86.5 1136,-84.5 998,-84.5"/> <text text-anchor="start" x="1087" y="-122.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ff66cc" stroke="none" points="998,-82.5 998,-84.5 1136,-84.5 1136,-82.5 998,-82.5"/> <text text-anchor="start" x="1022" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#000000" stroke="none" points="998,-80.5 998,-82.5 1136,-82.5 1136,-80.5 998,-80.5"/> <text text-anchor="start" x="1079.5" y="-105.8" font-family="arial" font-size="14.00">PK</text>
<text text-anchor="start" x="1007.5" y="-67.3" font-family="arial" font-size="14.00">X2:2</text> <text text-anchor="start" x="1128" y="-105.8" font-family="arial" font-size="14.00">X3:1</text>
<text text-anchor="start" x="1057" y="-67.3" font-family="arial" font-size="14.00">TQ</text> <polygon fill="#ff66cc" stroke="transparent" points="1007.5,-94 1007.5,-100 1170.5,-100 1170.5,-94 1007.5,-94"/>
<text text-anchor="start" x="1096" y="-67.3" font-family="arial" font-size="14.00">X3:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-95 1169.5,-95 "/>
<polygon fill="#000000" stroke="none" points="998,-59.5 998,-61.5 1136,-61.5 1136,-59.5 998,-59.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-99 1008.5,-99 "/>
<polygon fill="#00ffff" stroke="none" points="998,-57.5 998,-59.5 1136,-59.5 1136,-57.5 998,-57.5"/> <text text-anchor="start" x="1022" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="998,-55.5 998,-57.5 1136,-57.5 1136,-55.5 998,-55.5"/> <text text-anchor="start" x="1079" y="-80.8" font-family="arial" font-size="14.00">TQ</text>
<text text-anchor="start" x="1007.5" y="-42.3" font-family="arial" font-size="14.00">X2:3</text> <text text-anchor="start" x="1128" y="-80.8" font-family="arial" font-size="14.00">X3:2</text>
<text text-anchor="start" x="1058" y="-42.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#00ffff" stroke="transparent" stroke-width="2" points="1007.5,-69 1007.5,-75 1170.5,-75 1170.5,-69 1007.5,-69"/>
<text text-anchor="start" x="1096" y="-42.3" font-family="arial" font-size="14.00">X3:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-70 1169.5,-70 "/>
<polygon fill="#000000" stroke="none" points="998,-34.5 998,-36.5 1136,-36.5 1136,-34.5 998,-34.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-74 1008.5,-74 "/>
<polygon fill="#ffff00" stroke="none" points="998,-32.5 998,-34.5 1136,-34.5 1136,-32.5 998,-32.5"/> <text text-anchor="start" x="1022" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#000000" stroke="none" points="998,-30.5 998,-32.5 1136,-32.5 1136,-30.5 998,-30.5"/> <text text-anchor="start" x="1079.5" y="-55.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="1007.5" y="-17.3" font-family="arial" font-size="14.00">X2:4</text> <text text-anchor="start" x="1128" y="-55.8" font-family="arial" font-size="14.00">X3:3</text>
<text text-anchor="start" x="1058" y="-17.3" font-family="arial" font-size="14.00">VT</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="1007.5,-44 1007.5,-50 1170.5,-50 1170.5,-44 1007.5,-44"/>
<text text-anchor="start" x="1096" y="-17.3" font-family="arial" font-size="14.00">X3:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-45 1169.5,-45 "/>
<polygon fill="#000000" stroke="none" points="998,-9.5 998,-11.5 1136,-11.5 1136,-9.5 998,-9.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-49 1008.5,-49 "/>
<polygon fill="#8000ff" stroke="none" points="998,-7.5 998,-9.5 1136,-9.5 1136,-7.5 998,-7.5"/> <text text-anchor="start" x="1022" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#000000" stroke="none" points="998,-5.5 998,-7.5 1136,-7.5 1136,-5.5 998,-5.5"/> <text text-anchor="start" x="1080" y="-30.8" font-family="arial" font-size="14.00">VT</text>
<text text-anchor="start" x="1128" y="-30.8" font-family="arial" font-size="14.00">X3:4</text>
<polygon fill="#8000ff" stroke="transparent" stroke-width="2" points="1007.5,-19 1007.5,-25 1170.5,-25 1170.5,-19 1007.5,-19"/>
<polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-20 1169.5,-20 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-24 1008.5,-24 "/>
<text text-anchor="start" x="1034" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge"><title>X2:p1r:e&#45;&#45;W2:w1:w</title> <g id="edge9" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-79.5C918.254,-79.5155 934.242,-81.5155 998,-81.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M854,-81.5C918.006,-81.5 933.994,-83.5 998,-83.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-93C927.25,-93.02 943.24,-95.02 1007,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-83.5C917.758,-83.4845 933.746,-85.4845 998,-85.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M863,-95C927.01,-95 942.99,-97 1007,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-97C926.76,-96.98 942.75,-98.98 1007,-99"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge"><title>X2:p2r:e&#45;&#45;W2:w2:w</title> <g id="edge11" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-55.5C918.126,-55.5039 934.123,-56.5039 998,-56.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M854,-57.5C918.002,-57.5 933.998,-58.5 998,-58.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-69C927.13,-69 943.12,-70 1007,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-59.5C917.877,-59.4961 933.874,-60.4961 998,-60.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M863,-71C927,-71 943,-72 1007,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-73C926.88,-73 942.87,-74 1007,-74"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge"><title>X2:p3r:e&#45;&#45;W2:w3:w</title> <g id="edge13" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-32.5C917.877,-32.5039 933.874,-31.5039 998,-31.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M854,-34.5C918.002,-34.5 933.998,-33.5 998,-33.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-46C926.88,-46 942.87,-45 1007,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-36.5C918.126,-36.4961 934.123,-35.4961 998,-35.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M863,-48C927,-48 943,-47 1007,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-50C927.13,-50 943.12,-49 1007,-49"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge"><title>X2:p4r:e&#45;&#45;W2:w4:w</title> <g id="edge15" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-9.5C917.645,-9.53437 933.617,-6.53437 998,-6.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M854,-11.5C918.014,-11.5 933.986,-8.5 998,-8.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-23C926.64,-23.03 942.62,-20.03 1007,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-13.5C918.383,-13.4656 934.355,-10.4656 998,-10.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M863,-25C927.01,-25 942.99,-22 1007,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-27C927.38,-26.97 943.36,-23.97 1007,-24"/>
</g> </g>
<!-- X3 --> <!-- X3 -->
<g id="node3" class="node"><title>X3</title> <g id="node3" class="node">
<polygon fill="white" stroke="black" points="1280,-0.5 1280,-138.5 1494,-138.5 1494,-0.5 1280,-0.5"/> <title>X3</title>
<text text-anchor="middle" x="1387" y="-123.3" font-family="arial" font-size="14.00">X3</text> <polygon fill="white" stroke="black" points="1314,-14 1314,-152 1520,-152 1520,-14 1314,-14"/>
<polyline fill="none" stroke="black" points="1280,-115.5 1494,-115.5 "/> <text text-anchor="middle" x="1417" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<text text-anchor="middle" x="1333" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="1314,-129 1520,-129 "/>
<polyline fill="none" stroke="black" points="1386,-92.5 1386,-115.5 "/> <text text-anchor="middle" x="1364.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="1416" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="1415,-106 1415,-129 "/>
<polyline fill="none" stroke="black" points="1446,-92.5 1446,-115.5 "/> <text text-anchor="middle" x="1444" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="1470" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="1473,-106 1473,-129 "/>
<polyline fill="none" stroke="black" points="1280,-92.5 1494,-92.5 "/> <text text-anchor="middle" x="1496.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="1327.5" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="1314,-106 1520,-106 "/>
<polyline fill="none" stroke="black" points="1280,-69.5 1375,-69.5 "/> <text text-anchor="middle" x="1359.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="1327.5" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="1314,-83 1405,-83 "/>
<polyline fill="none" stroke="black" points="1280,-46.5 1375,-46.5 "/> <text text-anchor="middle" x="1359.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="1327.5" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="1314,-60 1405,-60 "/>
<polyline fill="none" stroke="black" points="1280,-23.5 1375,-23.5 "/> <text text-anchor="middle" x="1359.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="1327.5" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="1314,-37 1405,-37 "/>
<polyline fill="none" stroke="black" points="1375,-0.5 1375,-92.5 "/> <text text-anchor="middle" x="1359.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="1434.5" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="1405,-14 1405,-106 "/>
<polyline fill="none" stroke="black" points="1375,-69.5 1494,-69.5 "/> <text text-anchor="middle" x="1462.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="1434.5" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="1405,-83 1520,-83 "/>
<polyline fill="none" stroke="black" points="1375,-46.5 1494,-46.5 "/> <text text-anchor="middle" x="1462.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="1434.5" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="1405,-60 1520,-60 "/>
<polyline fill="none" stroke="black" points="1375,-23.5 1494,-23.5 "/> <text text-anchor="middle" x="1462.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="1434.5" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="1405,-37 1520,-37 "/>
<text text-anchor="middle" x="1462.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge"><title>W1:w1:e&#45;&#45;X2:p1l:w</title> <g id="edge2" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-81.5C559.758,-81.5155 575.746,-79.5155 640,-79.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M496,-83.5C560.006,-83.5 575.994,-81.5 640,-81.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-95C576.76,-95.02 592.75,-93.02 657,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-85.5C560.254,-85.4845 576.242,-83.4845 640,-83.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M513,-97C577.01,-97 592.99,-95 657,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-99C577.25,-98.98 593.24,-96.98 657,-97"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge"><title>W1:w2:e&#45;&#45;X2:p2l:w</title> <g id="edge4" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-56.5C559.877,-56.5039 575.874,-55.5039 640,-55.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M496,-58.5C560.002,-58.5 575.998,-57.5 640,-57.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-70C576.88,-70 592.87,-69 657,-69"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-60.5C560.126,-60.4961 576.123,-59.4961 640,-59.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M513,-72C577,-72 593,-71 657,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-74C577.13,-74 593.12,-73 657,-73"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge"><title>W1:w3:e&#45;&#45;X2:p3l:w</title> <g id="edge6" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-31.5C560.126,-31.5039 576.123,-32.5039 640,-32.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M496,-33.5C560.002,-33.5 575.998,-34.5 640,-34.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-45C577.13,-45 593.12,-46 657,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-35.5C559.877,-35.4961 575.874,-36.4961 640,-36.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M513,-47C577,-47 593,-48 657,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-49C576.88,-49 592.87,-50 657,-50"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge"><title>W1:w4:e&#45;&#45;X2:p4l:w</title> <g id="edge8" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-6.5C560.383,-6.53437 576.355,-9.53437 640,-9.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M496,-8.5C560.014,-8.5 575.986,-11.5 640,-11.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-20C577.38,-20.03 593.36,-23.03 657,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-10.5C559.645,-10.4656 575.617,-13.4656 640,-13.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M513,-22C577.01,-22 592.99,-25 657,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-24C576.64,-23.97 592.62,-26.97 657,-27"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge"><title>W2:w1:e&#45;&#45;X3:p1l:w</title> <g id="edge10" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-81.5C1199.76,-81.5155 1215.75,-79.5155 1280,-79.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1136,-83.5C1200.01,-83.5 1215.99,-81.5 1280,-81.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-95C1233.76,-95.02 1249.75,-93.02 1314,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-85.5C1200.25,-85.4845 1216.24,-83.4845 1280,-83.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M1170,-97C1234.01,-97 1249.99,-95 1314,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-99C1234.25,-98.98 1250.24,-96.98 1314,-97"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge"><title>W2:w2:e&#45;&#45;X3:p2l:w</title> <g id="edge12" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-56.5C1199.88,-56.5039 1215.87,-55.5039 1280,-55.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1136,-58.5C1200,-58.5 1216,-57.5 1280,-57.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-70C1233.88,-70 1249.87,-69 1314,-69"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-60.5C1200.13,-60.4961 1216.12,-59.4961 1280,-59.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M1170,-72C1234,-72 1250,-71 1314,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-74C1234.13,-74 1250.12,-73 1314,-73"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge"><title>W2:w3:e&#45;&#45;X3:p3l:w</title> <g id="edge14" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-31.5C1200.13,-31.5039 1216.12,-32.5039 1280,-32.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1136,-33.5C1200,-33.5 1216,-34.5 1280,-34.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-45C1234.13,-45 1250.12,-46 1314,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-35.5C1199.88,-35.4961 1215.87,-36.4961 1280,-36.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M1170,-47C1234,-47 1250,-48 1314,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-49C1233.88,-49 1249.87,-50 1314,-50"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge"><title>W2:w4:e&#45;&#45;X3:p4l:w</title> <g id="edge16" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-6.5C1200.38,-6.53437 1216.36,-9.53437 1280,-9.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1136,-8.5C1200.01,-8.5 1215.99,-11.5 1280,-11.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-20C1234.38,-20.03 1250.36,-23.03 1314,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-10.5C1199.64,-10.4656 1215.62,-13.4656 1280,-13.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M1170,-22C1234.01,-22 1249.99,-25 1314,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-24C1233.64,-23.97 1249.62,-26.97 1314,-27"/>
</g> </g>
</g> </g>
</svg> </svg>
<h1>Bill of Materials</h1><table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px"><tr><th align="left" style="border:1px solid #000000; padding: 8px">Item</th><th align="left" style="border:1px solid #000000; padding: 8px">Qty</th><th align="left" style="border:1px solid #000000; padding: 8px">Unit</th><th align="left" style="border:1px solid #000000; padding: 8px">Designators</th></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">3</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X1, X2, X3</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², PK</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², TQ</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², VT</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², YE</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr></table></body></html> <h1>Bill of Materials</h1><table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px"><tr><th align="left" style="border:1px solid #000000; padding: 8px">Item</th><th align="left" style="border:1px solid #000000; padding: 8px">Qty</th><th align="left" style="border:1px solid #000000; padding: 8px">Unit</th><th align="left" style="border:1px solid #000000; padding: 8px">Designators</th></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">3</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X1, X2, X3</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², PK</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², TQ</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², VT</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², YE</td><td align="right" style="border:1px solid #000000; padding: 4px">0.4</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1, W2</td></tr></table></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,270 +1,298 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041) <!-- Generated by graphviz version 2.44.0 (20200408.0750)
--> -->
<!-- Title: %3 Pages: 1 --> <!-- Pages: 1 -->
<svg width="1502pt" height="160pt" <svg width="1528pt" height="188pt"
viewBox="0.00 0.00 1502.00 159.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 1528.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 155.5)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>%3</title> <polygon fill="white" stroke="transparent" points="-4,4 -4,-184 1524,-184 1524,4 -4,4"/>
<polygon fill="#fffbf8" stroke="none" points="-4,4 -4,-155.5 1498,-155.5 1498,4 -4,4"/>
<!-- X1 --> <!-- X1 -->
<g id="node1" class="node"><title>X1</title> <g id="node1" class="node">
<polygon fill="white" stroke="black" points="0,-0.5 0,-138.5 214,-138.5 214,-0.5 0,-0.5"/> <title>X1</title>
<text text-anchor="middle" x="107" y="-123.3" font-family="arial" font-size="14.00">X1</text> <polygon fill="white" stroke="black" points="0,-14 0,-152 206,-152 206,-14 0,-14"/>
<polyline fill="none" stroke="black" points="0,-115.5 214,-115.5 "/> <text text-anchor="middle" x="103" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<text text-anchor="middle" x="53" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="0,-129 206,-129 "/>
<polyline fill="none" stroke="black" points="106,-92.5 106,-115.5 "/> <text text-anchor="middle" x="50.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="136" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="101,-106 101,-129 "/>
<polyline fill="none" stroke="black" points="166,-92.5 166,-115.5 "/> <text text-anchor="middle" x="130" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="190" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="159,-106 159,-129 "/>
<polyline fill="none" stroke="black" points="0,-92.5 214,-92.5 "/> <text text-anchor="middle" x="182.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="59" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="0,-106 206,-106 "/>
<polyline fill="none" stroke="black" points="0,-69.5 118,-69.5 "/> <text text-anchor="middle" x="57" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="59" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="0,-83 114,-83 "/>
<polyline fill="none" stroke="black" points="0,-46.5 118,-46.5 "/> <text text-anchor="middle" x="57" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="59" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="0,-60 114,-60 "/>
<polyline fill="none" stroke="black" points="0,-23.5 118,-23.5 "/> <text text-anchor="middle" x="57" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="59" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="0,-37 114,-37 "/>
<polyline fill="none" stroke="black" points="118,-0.5 118,-92.5 "/> <text text-anchor="middle" x="57" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<text text-anchor="middle" x="166" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="114,-14 114,-106 "/>
<polyline fill="none" stroke="black" points="118,-69.5 214,-69.5 "/> <text text-anchor="middle" x="160" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="166" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="114,-83 206,-83 "/>
<polyline fill="none" stroke="black" points="118,-46.5 214,-46.5 "/> <text text-anchor="middle" x="160" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="166" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="114,-60 206,-60 "/>
<polyline fill="none" stroke="black" points="118,-23.5 214,-23.5 "/> <text text-anchor="middle" x="160" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="166" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="114,-37 206,-37 "/>
<text text-anchor="middle" x="160" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W1 --> <!-- W1 -->
<g id="node4" class="node"><title>W1</title> <g id="node4" class="node">
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="496,-151.5 358,-151.5 358,-1.5 496,-1.5 496,-151.5"/> <title>W1</title>
<polygon fill="none" stroke="black" points="358,-128.5 358,-151.5 496,-151.5 496,-128.5 358,-128.5"/> <polygon fill="white" stroke="black" stroke-dasharray="5,2" points="513,-180 350,-180 350,0 513,0 513,-180"/>
<text text-anchor="start" x="415.5" y="-136.3" font-family="arial" font-size="14.00">W1</text> <polygon fill="none" stroke="black" points="350.5,-157 350.5,-180 513.5,-180 513.5,-157 350.5,-157"/>
<polygon fill="none" stroke="black" points="358,-105.5 358,-128.5 382,-128.5 382,-105.5 358,-105.5"/> <text text-anchor="start" x="421" y="-164.8" font-family="arial" font-size="14.00">W1</text>
<text text-anchor="start" x="362" y="-113.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="350.5,-134 350.5,-157 380.5,-157 380.5,-134 350.5,-134"/>
<polygon fill="none" stroke="black" points="382,-105.5 382,-128.5 451,-128.5 451,-105.5 382,-105.5"/> <text text-anchor="start" x="354.5" y="-141.8" font-family="arial" font-size="14.00">I2C</text>
<text text-anchor="start" x="386" y="-113.3" font-family="arial" font-size="14.00">0.25 mm²</text> <polygon fill="none" stroke="black" points="380.5,-134 380.5,-157 403.5,-157 403.5,-134 380.5,-134"/>
<polygon fill="none" stroke="black" points="451,-105.5 451,-128.5 496,-128.5 496,-105.5 451,-105.5"/> <text text-anchor="start" x="384.5" y="-141.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="455" y="-113.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="403.5,-134 403.5,-157 470.5,-157 470.5,-134 403.5,-134"/>
<text text-anchor="start" x="367.5" y="-92.3" font-family="arial" font-size="14.00">X1:1</text> <text text-anchor="start" x="407.5" y="-141.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<text text-anchor="start" x="417.5" y="-92.3" font-family="arial" font-size="14.00">PK</text> <polygon fill="none" stroke="black" points="470.5,-134 470.5,-157 513.5,-157 513.5,-134 470.5,-134"/>
<text text-anchor="start" x="456" y="-92.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="474.5" y="-141.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="358,-84.5 358,-86.5 496,-86.5 496,-84.5 358,-84.5"/> <text text-anchor="start" x="430" y="-122.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ff66cc" stroke="none" points="358,-82.5 358,-84.5 496,-84.5 496,-82.5 358,-82.5"/> <text text-anchor="start" x="365" y="-105.8" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="358,-80.5 358,-82.5 496,-82.5 496,-80.5 358,-80.5"/> <text text-anchor="start" x="422.5" y="-105.8" font-family="arial" font-size="14.00">PK</text>
<text text-anchor="start" x="367.5" y="-67.3" font-family="arial" font-size="14.00">X1:2</text> <text text-anchor="start" x="471" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="417" y="-67.3" font-family="arial" font-size="14.00">TQ</text> <polygon fill="#ff66cc" stroke="transparent" points="350.5,-94 350.5,-100 513.5,-100 513.5,-94 350.5,-94"/>
<text text-anchor="start" x="456" y="-67.3" font-family="arial" font-size="14.00">X2:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-95 512.5,-95 "/>
<polygon fill="#000000" stroke="none" points="358,-59.5 358,-61.5 496,-61.5 496,-59.5 358,-59.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-99 351.5,-99 "/>
<polygon fill="#00ffff" stroke="none" points="358,-57.5 358,-59.5 496,-59.5 496,-57.5 358,-57.5"/> <text text-anchor="start" x="365" y="-80.8" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="358,-55.5 358,-57.5 496,-57.5 496,-55.5 358,-55.5"/> <text text-anchor="start" x="422" y="-80.8" font-family="arial" font-size="14.00">TQ</text>
<text text-anchor="start" x="367.5" y="-42.3" font-family="arial" font-size="14.00">X1:3</text> <text text-anchor="start" x="471" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="418" y="-42.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#00ffff" stroke="transparent" stroke-width="2" points="350.5,-69 350.5,-75 513.5,-75 513.5,-69 350.5,-69"/>
<text text-anchor="start" x="456" y="-42.3" font-family="arial" font-size="14.00">X2:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-70 512.5,-70 "/>
<polygon fill="#000000" stroke="none" points="358,-34.5 358,-36.5 496,-36.5 496,-34.5 358,-34.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-74 351.5,-74 "/>
<polygon fill="#ffff00" stroke="none" points="358,-32.5 358,-34.5 496,-34.5 496,-32.5 358,-32.5"/> <text text-anchor="start" x="365" y="-55.8" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="358,-30.5 358,-32.5 496,-32.5 496,-30.5 358,-30.5"/> <text text-anchor="start" x="422.5" y="-55.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="367.5" y="-17.3" font-family="arial" font-size="14.00">X1:4</text> <text text-anchor="start" x="471" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="418" y="-17.3" font-family="arial" font-size="14.00">VT</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350.5,-44 350.5,-50 513.5,-50 513.5,-44 350.5,-44"/>
<text text-anchor="start" x="456" y="-17.3" font-family="arial" font-size="14.00">X2:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="351.5,-45 512.5,-45 "/>
<polygon fill="#000000" stroke="none" points="358,-9.5 358,-11.5 496,-11.5 496,-9.5 358,-9.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="512.5,-49 351.5,-49 "/>
<polygon fill="#8000ff" stroke="none" points="358,-7.5 358,-9.5 496,-9.5 496,-7.5 358,-7.5"/> <text text-anchor="start" x="365" y="-30.8" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="358,-5.5 358,-7.5 496,-7.5 496,-5.5 358,-5.5"/> <text text-anchor="start" x="423" y="-30.8" font-family="arial" font-size="14.00">VT</text>
<text text-anchor="start" x="471" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#8000ff" stroke="transparent" stroke-width="2" points="350.5,-19 350.5,-25 513.5,-25 513.5,-19 350.5,-19"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351.5,-20 512.5,-20 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="512.5,-24 351.5,-24 "/>
<text text-anchor="start" x="377" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge"><title>X1:p1r:e&#45;&#45;W1:w1:w</title> <g id="edge1" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-79.5C278.254,-79.5155 294.242,-81.5155 358,-81.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M214,-81.5C278.006,-81.5 293.994,-83.5 358,-83.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-93C270.25,-93.02 286.24,-95.02 350,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-83.5C277.758,-83.4845 293.746,-85.4845 358,-85.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M206,-95C270.01,-95 285.99,-97 350,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-97C269.76,-96.98 285.75,-98.98 350,-99"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge"><title>X1:p2r:e&#45;&#45;W1:w2:w</title> <g id="edge3" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-55.5C278.126,-55.5039 294.123,-56.5039 358,-56.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M214,-57.5C278.002,-57.5 293.998,-58.5 358,-58.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-69C270.13,-69 286.12,-70 350,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-59.5C277.877,-59.4961 293.874,-60.4961 358,-60.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M206,-71C270,-71 286,-72 350,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-73C269.88,-73 285.87,-74 350,-74"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge"><title>X1:p3r:e&#45;&#45;W1:w3:w</title> <g id="edge5" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-32.5C277.877,-32.5039 293.874,-31.5039 358,-31.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M214,-34.5C278.002,-34.5 293.998,-33.5 358,-33.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-46C269.88,-46 285.87,-45 350,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-36.5C278.126,-36.4961 294.123,-35.4961 358,-35.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-48C270,-48 286,-47 350,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-50C270.13,-50 286.12,-49 350,-49"/>
</g> </g>
<!-- X1&#45;&#45;W1 --> <!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge"><title>X1:p4r:e&#45;&#45;W1:w4:w</title> <g id="edge7" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-9.5C277.645,-9.53437 293.617,-6.53437 358,-6.5"/> <title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M214,-11.5C278.014,-11.5 293.986,-8.5 358,-8.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M206,-23C269.64,-23.03 285.62,-20.03 350,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M214,-13.5C278.383,-13.4656 294.355,-10.4656 358,-10.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M206,-25C270.01,-25 285.99,-22 350,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-27C270.38,-26.97 286.36,-23.97 350,-24"/>
</g> </g>
<!-- X2 --> <!-- X2 -->
<g id="node2" class="node"><title>X2</title> <g id="node2" class="node">
<polygon fill="white" stroke="black" points="640,-0.5 640,-138.5 854,-138.5 854,-0.5 640,-0.5"/> <title>X2</title>
<text text-anchor="middle" x="747" y="-123.3" font-family="arial" font-size="14.00">X2</text> <polygon fill="white" stroke="black" points="657,-14 657,-152 863,-152 863,-14 657,-14"/>
<polyline fill="none" stroke="black" points="640,-115.5 854,-115.5 "/> <text text-anchor="middle" x="760" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<text text-anchor="middle" x="693" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="657,-129 863,-129 "/>
<polyline fill="none" stroke="black" points="746,-92.5 746,-115.5 "/> <text text-anchor="middle" x="707.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="776" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="758,-106 758,-129 "/>
<polyline fill="none" stroke="black" points="806,-92.5 806,-115.5 "/> <text text-anchor="middle" x="787" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="830" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="816,-106 816,-129 "/>
<polyline fill="none" stroke="black" points="640,-92.5 854,-92.5 "/> <text text-anchor="middle" x="839.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="671.5" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="657,-106 863,-106 "/>
<polyline fill="none" stroke="black" points="640,-69.5 703,-69.5 "/> <text text-anchor="middle" x="687.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="671.5" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="657,-83 718,-83 "/>
<polyline fill="none" stroke="black" points="640,-46.5 703,-46.5 "/> <text text-anchor="middle" x="687.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="671.5" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="657,-60 718,-60 "/>
<polyline fill="none" stroke="black" points="640,-23.5 703,-23.5 "/> <text text-anchor="middle" x="687.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="671.5" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="657,-37 718,-37 "/>
<polyline fill="none" stroke="black" points="703,-0.5 703,-92.5 "/> <text text-anchor="middle" x="687.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="746.5" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="718,-14 718,-106 "/>
<polyline fill="none" stroke="black" points="703,-69.5 790,-69.5 "/> <text text-anchor="middle" x="760" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="746.5" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="718,-83 802,-83 "/>
<polyline fill="none" stroke="black" points="703,-46.5 790,-46.5 "/> <text text-anchor="middle" x="760" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="746.5" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="718,-60 802,-60 "/>
<polyline fill="none" stroke="black" points="703,-23.5 790,-23.5 "/> <text text-anchor="middle" x="760" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="746.5" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="718,-37 802,-37 "/>
<polyline fill="none" stroke="black" points="790,-0.5 790,-92.5 "/> <text text-anchor="middle" x="760" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<text text-anchor="middle" x="822" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="802,-14 802,-106 "/>
<polyline fill="none" stroke="black" points="790,-69.5 854,-69.5 "/> <text text-anchor="middle" x="832.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="822" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="802,-83 863,-83 "/>
<polyline fill="none" stroke="black" points="790,-46.5 854,-46.5 "/> <text text-anchor="middle" x="832.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="822" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="802,-60 863,-60 "/>
<polyline fill="none" stroke="black" points="790,-23.5 854,-23.5 "/> <text text-anchor="middle" x="832.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="822" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="802,-37 863,-37 "/>
<text text-anchor="middle" x="832.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g> </g>
<!-- W2 --> <!-- W2 -->
<g id="node5" class="node"><title>W2</title> <g id="node5" class="node">
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="1136,-151.5 998,-151.5 998,-1.5 1136,-1.5 1136,-151.5"/> <title>W2</title>
<polygon fill="none" stroke="black" points="998,-128.5 998,-151.5 1136,-151.5 1136,-128.5 998,-128.5"/> <polygon fill="white" stroke="black" stroke-dasharray="5,2" points="1170,-180 1007,-180 1007,0 1170,0 1170,-180"/>
<text text-anchor="start" x="1055.5" y="-136.3" font-family="arial" font-size="14.00">W2</text> <polygon fill="none" stroke="black" points="1007.5,-157 1007.5,-180 1170.5,-180 1170.5,-157 1007.5,-157"/>
<polygon fill="none" stroke="black" points="998,-105.5 998,-128.5 1022,-128.5 1022,-105.5 998,-105.5"/> <text text-anchor="start" x="1078" y="-164.8" font-family="arial" font-size="14.00">W2</text>
<text text-anchor="start" x="1002" y="-113.3" font-family="arial" font-size="14.00">4x</text> <polygon fill="none" stroke="black" points="1007.5,-134 1007.5,-157 1037.5,-157 1037.5,-134 1007.5,-134"/>
<polygon fill="none" stroke="black" points="1022,-105.5 1022,-128.5 1091,-128.5 1091,-105.5 1022,-105.5"/> <text text-anchor="start" x="1011.5" y="-141.8" font-family="arial" font-size="14.00">I2C</text>
<text text-anchor="start" x="1026" y="-113.3" font-family="arial" font-size="14.00">0.25 mm²</text> <polygon fill="none" stroke="black" points="1037.5,-134 1037.5,-157 1060.5,-157 1060.5,-134 1037.5,-134"/>
<polygon fill="none" stroke="black" points="1091,-105.5 1091,-128.5 1136,-128.5 1136,-105.5 1091,-105.5"/> <text text-anchor="start" x="1041.5" y="-141.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="1095" y="-113.3" font-family="arial" font-size="14.00">0.2 m</text> <polygon fill="none" stroke="black" points="1060.5,-134 1060.5,-157 1127.5,-157 1127.5,-134 1060.5,-134"/>
<text text-anchor="start" x="1007.5" y="-92.3" font-family="arial" font-size="14.00">X2:1</text> <text text-anchor="start" x="1064.5" y="-141.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<text text-anchor="start" x="1057.5" y="-92.3" font-family="arial" font-size="14.00">PK</text> <polygon fill="none" stroke="black" points="1127.5,-134 1127.5,-157 1170.5,-157 1170.5,-134 1127.5,-134"/>
<text text-anchor="start" x="1096" y="-92.3" font-family="arial" font-size="14.00">X3:1</text> <text text-anchor="start" x="1131.5" y="-141.8" font-family="arial" font-size="14.00">0.2 m</text>
<polygon fill="#000000" stroke="none" points="998,-84.5 998,-86.5 1136,-86.5 1136,-84.5 998,-84.5"/> <text text-anchor="start" x="1087" y="-122.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ff66cc" stroke="none" points="998,-82.5 998,-84.5 1136,-84.5 1136,-82.5 998,-82.5"/> <text text-anchor="start" x="1022" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#000000" stroke="none" points="998,-80.5 998,-82.5 1136,-82.5 1136,-80.5 998,-80.5"/> <text text-anchor="start" x="1079.5" y="-105.8" font-family="arial" font-size="14.00">PK</text>
<text text-anchor="start" x="1007.5" y="-67.3" font-family="arial" font-size="14.00">X2:2</text> <text text-anchor="start" x="1128" y="-105.8" font-family="arial" font-size="14.00">X3:1</text>
<text text-anchor="start" x="1057" y="-67.3" font-family="arial" font-size="14.00">TQ</text> <polygon fill="#ff66cc" stroke="transparent" points="1007.5,-94 1007.5,-100 1170.5,-100 1170.5,-94 1007.5,-94"/>
<text text-anchor="start" x="1096" y="-67.3" font-family="arial" font-size="14.00">X3:2</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-95 1169.5,-95 "/>
<polygon fill="#000000" stroke="none" points="998,-59.5 998,-61.5 1136,-61.5 1136,-59.5 998,-59.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-99 1008.5,-99 "/>
<polygon fill="#00ffff" stroke="none" points="998,-57.5 998,-59.5 1136,-59.5 1136,-57.5 998,-57.5"/> <text text-anchor="start" x="1022" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="998,-55.5 998,-57.5 1136,-57.5 1136,-55.5 998,-55.5"/> <text text-anchor="start" x="1079" y="-80.8" font-family="arial" font-size="14.00">TQ</text>
<text text-anchor="start" x="1007.5" y="-42.3" font-family="arial" font-size="14.00">X2:3</text> <text text-anchor="start" x="1128" y="-80.8" font-family="arial" font-size="14.00">X3:2</text>
<text text-anchor="start" x="1058" y="-42.3" font-family="arial" font-size="14.00">YE</text> <polygon fill="#00ffff" stroke="transparent" stroke-width="2" points="1007.5,-69 1007.5,-75 1170.5,-75 1170.5,-69 1007.5,-69"/>
<text text-anchor="start" x="1096" y="-42.3" font-family="arial" font-size="14.00">X3:3</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-70 1169.5,-70 "/>
<polygon fill="#000000" stroke="none" points="998,-34.5 998,-36.5 1136,-36.5 1136,-34.5 998,-34.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-74 1008.5,-74 "/>
<polygon fill="#ffff00" stroke="none" points="998,-32.5 998,-34.5 1136,-34.5 1136,-32.5 998,-32.5"/> <text text-anchor="start" x="1022" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#000000" stroke="none" points="998,-30.5 998,-32.5 1136,-32.5 1136,-30.5 998,-30.5"/> <text text-anchor="start" x="1079.5" y="-55.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="1007.5" y="-17.3" font-family="arial" font-size="14.00">X2:4</text> <text text-anchor="start" x="1128" y="-55.8" font-family="arial" font-size="14.00">X3:3</text>
<text text-anchor="start" x="1058" y="-17.3" font-family="arial" font-size="14.00">VT</text> <polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="1007.5,-44 1007.5,-50 1170.5,-50 1170.5,-44 1007.5,-44"/>
<text text-anchor="start" x="1096" y="-17.3" font-family="arial" font-size="14.00">X3:4</text> <polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-45 1169.5,-45 "/>
<polygon fill="#000000" stroke="none" points="998,-9.5 998,-11.5 1136,-11.5 1136,-9.5 998,-9.5"/> <polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-49 1008.5,-49 "/>
<polygon fill="#8000ff" stroke="none" points="998,-7.5 998,-9.5 1136,-9.5 1136,-7.5 998,-7.5"/> <text text-anchor="start" x="1022" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#000000" stroke="none" points="998,-5.5 998,-7.5 1136,-7.5 1136,-5.5 998,-5.5"/> <text text-anchor="start" x="1080" y="-30.8" font-family="arial" font-size="14.00">VT</text>
<text text-anchor="start" x="1128" y="-30.8" font-family="arial" font-size="14.00">X3:4</text>
<polygon fill="#8000ff" stroke="transparent" stroke-width="2" points="1007.5,-19 1007.5,-25 1170.5,-25 1170.5,-19 1007.5,-19"/>
<polyline fill="none" stroke="black" stroke-width="2" points="1008.5,-20 1169.5,-20 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="1169.5,-24 1008.5,-24 "/>
<text text-anchor="start" x="1034" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge"><title>X2:p1r:e&#45;&#45;W2:w1:w</title> <g id="edge9" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-79.5C918.254,-79.5155 934.242,-81.5155 998,-81.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M854,-81.5C918.006,-81.5 933.994,-83.5 998,-83.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-93C927.25,-93.02 943.24,-95.02 1007,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-83.5C917.758,-83.4845 933.746,-85.4845 998,-85.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M863,-95C927.01,-95 942.99,-97 1007,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-97C926.76,-96.98 942.75,-98.98 1007,-99"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge"><title>X2:p2r:e&#45;&#45;W2:w2:w</title> <g id="edge11" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-55.5C918.126,-55.5039 934.123,-56.5039 998,-56.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M854,-57.5C918.002,-57.5 933.998,-58.5 998,-58.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-69C927.13,-69 943.12,-70 1007,-70"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-59.5C917.877,-59.4961 933.874,-60.4961 998,-60.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M863,-71C927,-71 943,-72 1007,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-73C926.88,-73 942.87,-74 1007,-74"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge"><title>X2:p3r:e&#45;&#45;W2:w3:w</title> <g id="edge13" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-32.5C917.877,-32.5039 933.874,-31.5039 998,-31.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M854,-34.5C918.002,-34.5 933.998,-33.5 998,-33.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-46C926.88,-46 942.87,-45 1007,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-36.5C918.126,-36.4961 934.123,-35.4961 998,-35.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M863,-48C927,-48 943,-47 1007,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-50C927.13,-50 943.12,-49 1007,-49"/>
</g> </g>
<!-- X2&#45;&#45;W2 --> <!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge"><title>X2:p4r:e&#45;&#45;W2:w4:w</title> <g id="edge15" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-9.5C917.645,-9.53437 933.617,-6.53437 998,-6.5"/> <title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M854,-11.5C918.014,-11.5 933.986,-8.5 998,-8.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M863,-23C926.64,-23.03 942.62,-20.03 1007,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M854,-13.5C918.383,-13.4656 934.355,-10.4656 998,-10.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M863,-25C927.01,-25 942.99,-22 1007,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M863,-27C927.38,-26.97 943.36,-23.97 1007,-24"/>
</g> </g>
<!-- X3 --> <!-- X3 -->
<g id="node3" class="node"><title>X3</title> <g id="node3" class="node">
<polygon fill="white" stroke="black" points="1280,-0.5 1280,-138.5 1494,-138.5 1494,-0.5 1280,-0.5"/> <title>X3</title>
<text text-anchor="middle" x="1387" y="-123.3" font-family="arial" font-size="14.00">X3</text> <polygon fill="white" stroke="black" points="1314,-14 1314,-152 1520,-152 1520,-14 1314,-14"/>
<polyline fill="none" stroke="black" points="1280,-115.5 1494,-115.5 "/> <text text-anchor="middle" x="1417" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<text text-anchor="middle" x="1333" y="-100.3" font-family="arial" font-size="14.00">Molex KK 254</text> <polyline fill="none" stroke="black" points="1314,-129 1520,-129 "/>
<polyline fill="none" stroke="black" points="1386,-92.5 1386,-115.5 "/> <text text-anchor="middle" x="1364.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<text text-anchor="middle" x="1416" y="-100.3" font-family="arial" font-size="14.00">female</text> <polyline fill="none" stroke="black" points="1415,-106 1415,-129 "/>
<polyline fill="none" stroke="black" points="1446,-92.5 1446,-115.5 "/> <text text-anchor="middle" x="1444" y="-113.8" font-family="arial" font-size="14.00">female</text>
<text text-anchor="middle" x="1470" y="-100.3" font-family="arial" font-size="14.00">4&#45;pin</text> <polyline fill="none" stroke="black" points="1473,-106 1473,-129 "/>
<polyline fill="none" stroke="black" points="1280,-92.5 1494,-92.5 "/> <text text-anchor="middle" x="1496.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<text text-anchor="middle" x="1327.5" y="-77.3" font-family="arial" font-size="14.00">1</text> <polyline fill="none" stroke="black" points="1314,-106 1520,-106 "/>
<polyline fill="none" stroke="black" points="1280,-69.5 1375,-69.5 "/> <text text-anchor="middle" x="1359.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<text text-anchor="middle" x="1327.5" y="-54.3" font-family="arial" font-size="14.00">2</text> <polyline fill="none" stroke="black" points="1314,-83 1405,-83 "/>
<polyline fill="none" stroke="black" points="1280,-46.5 1375,-46.5 "/> <text text-anchor="middle" x="1359.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<text text-anchor="middle" x="1327.5" y="-31.3" font-family="arial" font-size="14.00">3</text> <polyline fill="none" stroke="black" points="1314,-60 1405,-60 "/>
<polyline fill="none" stroke="black" points="1280,-23.5 1375,-23.5 "/> <text text-anchor="middle" x="1359.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<text text-anchor="middle" x="1327.5" y="-8.3" font-family="arial" font-size="14.00">4</text> <polyline fill="none" stroke="black" points="1314,-37 1405,-37 "/>
<polyline fill="none" stroke="black" points="1375,-0.5 1375,-92.5 "/> <text text-anchor="middle" x="1359.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<text text-anchor="middle" x="1434.5" y="-77.3" font-family="arial" font-size="14.00">GND</text> <polyline fill="none" stroke="black" points="1405,-14 1405,-106 "/>
<polyline fill="none" stroke="black" points="1375,-69.5 1494,-69.5 "/> <text text-anchor="middle" x="1462.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<text text-anchor="middle" x="1434.5" y="-54.3" font-family="arial" font-size="14.00">VCC</text> <polyline fill="none" stroke="black" points="1405,-83 1520,-83 "/>
<polyline fill="none" stroke="black" points="1375,-46.5 1494,-46.5 "/> <text text-anchor="middle" x="1462.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<text text-anchor="middle" x="1434.5" y="-31.3" font-family="arial" font-size="14.00">SCL</text> <polyline fill="none" stroke="black" points="1405,-60 1520,-60 "/>
<polyline fill="none" stroke="black" points="1375,-23.5 1494,-23.5 "/> <text text-anchor="middle" x="1462.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<text text-anchor="middle" x="1434.5" y="-8.3" font-family="arial" font-size="14.00">SDA</text> <polyline fill="none" stroke="black" points="1405,-37 1520,-37 "/>
<text text-anchor="middle" x="1462.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge"><title>W1:w1:e&#45;&#45;X2:p1l:w</title> <g id="edge2" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-81.5C559.758,-81.5155 575.746,-79.5155 640,-79.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M496,-83.5C560.006,-83.5 575.994,-81.5 640,-81.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-95C576.76,-95.02 592.75,-93.02 657,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-85.5C560.254,-85.4845 576.242,-83.4845 640,-83.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M513,-97C577.01,-97 592.99,-95 657,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-99C577.25,-98.98 593.24,-96.98 657,-97"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge"><title>W1:w2:e&#45;&#45;X2:p2l:w</title> <g id="edge4" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-56.5C559.877,-56.5039 575.874,-55.5039 640,-55.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M496,-58.5C560.002,-58.5 575.998,-57.5 640,-57.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-70C576.88,-70 592.87,-69 657,-69"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-60.5C560.126,-60.4961 576.123,-59.4961 640,-59.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M513,-72C577,-72 593,-71 657,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-74C577.13,-74 593.12,-73 657,-73"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge"><title>W1:w3:e&#45;&#45;X2:p3l:w</title> <g id="edge6" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-31.5C560.126,-31.5039 576.123,-32.5039 640,-32.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M496,-33.5C560.002,-33.5 575.998,-34.5 640,-34.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-45C577.13,-45 593.12,-46 657,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-35.5C559.877,-35.4961 575.874,-36.4961 640,-36.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M513,-47C577,-47 593,-48 657,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-49C576.88,-49 592.87,-50 657,-50"/>
</g> </g>
<!-- W1&#45;&#45;X2 --> <!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge"><title>W1:w4:e&#45;&#45;X2:p4l:w</title> <g id="edge8" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-6.5C560.383,-6.53437 576.355,-9.53437 640,-9.5"/> <title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M496,-8.5C560.014,-8.5 575.986,-11.5 640,-11.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M513,-20C577.38,-20.03 593.36,-23.03 657,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M496,-10.5C559.645,-10.4656 575.617,-13.4656 640,-13.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M513,-22C577.01,-22 592.99,-25 657,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-24C576.64,-23.97 592.62,-26.97 657,-27"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge"><title>W2:w1:e&#45;&#45;X3:p1l:w</title> <g id="edge10" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-81.5C1199.76,-81.5155 1215.75,-79.5155 1280,-79.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1136,-83.5C1200.01,-83.5 1215.99,-81.5 1280,-81.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-95C1233.76,-95.02 1249.75,-93.02 1314,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-85.5C1200.25,-85.4845 1216.24,-83.4845 1280,-83.5"/> <path fill="none" stroke="#ff66cc" stroke-width="2" d="M1170,-97C1234.01,-97 1249.99,-95 1314,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-99C1234.25,-98.98 1250.24,-96.98 1314,-97"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge"><title>W2:w2:e&#45;&#45;X3:p2l:w</title> <g id="edge12" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-56.5C1199.88,-56.5039 1215.87,-55.5039 1280,-55.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1136,-58.5C1200,-58.5 1216,-57.5 1280,-57.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-70C1233.88,-70 1249.87,-69 1314,-69"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-60.5C1200.13,-60.4961 1216.12,-59.4961 1280,-59.5"/> <path fill="none" stroke="#00ffff" stroke-width="2" d="M1170,-72C1234,-72 1250,-71 1314,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-74C1234.13,-74 1250.12,-73 1314,-73"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge"><title>W2:w3:e&#45;&#45;X3:p3l:w</title> <g id="edge14" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-31.5C1200.13,-31.5039 1216.12,-32.5039 1280,-32.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1136,-33.5C1200,-33.5 1216,-34.5 1280,-34.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-45C1234.13,-45 1250.12,-46 1314,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-35.5C1199.88,-35.4961 1215.87,-36.4961 1280,-36.5"/> <path fill="none" stroke="#ffff00" stroke-width="2" d="M1170,-47C1234,-47 1250,-48 1314,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-49C1233.88,-49 1249.87,-50 1314,-50"/>
</g> </g>
<!-- W2&#45;&#45;X3 --> <!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge"><title>W2:w4:e&#45;&#45;X3:p4l:w</title> <g id="edge16" class="edge">
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-6.5C1200.38,-6.53437 1216.36,-9.53437 1280,-9.5"/> <title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1136,-8.5C1200.01,-8.5 1215.99,-11.5 1280,-11.5"/> <path fill="none" stroke="#000000" stroke-width="2" d="M1170,-20C1234.38,-20.03 1250.36,-23.03 1314,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1136,-10.5C1199.64,-10.4656 1215.62,-13.4656 1280,-13.5"/> <path fill="none" stroke="#8000ff" stroke-width="2" d="M1170,-22C1234.01,-22 1249.99,-25 1314,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-24C1233.64,-23.97 1249.62,-26.97 1314,-27"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -9,6 +9,7 @@ templates:
length: 0.2 length: 0.2
colors: [PK, TQ, YE, VT] colors: [PK, TQ, YE, VT]
category: bundle category: bundle
type: I2C
connectors: connectors:
X1: X1:

View File

@ -1 +1,3 @@
. .
graphviz
pyyaml

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from typing import Optional, List, Any from typing import Optional, List, Any, Union
from dataclasses import dataclass, field from dataclasses import dataclass, field
from wireviz.wv_helper import int2tuple from wireviz.wv_helper import int2tuple
from wireviz import wv_colors from wireviz import wv_colors
@ -10,6 +10,9 @@ from wireviz import wv_colors
@dataclass @dataclass
class Connector: class Connector:
name: str name: str
manufacturer: Optional[str] = None
manufacturer_part_number: Optional[str] = None
internal_part_number: Optional[str] = None
category: Optional[str] = None category: Optional[str] = None
type: Optional[str] = None type: Optional[str] = None
subtype: Optional[str] = None subtype: Optional[str] = None
@ -21,11 +24,12 @@ class Connector:
show_name: bool = True show_name: bool = True
show_pincount: bool = True show_pincount: bool = True
hide_disconnected_pins: bool = False hide_disconnected_pins: bool = False
autogenerate: bool = False
loops: List[Any] = field(default_factory=list)
def __post_init__(self): def __post_init__(self):
self.ports_left = False self.ports_left = False
self.ports_right = False self.ports_right = False
self.loops = []
self.visible_pins = {} self.visible_pins = {}
if self.pincount is None: if self.pincount is None:
@ -48,11 +52,15 @@ class Connector:
if not self.pinout: if not self.pinout:
self.pinout = [''] * self.pincount self.pinout = [''] * self.pincount
def loop(self, from_pin, to_pin): if len(self.pinnumbers) != len(set(self.pinnumbers)):
self.loops.append((from_pin, to_pin)) raise Exception('Pin numbers are not unique')
if self.hide_disconnected_pins:
self.visible_pins[from_pin] = True for loop in self.loops:
self.visible_pins[to_pin] = True # TODO: check that pins to connect actually exist
# TODO: allow using pin labels in addition to pin numbers, just like when defining regular connections
# TODO: include properties of wire used to create the loop
if len(loop) != 2:
raise Exception('Loops must be between exactly two pins!')
def activate_pin(self, pin): def activate_pin(self, pin):
self.visible_pins[pin] = True self.visible_pins[pin] = True
@ -61,6 +69,9 @@ class Connector:
@dataclass @dataclass
class Cable: class Cable:
name: str name: str
manufacturer: Optional[Union[str, List[str]]] = None
manufacturer_part_number: Optional[Union[str, List[str]]] = None
internal_part_number: Optional[Union[str, List[str]]] = None
category: Optional[str] = None category: Optional[str] = None
type: Optional[str] = None type: Optional[str] = None
gauge: Optional[float] = None gauge: Optional[float] = None
@ -118,6 +129,16 @@ class Cable:
raise Exception('Unknown number of wires. Must specify wirecount or colors (implicit length)') raise Exception('Unknown number of wires. Must specify wirecount or colors (implicit length)')
self.wirecount = len(self.colors) self.wirecount = len(self.colors)
# if lists of part numbers are provided check this is a bundle and that it matches the wirecount.
for idfield in [self.manufacturer, self.manufacturer_part_number, self.internal_part_number]:
if isinstance(idfield, list):
if self.category == "bundle":
# check the length
if len(idfield) != self.wirecount:
raise Exception('lists of part data must match wirecount')
else:
raise Exception('lists of part data are only supported for bundles')
# for BOM generation # for BOM generation
self.wirecount_and_shield = (self.wirecount, self.shield) self.wirecount_and_shield = (self.wirecount, self.shield)

View File

@ -4,9 +4,12 @@
from wireviz.DataClasses import Connector, Cable from wireviz.DataClasses import Connector, Cable
from graphviz import Graph from graphviz import Graph
from wireviz import wv_colors from wireviz import wv_colors
from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, nested, flatten2d from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, \
nested_html_table, flatten2d, index_if_list, html_line_breaks, \
graphviz_line_breaks, remove_line_breaks
from collections import Counter from collections import Counter
from typing import List from typing import List
from pathlib import Path
class Harness: class Harness:
@ -15,24 +18,47 @@ class Harness:
self.color_mode = 'SHORT' self.color_mode = 'SHORT'
self.connectors = {} self.connectors = {}
self.cables = {} self.cables = {}
self.additional_bom_items = []
def add_connector(self, name, *args, **kwargs): def add_connector(self, name: str, *args, **kwargs) -> None:
self.connectors[name] = Connector(name, *args, **kwargs) self.connectors[name] = Connector(name, *args, **kwargs)
def add_cable(self, name, *args, **kwargs): def add_cable(self, name: str, *args, **kwargs) -> None:
self.cables[name] = Cable(name, *args, **kwargs) self.cables[name] = Cable(name, *args, **kwargs)
def loop(self, connector_name, from_pin, to_pin): def add_bom_item(self, item: dict) -> None:
self.connectors[connector_name].loop(from_pin, to_pin) self.additional_bom_items.append(item)
def connect(self, from_name: str, from_pin: (int, str), via_name: str, via_pin: (int, str), to_name: str, to_pin: (int, str)) -> None:
for (name, pin) in zip([from_name, to_name], [from_pin, to_pin]): # check from and to connectors
if name is not None and name in self.connectors:
connector = self.connectors[name]
if pin in connector.pinnumbers and pin in connector.pinout:
if connector.pinnumbers.index(pin) == connector.pinout.index(pin):
# TODO: Maybe issue a warning? It's not worthy of an exception if it's unambiguous, but maybe risky?
pass
else:
raise Exception(f'{name}:{pin} is defined both in pinout and pinnumbers, for different pins.')
if pin in connector.pinout:
if connector.pinout.count(pin) > 1:
raise Exception(f'{name}:{pin} is defined more than once.')
else:
index = connector.pinout.index(pin)
pin = connector.pinnumbers[index] # map pin name to pin number
if name == from_name:
from_pin = pin
if name == to_name:
to_pin = pin
if not pin in connector.pinnumbers:
raise Exception(f'{name}:{pin} not found.')
def connect(self, from_name, from_pin, via_name, via_pin, to_name, to_pin):
self.cables[via_name].connect(from_name, from_pin, via_pin, to_name, to_pin) self.cables[via_name].connect(from_name, from_pin, via_pin, to_name, to_pin)
if from_name in self.connectors: if from_name in self.connectors:
self.connectors[from_name].activate_pin(from_pin) self.connectors[from_name].activate_pin(from_pin)
if to_name in self.connectors: if to_name in self.connectors:
self.connectors[to_name].activate_pin(to_pin) self.connectors[to_name].activate_pin(to_pin)
def create_graph(self): def create_graph(self) -> Graph:
dot = Graph() dot = Graph()
dot.body.append('// Graph generated by WireViz') dot.body.append('// Graph generated by WireViz')
dot.body.append('// https://github.com/formatc1702/WireViz') dot.body.append('// https://github.com/formatc1702/WireViz')
@ -59,43 +85,52 @@ class Harness:
for key, connector in self.connectors.items(): for key, connector in self.connectors.items():
if connector.category == 'ferrule': if connector.category == 'ferrule':
subtype = f', {connector.subtype}' if connector.subtype else ''
color = wv_colors.translate_color(connector.color, self.color_mode) if connector.color else ''
infostring = f'{connector.type}{subtype} {color}'
infostring_l = infostring if connector.ports_right else ''
infostring_r = infostring if connector.ports_left else ''
colorbar = f'<TD BGCOLOR="{wv_colors.translate_color(connector.color, "HEX")}" BORDER="1" SIDES="LR" WIDTH="4"></TD>' if connector.color else '' rows = [[connector.manufacturer,
dot.node(key, shape='none', f'MPN: {connector.manufacturer_part_number}' if connector.manufacturer_part_number else None,
style='filled', f'IPN: {connector.internal_part_number}' if connector.internal_part_number else None],
margin='0', [html_line_breaks(connector.type), html_line_breaks(connector.subtype), wv_colors.translate_color(connector.color, "HEX"), '<!-- colorbar -->' if connector.color else None],
orientation='0' if connector.ports_left else '180', [html_line_breaks(connector.notes)]]
label='''< html = nested_html_table(rows)
<TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0" CELLPADDING="2"><TR> if connector.color: # add color bar next to color info, if present
<TD PORT="p1l"> {infostring_l} </TD> colorbar = f' bgcolor="{wv_colors.translate_color(connector.color, "HEX")}" width="4"></td>' # leave out '<td' from string to preserve any existing attributes of the <td> tag
{colorbar} html = html.replace('><!-- colorbar --></td>', colorbar)
<TD PORT="p1r"> {infostring_r} </TD>
</TR></TABLE>
dot.node(key, label=f'<{html}>', shape='none', margin='0', style='filled', fillcolor='white')
>'''.format(infostring_l=infostring_l, infostring_r=infostring_r, colorbar=colorbar))
else: # not a ferrule else: # not a ferrule
attributes = [connector.type,
connector.subtype, rows = [[connector.name if connector.show_name else None],
f'{connector.pincount}-pin' if connector.show_pincount else''] [connector.manufacturer,
pinouts = [[], [], []] f'MPN: {connector.manufacturer_part_number}' if connector.manufacturer_part_number else None,
f'IPN: {connector.internal_part_number}' if connector.internal_part_number else None],
[html_line_breaks(connector.type),
html_line_breaks(connector.subtype),
f'{connector.pincount}-pin' if connector.show_pincount else None],
'<!-- connector table -->',
[html_line_breaks(connector.notes)]]
html = nested_html_table(rows)
pinouts = []
for pinnumber, pinname in zip(connector.pinnumbers, connector.pinout): for pinnumber, pinname in zip(connector.pinnumbers, connector.pinout):
if connector.hide_disconnected_pins and not connector.visible_pins.get(pinnumber, False): if connector.hide_disconnected_pins and not connector.visible_pins.get(pinnumber, False):
continue continue
pinouts[1].append(pinname) pinouts.append([f'<td port="p{pinnumber}l">{pinnumber}</td>' if connector.ports_left else None,
if connector.ports_left: f'<td>{pinname}</td>' if pinname else '',
pinouts[0].append(f'<p{pinnumber}l>{pinnumber}') f'<td port="p{pinnumber}r">{pinnumber}</td>' if connector.ports_right else None])
if connector.ports_right:
pinouts[2].append(f'<p{pinnumber}r>{pinnumber}') pinhtml = '<table border="0" cellspacing="0" cellpadding="3" cellborder="1">'
label = [connector.name if connector.show_name else '', attributes, pinouts, connector.notes] for i, pin in enumerate(pinouts):
dot.node(key, label=nested(label)) pinhtml = f'{pinhtml}<tr>'
for column in pin:
if column is not None:
pinhtml = f'{pinhtml}{column}'
pinhtml = f'{pinhtml}</tr>'
pinhtml = f'{pinhtml}</table>'
html = html.replace('<!-- connector table -->', pinhtml)
dot.node(key, label=f'<{html}>', shape='none', margin='0', style='filled', fillcolor='white')
if len(connector.loops) > 0: if len(connector.loops) > 0:
dot.attr('edge', color='#000000:#ffffff:#000000') dot.attr('edge', color='#000000:#ffffff:#000000')
@ -123,7 +158,13 @@ class Harness:
elif cable.gauge_unit.upper() == 'AWG': elif cable.gauge_unit.upper() == 'AWG':
awg_fmt = f' ({mm2_equiv(cable.gauge)} mm\u00B2)' awg_fmt = f' ({mm2_equiv(cable.gauge)} mm\u00B2)'
attributes = [f'{len(cable.colors)}x' if cable.show_wirecount else '', identification = [cable.manufacturer if not isinstance(cable.manufacturer, list) else '',
f'MPN: {cable.manufacturer_part_number}' if (cable.manufacturer_part_number and not isinstance(cable.manufacturer_part_number, list)) else '',
f'IPN: {cable.internal_part_number}' if (cable.internal_part_number and not isinstance(cable.internal_part_number, list)) else '']
identification = list(filter(None, identification))
attributes = [html_line_breaks(cable.type) if cable.type else '',
f'{len(cable.colors)}x' if cable.show_wirecount else '',
f'{cable.gauge} {cable.gauge_unit}{awg_fmt}' if cable.gauge else '', f'{cable.gauge} {cable.gauge_unit}{awg_fmt}' if cable.gauge else '',
'+ S' if cable.shield else '', '+ S' if cable.shield else '',
f'{cable.length} m' if cable.length > 0 else ''] f'{cable.length} m' if cable.length > 0 else '']
@ -134,13 +175,20 @@ class Harness:
html = f'{html}<table border="0" cellspacing="0" cellpadding="3" cellborder="1">' # name+attributes table html = f'{html}<table border="0" cellspacing="0" cellpadding="3" cellborder="1">' # name+attributes table
if cable.show_name: if cable.show_name:
html = f'{html}<tr><td colspan="{len(attributes)}">{cable.name}</td></tr>' html = f'{html}<tr><td colspan="{len(attributes)}">{cable.name}</td></tr>'
if(len(identification) > 0): # print an identification row if values specified
html = f'{html}<tr><td colspan="{len(attributes)}" cellpadding="0"><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>'
for attrib in identification[0:-1]:
html = f'{html}<td sides="R">{attrib}</td>' # all columns except last have a border on the right (sides="R")
if len(identification) > 0:
html = f'{html}<td border="0">{identification[-1]}</td>' # last column has no border on the right because the enclosing table borders it
html = f'{html}</tr></table></td></tr>' # end identification row
html = f'{html}<tr>' # attribute row html = f'{html}<tr>' # attribute row
for attrib in attributes: for attrib in attributes:
html = f'{html}<td>{attrib}</td>' html = f'{html}<td balign="left">{attrib}</td>'
html = f'{html}</tr>' # attribute row html = f'{html}</tr>' # attribute row
html = f'{html}</table></td></tr>' # name+attributes table html = f'{html}</table></td></tr>' # name+attributes table
html = f'{html}<tr><td></td></tr>' # spacer between attributes and wires html = f'{html}<tr><td>&nbsp;</td></tr>' # spacer between attributes and wires
html = f'{html}<tr><td><table border="0" cellspacing="0" cellborder="0">' # conductor table html = f'{html}<tr><td><table border="0" cellspacing="0" cellborder="0">' # conductor table
@ -153,29 +201,50 @@ class Harness:
for bla in p: for bla in p:
html = f'{html}<td>{bla}</td>' html = f'{html}<td>{bla}</td>'
html = f'{html}</tr>' html = f'{html}</tr>'
#TODO: RESOLVE THIS MESS
bgcolor = wv_colors.translate_color(connection, 'hex')
bgcolor = bgcolor if bgcolor != '' else '#ffffff'
html = f'{html}<tr><td colspan="{len(p)}" cellpadding="0" height="6" bgcolor="{bgcolor}" border="2" sides="tb" port="w{i}"></td></tr>'
if(cable.category == 'bundle'): # for bundles individual wires can have part information
# create a list of wire parameters
wireidentification = []
if isinstance(cable.manufacturer, list):
wireidentification.append(cable.manufacturer[i - 1])
if isinstance(cable.manufacturer_part_number, list):
wireidentification.append(f'MPN: {cable.manufacturer_part_number[i - 1]}')
if isinstance(cable.internal_part_number, list):
wireidentification.append(f'IPN: {cable.internal_part_number[i - 1]}')
# print parameters into a table row under the wire
if(len(wireidentification) > 0):
html = f'{html}<tr><td colspan="{len(p)}"><table border="0" cellspacing="0" cellborder="0"><tr>'
for attrib in wireidentification:
html = f'{html}<td>{attrib}</td>'
html = f'{html}</tr></table></td></tr>'
# --------------------
bgcolors = ('#000000:' + wv_colors.translate_color(connection, 'hex') + ':#000000').split(':') bgcolors = ('#000000:' + wv_colors.translate_color(connection, 'hex') + ':#000000').split(':')
html = f'{html}<tr><td colspan="{len(p)}" border="0" cellspacing="0" cellpadding="0" port="w{i}" height="{(2 * len(bgcolors))}"><table cellspacing="0" cellborder="0" border = "0">' html = f'{html}<tr><td colspan="{len(p)}" border="0" cellspacing="0" cellpadding="0" port="w{i}" height="{(2 * len(bgcolors))}"><table cellspacing="0" cellborder="0" border = "0">'
for j, bgcolor in enumerate( for j, bgcolor in enumerate(
bgcolors[::-1]): # Reverse to match the curved wires when more than 2 colors bgcolors[::-1]): # Reverse to match the curved wires when more than 2 colors
html = f'{html}<tr><td colspan="{len(p)}" cellpadding="0" height="2" bgcolor="{bgcolor if bgcolor != "" else wv_colors.default_color}" border="0"></td></tr>' html = f'{html}<tr><td colspan="{len(p)}" cellpadding="0" height="2" bgcolor="{bgcolor if bgcolor != "" else wv_colors.default_color}" border="0"></td></tr>'
html = html + '</table></td></tr>' html = html + '</table></td></tr>'
# END OF MESS
if cable.shield: if cable.shield:
p = ['<!-- s_in -->', 'Shield', '<!-- s_out -->'] p = ['<!-- s_in -->', 'Shield', '<!-- s_out -->']
html = f'{html}<tr><td></td></tr>' # spacer html = f'{html}<tr><td>&nbsp;</td></tr>' # spacer
html = f'{html}<tr>' html = f'{html}<tr>'
for bla in p: for bla in p:
html = html + f'<td>{bla}</td>' html = html + f'<td>{bla}</td>'
html = f'{html}</tr>' html = f'{html}</tr>'
html = f'{html}<tr><td colspan="{len(p)}" cellpadding="0" bgcolor="{wv_colors.shield_color}" height="6" border="2" sides="b" port="ws"></td></tr>' html = f'{html}<tr><td colspan="{len(p)}" cellpadding="0" bgcolor="{wv_colors.shield_color}" height="6" border="2" sides="b" port="ws"></td></tr>'
html = f'{html}<tr><td></td></tr>' # spacer at the end html = f'{html}<tr><td>&nbsp;</td></tr>' # spacer at the end
html = f'{html}</table>' # conductor table html = f'{html}</table>' # conductor table
html = f'{html}</td></tr>' # main table html = f'{html}</td></tr>' # main table
if cable.notes: if cable.notes:
html = f'{html}<tr><td cellpadding="3">{cable.notes}</td></tr>' # notes table html = f'{html}<tr><td cellpadding="3" balign="left">{html_line_breaks(cable.notes)}</td></tr>' # notes table
html = f'{html}<tr><td></td></tr>' # spacer at the end html = f'{html}<tr><td>&nbsp;</td></tr>' # spacer at the end
html = f'{html}</table>' # main table html = f'{html}</table>' # main table
@ -210,13 +279,31 @@ class Harness:
return dot return dot
def output(self, filename, directory='_output', view=False, cleanup=True, fmt='pdf', gen_bom=False): @property
def png(self):
from io import BytesIO
graph = self.create_graph()
data = BytesIO()
data.write(graph.pipe(format='png'))
data.seek(0)
return data.read()
@property
def svg(self):
from io import BytesIO
graph = self.create_graph()
data = BytesIO()
data.write(graph.pipe(format='svg'))
data.seek(0)
return data.read()
def output(self, filename: (str, Path), view: bool = False, cleanup: bool = True, fmt: tuple = ('pdf', )) -> None:
# graphical output # graphical output
graph = self.create_graph() graph = self.create_graph()
for f in fmt: for f in fmt:
graph.format = f graph.format = f
graph.render(filename=filename, directory=directory, view=view, cleanup=cleanup) graph.render(filename=filename, view=view, cleanup=cleanup)
graph.save(filename=f'{filename}.gv', directory=directory) graph.save(filename=f'{filename}.gv')
# bom output # bom output
bom_list = self.bom_list() bom_list = self.bom_list()
with open(f'{filename}.bom.tsv', 'w') as file: with open(f'{filename}.bom.tsv', 'w') as file:
@ -251,80 +338,93 @@ class Harness:
bom = [] bom = []
bom_connectors = [] bom_connectors = []
bom_cables = [] bom_cables = []
bom_extra = []
# connectors # connectors
types = Counter([(v.type, v.subtype, v.pincount) for v in self.connectors.values()]) connector_group = lambda c: (c.type, c.subtype, c.pincount, c.manufacturer, c.manufacturer_part_number, c.internal_part_number)
for maintype in types: for group in Counter([connector_group(v) for v in self.connectors.values()]):
items = {k: v for k, v in self.connectors.items() if (v.type, v.subtype, v.pincount) == maintype} items = {k: v for k, v in self.connectors.items() if connector_group(v) == group}
shared = next(iter(items.values())) shared = next(iter(items.values()))
designators = list(items.keys()) designators = list(items.keys())
designators.sort() designators.sort()
conn_type = f', {shared.type}' if shared.type else '' conn_type = f', {remove_line_breaks(shared.type)}' if shared.type else ''
conn_subtype = f', {shared.subtype}' if shared.subtype else '' conn_subtype = f', {remove_line_breaks(shared.subtype)}' if shared.subtype else ''
conn_pincount = f', {shared.pincount} pins' if shared.category != 'ferrule' else '' conn_pincount = f', {shared.pincount} pins' if shared.category != 'ferrule' else ''
conn_color = f', {shared.color}' if shared.color else '' conn_color = f', {shared.color}' if shared.color else ''
name = f'Connector{conn_type}{conn_subtype}{conn_pincount}{conn_color}' name = f'Connector{conn_type}{conn_subtype}{conn_pincount}{conn_color}'
item = {'item': name, 'qty': len(designators), 'unit': '', item = {'item': name, 'qty': len(designators), 'unit': '', 'designators': designators if shared.category != 'ferrule' else '',
'designators': designators if shared.category != 'ferrule' else ''} 'manufacturer': shared.manufacturer, 'manufacturer part number': shared.manufacturer_part_number, 'internal part number': shared.internal_part_number}
bom_connectors.append(item) bom_connectors.append(item)
bom_connectors = sorted(bom_connectors, key=lambda k: k['item']) # https://stackoverflow.com/a/73050 bom_connectors = sorted(bom_connectors, key=lambda k: k['item']) # https://stackoverflow.com/a/73050
bom.extend(bom_connectors) bom.extend(bom_connectors)
# cables # cables
types = Counter([(v.category, v.gauge, v.gauge_unit, v.wirecount, v.shield) for v in self.cables.values()]) # TODO: If category can have other non-empty values than 'bundle', maybe it should be part of item name?
for maintype in types: # The category needs to be included in cable_group to keep the bundles excluded.
items = {k: v for k, v in self.cables.items() if ( cable_group = lambda c: (c.category, c.type, c.gauge, c.gauge_unit, c.wirecount, c.shield, c.manufacturer, c.manufacturer_part_number, c.internal_part_number)
v.category, v.gauge, v.gauge_unit, v.wirecount, v.shield) == maintype} for group in Counter([cable_group(v) for v in self.cables.values() if v.category != 'bundle']):
items = {k: v for k, v in self.cables.items() if cable_group(v) == group}
shared = next(iter(items.values())) shared = next(iter(items.values()))
if shared.category != 'bundle': designators = list(items.keys())
designators = list(items.keys()) designators.sort()
designators.sort() total_length = sum(i.length for i in items.values())
total_length = sum(i.length for i in items.values()) cable_type = f', {remove_line_breaks(shared.type)}' if shared.type else ''
gauge_name = f' x {shared.gauge} {shared.gauge_unit}'if shared.gauge else ' wires' gauge_name = f' x {shared.gauge} {shared.gauge_unit}' if shared.gauge else ' wires'
shield_name = ' shielded' if shared.shield else '' shield_name = ' shielded' if shared.shield else ''
name = f'Cable, {shared.wirecount}{gauge_name}{shield_name}' name = f'Cable{cable_type}, {shared.wirecount}{gauge_name}{shield_name}'
item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators} item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators,
bom_cables.append(item) 'manufacturer': shared.manufacturer, 'manufacturer part number': shared.manufacturer_part_number, 'internal part number': shared.internal_part_number}
bom_cables.append(item)
# bundles (ignores wirecount) # bundles (ignores wirecount)
wirelist = [] wirelist = []
# list all cables again, since bundles are represented as wires internally, with the category='bundle' set # list all cables again, since bundles are represented as wires internally, with the category='bundle' set
types = Counter([(v.category, v.gauge, v.gauge_unit, v.length) for v in self.cables.values()]) for bundle in self.cables.values():
for maintype in types: if bundle.category == 'bundle':
items = {k: v for k, v in self.cables.items() if (v.category, v.gauge, v.gauge_unit, v.length) == maintype} # add each wire from each bundle to the wirelist
shared = next(iter(items.values())) for index, color in enumerate(bundle.colors, 0):
# filter out cables that are not bundles wirelist.append({'type': bundle.type, 'gauge': bundle.gauge, 'gauge_unit': bundle.gauge_unit, 'length': bundle.length, 'color': color, 'designator': bundle.name,
if shared.category == 'bundle': 'manufacturer': index_if_list(bundle.manufacturer, index),
for bundle in items.values(): 'manufacturer part number': index_if_list(bundle.manufacturer_part_number, index),
# add each wire from each bundle to the wirelist 'internal part number': index_if_list(bundle.internal_part_number, index)})
for color in bundle.colors:
wirelist.append({'gauge': shared.gauge, 'gauge_unit': shared.gauge_unit,
'length': shared.length, 'color': color, 'designator': bundle.name})
# join similar wires from all the bundles to a single BOM item # join similar wires from all the bundles to a single BOM item
types = Counter([(v['gauge'], v['gauge_unit'], v['color']) for v in wirelist]) wire_group = lambda w: (w.get('type', None), w['gauge'], w['gauge_unit'], w['color'], w['manufacturer'], w['manufacturer part number'], w['internal part number'])
for maintype in types: for group in Counter([wire_group(v) for v in wirelist]):
items = [v for v in wirelist if (v['gauge'], v['gauge_unit'], v['color']) == maintype] items = [v for v in wirelist if wire_group(v) == group]
shared = items[0] shared = items[0]
designators = [i['designator'] for i in items] designators = [i['designator'] for i in items]
# remove duplicates designators = list(dict.fromkeys(designators)) # remove duplicates
designators = list(dict.fromkeys(designators))
designators.sort() designators.sort()
total_length = sum(i['length'] for i in items) total_length = sum(i['length'] for i in items)
gauge_name = f', {shared["gauge"]} {shared["gauge_unit"]}' if shared['gauge'] else '' wire_type = f', {remove_line_breaks(shared["type"])}' if shared.get('type', None) else ''
gauge_color = f', {shared["color"]}' if shared['color'] != '' else '' gauge_name = f', {shared["gauge"]} {shared["gauge_unit"]}' if shared.get('gauge', None) else ''
name = f'Wire{gauge_name}{gauge_color}' gauge_color = f', {shared["color"]}' if 'color' in shared != '' else ''
item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators} name = f'Wire{wire_type}{gauge_name}{gauge_color}'
item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators,
'manufacturer': shared['manufacturer'], 'manufacturer part number': shared['manufacturer part number'], 'internal part number': shared['internal part number']}
bom_cables.append(item) bom_cables.append(item)
bom_cables = sorted(bom_cables, key=lambda k: k['item']) # https://stackoverflow.com/a/73050 bom_cables = sorted(bom_cables, key=lambda k: k['item']) # sort list of dicts by their values (https://stackoverflow.com/a/73050)
bom.extend(bom_cables) bom.extend(bom_cables)
for item in self.additional_bom_items:
name = item['description'] if item.get('description', None) else ''
if isinstance(item.get('designators', None), List):
item['designators'].sort() # sort designators if a list is provided
item = {'item': name, 'qty': item.get('qty', None), 'unit': item.get('unit', None), 'designators': item.get('designators', None),
'manufacturer': item.get('manufacturer', None), 'manufacturer part number': item.get('manufacturer_part_number', None), 'internal part number': item.get('internal_part_number', None)}
bom_extra.append(item)
bom_extra = sorted(bom_extra, key=lambda k: k['item'])
bom.extend(bom_extra)
return bom return bom
def bom_list(self): def bom_list(self):
bom = self.bom() bom = self.bom()
keys = ['item', 'qty', 'unit', 'designators'] keys = ['item', 'qty', 'unit', 'designators'] # these BOM columns will always be included
for fieldname in ['manufacturer', 'manufacturer part number', 'internal part number']: # these optional BOM columns will only be included if at least one BOM item actually uses them
if any(fieldname in x and x.get(fieldname, None) for x in bom):
keys.append(fieldname)
bom_list = [] bom_list = []
bom_list.append([k.capitalize() for k in keys]) # create header row with keys bom_list.append([k.capitalize() for k in keys]) # create header row with keys
for item in bom: for item in bom:
item_list = [item.get(key, '') for key in keys] # fill missing values with blanks item_list = [item.get(key, '') for key in keys] # fill missing values with blanks
for i, subitem in enumerate(item_list): item_list = [', '.join(subitem) if isinstance(subitem, List) else subitem for subitem in item_list] # convert any lists into comma separated strings
if isinstance(subitem, List): # convert any lists into comma separated strings item_list = ['' if subitem is None else subitem for subitem in item_list] # if a field is missing for some (but not all) BOM items
item_list[i] = ', '.join(subitem)
bom_list.append(item_list) bom_list.append(item_list)
return bom_list return bom_list

View File

@ -9,8 +9,8 @@ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from wireviz import wireviz from wireviz import wireviz
demos = 2 # 2 demos = 2 # 2
examples = 10 # 10 examples = 10 # 9
tutorials = 7 # 7 tutorials = 8 # 7
if demos: if demos:
for i in range(1,demos+1): for i in range(1,demos+1):

View File

@ -3,54 +3,37 @@
import argparse import argparse
import os import os
from pathlib import Path
import sys import sys
from typing import Any, Tuple
import yaml import yaml
if __name__ == '__main__': if __name__ == '__main__':
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from wireviz.Harness import Harness from wireviz.Harness import Harness
from wireviz.wv_helper import expand
def parse(yaml_input, file_out=None, generate_bom=False): def parse(yaml_input: str, file_out: (str, Path) = None, return_types: (None, str, Tuple[str]) = None) -> Any:
"""
Parses yaml input string and does the high-level harness conversion
:param yaml_input: a string containing the yaml input data
:param file_out:
:param return_types: if None, then returns None; if the value is a string, then a
corresponding data format will be returned; if the value is a tuple of strings,
then for every valid format in the `return_types` tuple, another return type
will be generated and returned in the same order; currently supports:
- "png" - will return the PNG data
- "svg" - will return the SVG data
- "harness" - will return the `Harness` instance
"""
yaml_data = yaml.safe_load(yaml_input) yaml_data = yaml.safe_load(yaml_input)
def expand(yaml_data):
# yaml_data can be:
# - a singleton (normally str or int)
# - a list of str or int
# if str is of the format '#-#', it is treated as a range (inclusive) and expanded
output = []
if not isinstance(yaml_data, list):
yaml_data = [yaml_data]
for e in yaml_data:
e = str(e)
if '-' in e: # list of pins
a, b = tuple(map(int, e.split('-')))
if a < b:
for x in range(a, b + 1):
output.append(x)
elif a > b:
for x in range(a, b - 1, -1):
output.append(x)
elif a == b:
output.append(a)
else:
try:
x = int(e)
except Exception:
x = e
output.append(x)
return output
def check_designators(what, where):
for i, x in enumerate(what):
if x not in yaml_data[where[i]]:
return False
return True
harness = Harness() harness = Harness()
# add items # add items
@ -60,11 +43,12 @@ def parse(yaml_input, file_out=None, generate_bom=False):
if sec in yaml_data and type(yaml_data[sec]) == ty: if sec in yaml_data and type(yaml_data[sec]) == ty:
if len(yaml_data[sec]) > 0: if len(yaml_data[sec]) > 0:
if ty == dict: if ty == dict:
for key, o in yaml_data[sec].items(): for key, attribs in yaml_data[sec].items():
if sec == 'connectors': if sec == 'connectors':
harness.add_connector(name=key, **o) if not attribs.get('autogenerate', False):
harness.add_connector(name=key, **attribs)
elif sec == 'cables': elif sec == 'cables':
harness.add_cable(name=key, **o) harness.add_cable(name=key, **attribs)
elif sec == 'ferrules': elif sec == 'ferrules':
pass pass
else: else:
@ -76,113 +60,144 @@ def parse(yaml_input, file_out=None, generate_bom=False):
yaml_data[sec] = [] yaml_data[sec] = []
# add connections # add connections
ferrule_counter = 0
for connections in yaml_data['connections']:
if len(connections) == 3: # format: connector -- cable -- connector
for connection in connections: def check_designators(what, where): # helper function
if len(list(connection.keys())) != 1: # check that each entry in con has only one key, which is the designator for i, x in enumerate(what):
raise Exception('Too many keys') if x not in yaml_data[where[i]]:
return False
return True
from_name = list(connections[0].keys())[0] autogenerated_ids = {}
via_name = list(connections[1].keys())[0] for connection in yaml_data['connections']:
to_name = list(connections[2].keys())[0] # find first component (potentially nested inside list or dict)
first_item = connection[0]
if not check_designators([from_name, via_name, to_name], ('connectors', 'cables', 'connectors')): if isinstance(first_item, list):
print([from_name, via_name, to_name]) first_item = first_item[0]
raise Exception('Bad connection definition (3)') elif isinstance(first_item, dict):
first_item = list(first_item.keys())[0]
from_pins = expand(connections[0][from_name]) elif isinstance(first_item, str):
via_pins = expand(connections[1][via_name]) pass
to_pins = expand(connections[2][to_name])
if len(from_pins) != len(via_pins) or len(via_pins) != len(to_pins):
raise Exception('List length mismatch')
for (from_pin, via_pin, to_pin) in zip(from_pins, via_pins, to_pins):
harness.connect(from_name, from_pin, via_name, via_pin, to_name, to_pin)
elif len(connections) == 2:
for connection in connections:
if type(connection) is dict:
if len(list(connection.keys())) != 1: # check that each entry in con has only one key, which is the designator
raise Exception('Too many keys')
# hack to make the format for ferrules compatible with the formats for connectors and cables
if type(connections[0]) == str:
name = connections[0]
connections[0] = {}
connections[0][name] = name
if type(connections[1]) == str:
name = connections[1]
connections[1] = {}
connections[1][name] = name
from_name = list(connections[0].keys())[0]
to_name = list(connections[1].keys())[0]
con_cbl = check_designators([from_name, to_name], ('connectors', 'cables'))
cbl_con = check_designators([from_name, to_name], ('cables', 'connectors'))
con_con = check_designators([from_name, to_name], ('connectors', 'connectors'))
fer_cbl = check_designators([from_name, to_name], ('ferrules', 'cables'))
cbl_fer = check_designators([from_name, to_name], ('cables', 'ferrules'))
if not con_cbl and not cbl_con and not con_con and not fer_cbl and not cbl_fer:
raise Exception('Wrong designators')
from_pins = expand(connections[0][from_name])
to_pins = expand(connections[1][to_name])
if con_cbl or cbl_con or con_con:
if len(from_pins) != len(to_pins):
raise Exception('List length mismatch')
if con_cbl or cbl_con:
for (from_pin, to_pin) in zip(from_pins, to_pins):
if con_cbl:
harness.connect(from_name, from_pin, to_name, to_pin, None, None)
else: # cbl_con
harness.connect(None, None, from_name, from_pin, to_name, to_pin)
elif con_con:
cocon_coname = list(connections[0].keys())[0]
from_pins = expand(connections[0][from_name])
to_pins = expand(connections[1][to_name])
for (from_pin, to_pin) in zip(from_pins, to_pins):
harness.loop(cocon_coname, from_pin, to_pin)
if fer_cbl or cbl_fer:
from_pins = expand(connections[0][from_name])
to_pins = expand(connections[1][to_name])
if fer_cbl:
ferrule_name = from_name
cable_name = to_name
cable_pins = to_pins
else:
ferrule_name = to_name
cable_name = from_name
cable_pins = from_pins
ferrule_params = yaml_data['ferrules'][ferrule_name]
for cable_pin in cable_pins:
ferrule_counter = ferrule_counter + 1
ferrule_id = f'_F{ferrule_counter}'
harness.add_connector(ferrule_id, category='ferrule', **ferrule_params)
if fer_cbl:
harness.connect(ferrule_id, 1, cable_name, cable_pin, None, None)
else:
harness.connect(None, None, cable_name, cable_pin, ferrule_id, 1)
# check which section the first item belongs to
alternating_sections = ['connectors','cables']
for index, section in enumerate(alternating_sections):
if first_item in yaml_data[section]:
expected_index = index
break
else: else:
raise Exception('Wrong number of connection parameters') raise Exception('First item not found anywhere.')
expected_index = 1 - expected_index # flip once since it is flipped back at the *beginning* of every loop
harness.output(filename=file_out, fmt=('png', 'svg'), gen_bom=generate_bom, view=False) # check that all iterable items (lists and dicts) are the same length
# and that they are alternating between connectors and cables/bundles, starting with either
itemcount = None
for item in connection:
expected_index = 1 - expected_index # make sure items alternate between connectors and cables
expected_section = alternating_sections[expected_index]
if isinstance(item, list):
itemcount_new = len(item)
for subitem in item:
if not subitem in yaml_data[expected_section]:
raise Exception(f'{subitem} is not in {expected_section}')
elif isinstance(item, dict):
if len(item.keys()) != 1:
raise Exception('Dicts may contain only one key here!')
itemcount_new = len(expand(list(item.values())[0]))
subitem = list(item.keys())[0]
if not subitem in yaml_data[expected_section]:
raise Exception(f'{subitem} is not in {expected_section}')
elif isinstance(item, str):
if not item in yaml_data[expected_section]:
raise Exception(f'{item} is not in {expected_section}')
continue
if itemcount is not None and itemcount_new != itemcount:
raise Exception('All lists and dict lists must be the same length!')
itemcount = itemcount_new
if itemcount is None:
raise Exception('No item revealed the number of connections to make!')
# populate connection list
connection_list = []
for i, item in enumerate(connection):
if isinstance(item, str): # one single-pin component was specified
sublist = []
for i in range(1, itemcount + 1):
if yaml_data['connectors'][item].get('autogenerate'):
autogenerated_ids[item] = autogenerated_ids.get(item, 0) + 1
new_id = f'_{item}_{autogenerated_ids[item]}'
harness.add_connector(new_id, **yaml_data['connectors'][item])
sublist.append([new_id, 1])
else:
sublist.append([item, 1])
connection_list.append(sublist)
elif isinstance(item, list): # a list of single-pin components were specified
sublist = []
for subitem in item:
if yaml_data['connectors'][subitem].get('autogenerate'):
autogenerated_ids[subitem] = autogenerated_ids.get(subitem, 0) + 1
new_id = f'_{subitem}_{autogenerated_ids[subitem]}'
harness.add_connector(new_id, **yaml_data['connectors'][subitem])
sublist.append([new_id, 1])
else:
sublist.append([subitem, 1])
connection_list.append(sublist)
elif isinstance(item, dict): # a component with multiple pins was specified
sublist = []
id = list(item.keys())[0]
pins = expand(list(item.values())[0])
for pin in pins:
sublist.append([id, pin])
connection_list.append(sublist)
else:
raise Exception('Unexpected item in connection list')
# actually connect components using connection list
for i, item in enumerate(connection_list):
id = item[0][0] # TODO: make more elegant/robust/pythonic
if id in harness.cables:
for j, con in enumerate(item):
if i == 0: # list started with a cable, no connector to join on left side
from_name = None
from_pin = None
else:
from_name = connection_list[i-1][j][0]
from_pin = connection_list[i-1][j][1]
via_name = item[j][0]
via_pin = item[j][1]
if i == len(connection_list) - 1: # list ends with a cable, no connector to join on right side
to_name = None
to_pin = None
else:
to_name = connection_list[i+1][j][0]
to_pin = connection_list[i+1][j][1]
harness.connect(from_name, from_pin, via_name, via_pin, to_name, to_pin)
if "additional_bom_items" in yaml_data:
for line in yaml_data["additional_bom_items"]:
harness.add_bom_item(line)
if file_out is not None:
harness.output(filename=file_out, fmt=('png', 'svg'), view=False)
if return_types is not None:
returns = []
if isinstance(return_types, str): # only one return type speficied
return_types = [return_types]
return_types = [t.lower() for t in return_types]
for rt in return_types:
if rt == 'png':
returns.append(harness.png)
if rt == 'svg':
returns.append(harness.svg)
if rt == 'harness':
returns.append(harness)
return tuple(returns) if len(returns) != 1 else returns[0]
def parse_file(yaml_file, file_out=None, generate_bom=False): def parse_file(yaml_file: str, file_out: (str, Path) = None) -> None:
with open(yaml_file, 'r') as file: with open(yaml_file, 'r') as file:
yaml_input = file.read() yaml_input = file.read()
@ -191,7 +206,7 @@ def parse_file(yaml_file, file_out=None, generate_bom=False):
file_out = fn file_out = fn
file_out = os.path.abspath(file_out) file_out = os.path.abspath(file_out)
parse(yaml_input, file_out=file_out, generate_bom=generate_bom) parse(yaml_input, file_out=file_out)
def parse_cmdline(): def parse_cmdline():
@ -232,7 +247,7 @@ def main():
file_out = args.output_file file_out = args.output_file
file_out = os.path.abspath(file_out) file_out = os.path.abspath(file_out)
parse(yaml_input, file_out=file_out, generate_bom=args.generate_bom) parse(yaml_input, file_out=file_out)
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -30,19 +30,52 @@ def awg_equiv(mm2):
def mm2_equiv(awg): def mm2_equiv(awg):
return mm2_equiv_table.get(str(awg), 'Unknown') return mm2_equiv_table.get(str(awg), 'Unknown')
def nested(inp): def nested_html_table(rows):
l = [] # input: list, each item may be scalar or list
for x in inp: # output: a parent table with one child table per parent item that is list, and one cell per parent item that is scalar
if isinstance(x, list): # purpose: create the appearance of one table, where cell widths are independent between rows
if len(x) > 0: html = '<table border="0" cellspacing="0" cellpadding="0">'
n = nested(x) for row in rows:
if n != '': if isinstance(row, List):
l.append('{' + n + '}') if len(row) > 0 and any(row):
html = f'{html}<tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>'
for cell in row:
if cell is not None:
html = f'{html}<td balign="left">{cell}</td>'
html = f'{html}</tr></table></td></tr>'
elif row is not None:
html = f'{html}<tr><td>{row}</td></tr>'
html = f'{html}</table>'
return html
def expand(yaml_data):
# yaml_data can be:
# - a singleton (normally str or int)
# - a list of str or int
# if str is of the format '#-#', it is treated as a range (inclusive) and expanded
output = []
if not isinstance(yaml_data, list):
yaml_data = [yaml_data]
for e in yaml_data:
e = str(e)
if '-' in e: # list of pins
a, b = tuple(map(int, e.split('-')))
if a < b:
for x in range(a, b + 1):
output.append(x)
elif a > b:
for x in range(a, b - 1, -1):
output.append(x)
elif a == b:
output.append(a)
else: else:
if x is not None: try:
if x != '': x = int(e)
l.append(str(x)) except Exception:
return '|'.join(l) x = e
output.append(x)
return output
def int2tuple(inp): def int2tuple(inp):
@ -65,3 +98,16 @@ def tuplelist2tsv(inp, header=None):
for row in inp: for row in inp:
output = output + '\t'.join(str(item) for item in row) + '\n' output = output + '\t'.join(str(item) for item in row) + '\n'
return output return output
# Return the value indexed if it is a list, or simply the value otherwise.
def index_if_list(value, index):
return value[index] if isinstance(value, list) else value
def html_line_breaks(inp):
return inp.replace('\n', '<br />') if isinstance(inp, str) else inp
def graphviz_line_breaks(inp):
return inp.replace('\n', '\\n') if isinstance(inp, str) else inp # \n generates centered new lines. http://www.graphviz.org/doc/info/attrs.html#k:escString
def remove_line_breaks(inp):
return inp.replace('\n', ' ').rstrip() if isinstance(inp, str) else inp

View File

@ -203,9 +203,9 @@ connectors:
pinout: [+12V, GND, GND, +5V] pinout: [+12V, GND, GND, +5V]
type: Molex 8981 type: Molex 8981
subtype: female subtype: female
ferrules: # ferrules
F1: F1:
category: ferrule
autogenerate: true
type: Ferrule, crimp type: Ferrule, crimp
subtype: 0.5 mm² subtype: 0.5 mm²
color: OG # optional color color: OG # optional color
@ -253,9 +253,9 @@ connectors:
type: Ferrule, crimp type: Ferrule, crimp
subtype: 1.0 mm² subtype: 1.0 mm²
color: YE color: YE
ferrules: # ferrules
F_05: F_05:
category: ferrule
autogenerate: true
type: Ferrule, crimp type: Ferrule, crimp
subtype: 0.5 mm² subtype: 0.5 mm²
color: OG # optional color color: OG # optional color
@ -361,3 +361,63 @@ Output:
[Bill of Materials](tutorial07.bom.tsv) [Bill of Materials](tutorial07.bom.tsv)
## 8 - Part numbers
* Part number information can be added to parts
* Only provided fields will be added to the diagram and bom
* Bundles can have part information specified by wire
[Source](tutorial08.yml):
```yaml
connectors:
X1: &template1 # define a template for later use
type: Molex KK 254
pincount: 4
subtype: female
manufacturer: Molex
manufacturer_part_number: 22013047
X2:
<<: *template1 # reuse template
internal_part_number: CON4
X3:
<<: *template1 # reuse template
cables:
W1:
wirecount: 4
length: 1
gauge: 0.25 mm2
color_code: IEC
manufacturer: CablesCo
manufacturer_part_number: ABC123
internal_part_number: CAB1
W2:
category: bundle
length: 1
gauge: 0.25 mm2
colors: [YE, BK, BK, RD]
manufacturer: [WiresCo,WiresCo,WiresCo,WiresCo]
manufacturer_part_number: [W1-YE,W1-BK,W1-BK,W1-RD]
internal_part_number: [WIRE1,WIRE2,WIRE2,WIRE3]
connections:
-
- X1: [1-4]
- W1: [1-4]
- X2: [1-4]
-
- X1: [1-4]
- W2: [1-4]
- X3: [1-4]
```
Output:
![](tutorial08.png)
[Bill of Materials](tutorial08.bom.tsv)

View File

@ -3,9 +3,9 @@ connectors:
pinout: [+12V, GND, GND, +5V] pinout: [+12V, GND, GND, +5V]
type: Molex 8981 type: Molex 8981
subtype: female subtype: female
ferrules: # ferrules
F1: F1:
category: ferrule
autogenerate: true
type: Ferrule, crimp type: Ferrule, crimp
subtype: 0.5 mm² subtype: 0.5 mm²
color: OG # optional color color: OG # optional color

View File

@ -8,9 +8,9 @@ connectors:
type: Ferrule, crimp type: Ferrule, crimp
subtype: 1.0 mm² subtype: 1.0 mm²
color: YE color: YE
ferrules: # ferrules
F_05: F_05:
category: ferrule
autogenerate: true
type: Ferrule, crimp type: Ferrule, crimp
subtype: 0.5 mm² subtype: 0.5 mm²
color: OG # optional color color: OG # optional color

View File

@ -0,0 +1,7 @@
Item Qty Unit Designators Manufacturer Manufacturer part number Internal part number
Connector, Molex KK 254, female, 4 pins 2 X1, X3 Molex 22013047
Connector, Molex KK 254, female, 4 pins 1 X2 Molex 22013047 CON4
Cable, 4 x 0.25 mm² 1 m W1 CablesCo ABC123 CAB1
Wire, 0.25 mm², BK 2 m W2 WiresCo W1-BK WIRE2
Wire, 0.25 mm², RD 1 m W2 WiresCo W1-RD WIRE3
Wire, 0.25 mm², YE 1 m W2 WiresCo W1-YE WIRE1
1 Item Qty Unit Designators Manufacturer Manufacturer part number Internal part number
2 Connector, Molex KK 254, female, 4 pins 2 X1, X3 Molex 22013047
3 Connector, Molex KK 254, female, 4 pins 1 X2 Molex 22013047 CON4
4 Cable, 4 x 0.25 mm² 1 m W1 CablesCo ABC123 CAB1
5 Wire, 0.25 mm², BK 2 m W2 WiresCo W1-BK WIRE2
6 Wire, 0.25 mm², RD 1 m W2 WiresCo W1-RD WIRE3
7 Wire, 0.25 mm², YE 1 m W2 WiresCo W1-YE WIRE1

36
tutorial/tutorial08.gv Normal file
View File

@ -0,0 +1,36 @@
graph {
// Graph generated by WireViz
// https://github.com/formatc1702/WireViz
graph [bgcolor=white fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor=white fontname=arial shape=record style=filled]
edge [fontname=arial style=bold]
X1 [label="X1|{Molex|MPN: 22013047}|{Molex KK 254|female|4-pin}|{{<p1r>1|<p2r>2|<p3r>3|<p4r>4}}"]
X2 [label="X2|{Molex|MPN: 22013047|IPN: CON4}|{Molex KK 254|female|4-pin}|{{<p1l>1|<p2l>2|<p3l>3|<p4l>4}}"]
X3 [label="X3|{Molex|MPN: 22013047}|{Molex KK 254|female|4-pin}|{{<p1l>1|<p2l>2|<p3l>3|<p4l>4}}"]
edge [color="#000000:#666600:#000000"]
X1:p1r:e -- W1:w1:w
W1:w1:e -- X2:p1l:w
edge [color="#000000:#ff0000:#000000"]
X1:p2r:e -- W1:w2:w
W1:w2:e -- X2:p2l:w
edge [color="#000000:#ff8000:#000000"]
X1:p3r:e -- W1:w3:w
W1:w3:e -- X2:p3l:w
edge [color="#000000:#ffff00:#000000"]
X1:p4r:e -- W1:w4:w
W1:w4:e -- X2:p4l:w
W1 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="3">W1</td></tr><tr><td colspan="3" cellpadding="0"><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td sides="R">CablesCo</td><td sides="R">MPN: ABC123</td><td border="0">IPN: CAB1</td></tr></table></td></tr><tr><td>4x</td><td>0.25 mm²</td><td>1 m</td></tr></table></td></tr><tr><td>&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>BN</td><td>X2:1</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#666600" border="2" sides="tb" port="w1"></td></tr><tr><td>X1:2</td><td>RD</td><td>X2:2</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff0000" border="2" sides="tb" port="w2"></td></tr><tr><td>X1:3</td><td>OG</td><td>X2:3</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff8000" border="2" sides="tb" port="w3"></td></tr><tr><td>X1:4</td><td>YE</td><td>X2:4</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ffff00" border="2" sides="tb" port="w4"></td></tr><tr><td>&nbsp;</td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style=""]
edge [color="#000000:#ffff00:#000000"]
X1:p1r:e -- W2:w1:w
W2:w1:e -- X3:p1l:w
edge [color="#000000:#000000:#000000"]
X1:p2r:e -- W2:w2:w
W2:w2:e -- X3:p2l:w
edge [color="#000000:#000000:#000000"]
X1:p3r:e -- W2:w3:w
W2:w3:e -- X3:p3l:w
edge [color="#000000:#ff0000:#000000"]
X1:p4r:e -- W2:w4:w
W2:w4:e -- X3:p4l:w
W2 [label=<<table border="0" cellspacing="0" cellpadding="0"><tr><td><table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr><td colspan="3">W2</td></tr><tr><td>4x</td><td>0.25 mm²</td><td>1 m</td></tr></table></td></tr><tr><td>&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellborder="0"><tr><td>X1:1</td><td>YE</td><td>X3:1</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ffff00" border="2" sides="tb" port="w1"></td></tr><tr><td colspan="3"><table border="0" cellspacing="0" cellborder="0"><tr><td>WiresCo</td><td>MPN: W1-YE</td><td>IPN: WIRE1</td></tr></table></td></tr><tr><td>X1:2</td><td>BK</td><td>X3:2</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#000000" border="2" sides="tb" port="w2"></td></tr><tr><td colspan="3"><table border="0" cellspacing="0" cellborder="0"><tr><td>WiresCo</td><td>MPN: W1-BK</td><td>IPN: WIRE2</td></tr></table></td></tr><tr><td>X1:3</td><td>BK</td><td>X3:3</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#000000" border="2" sides="tb" port="w3"></td></tr><tr><td colspan="3"><table border="0" cellspacing="0" cellborder="0"><tr><td>WiresCo</td><td>MPN: W1-BK</td><td>IPN: WIRE2</td></tr></table></td></tr><tr><td>X1:4</td><td>RD</td><td>X3:4</td></tr><tr><td colspan="3" cellpadding="0" height="6" bgcolor="#ff0000" border="2" sides="tb" port="w4"></td></tr><tr><td colspan="3"><table border="0" cellspacing="0" cellborder="0"><tr><td>WiresCo</td><td>MPN: W1-RD</td><td>IPN: WIRE3</td></tr></table></td></tr><tr><td>&nbsp;</td></tr></table></td></tr></table>> fillcolor=white margin=0 shape=box style="filled,dashed"]
}

295
tutorial/tutorial08.html Normal file
View File

@ -0,0 +1,295 @@
<html><body style="font-family:Arial"><h1>Diagram</h1><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Pages: 1 -->
<svg width="993pt" height="510pt"
viewBox="0.00 0.00 993.00 509.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 505.5)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-505.5 989,-505.5 989,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="white" stroke="black" points="0,-207.5 0,-368.5 206,-368.5 206,-207.5 0,-207.5"/>
<text text-anchor="middle" x="103" y="-353.3" font-family="arial" font-size="14.00">X1</text>
<polyline fill="none" stroke="black" points="0,-345.5 206,-345.5 "/>
<text text-anchor="middle" x="36" y="-330.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="72,-322.5 72,-345.5 "/>
<text text-anchor="middle" x="139" y="-330.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="0,-322.5 206,-322.5 "/>
<text text-anchor="middle" x="50.5" y="-307.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="101,-299.5 101,-322.5 "/>
<text text-anchor="middle" x="130" y="-307.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="159,-299.5 159,-322.5 "/>
<text text-anchor="middle" x="182.5" y="-307.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="0,-299.5 206,-299.5 "/>
<text text-anchor="middle" x="103" y="-284.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="0,-276.5 206,-276.5 "/>
<text text-anchor="middle" x="103" y="-261.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="0,-253.5 206,-253.5 "/>
<text text-anchor="middle" x="103" y="-238.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="0,-230.5 206,-230.5 "/>
<text text-anchor="middle" x="103" y="-215.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="none" stroke="black" points="588,-501.5 350,-501.5 350,-296.5 588,-296.5 588,-501.5"/>
<polygon fill="none" stroke="black" points="350,-478 350,-501 588,-501 588,-478 350,-478"/>
<text text-anchor="start" x="458" y="-485.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="350,-453 350,-478 588,-478 588,-453 350,-453"/>
<polyline fill="none" stroke="black" points="419,-454 419,-477 "/>
<text text-anchor="start" x="355" y="-461.8" font-family="arial" font-size="14.00">CablesCo</text>
<polyline fill="none" stroke="black" points="515,-454 515,-477 "/>
<text text-anchor="start" x="423" y="-461.8" font-family="arial" font-size="14.00">MPN: ABC123</text>
<text text-anchor="start" x="518" y="-461.8" font-family="arial" font-size="14.00">IPN: CAB1</text>
<polygon fill="none" stroke="black" points="350,-430 350,-453 431,-453 431,-430 350,-430"/>
<text text-anchor="start" x="383" y="-437.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="431,-430 431,-453 527,-453 527,-430 431,-430"/>
<text text-anchor="start" x="449.5" y="-437.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="527,-430 527,-453 588,-453 588,-430 527,-430"/>
<text text-anchor="start" x="545.5" y="-437.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="467" y="-418.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="376.5" y="-401.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="459.5" y="-401.8" font-family="arial" font-size="14.00">BN</text>
<text text-anchor="start" x="533.5" y="-401.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#666600" stroke="transparent" points="350,-390 350,-396 588,-396 588,-390 350,-390"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-391 587,-391 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-395 351,-395 "/>
<text text-anchor="start" x="376.5" y="-376.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="459" y="-376.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="533.5" y="-376.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#ff0000" stroke="transparent" stroke-width="2" points="350,-365 350,-371 588,-371 588,-365 350,-365"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-366 587,-366 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-370 351,-370 "/>
<text text-anchor="start" x="376.5" y="-351.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="457.5" y="-351.8" font-family="arial" font-size="14.00">OG</text>
<text text-anchor="start" x="533.5" y="-351.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#ff8000" stroke="transparent" stroke-width="2" points="350,-340 350,-346 588,-346 588,-340 350,-340"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-341 587,-341 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-345 351,-345 "/>
<text text-anchor="start" x="376.5" y="-326.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="459.5" y="-326.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="533.5" y="-326.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350,-315 350,-321 588,-321 588,-315 350,-315"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-316 587,-316 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-320 351,-320 "/>
<text text-anchor="start" x="388.5" y="-301.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-286C287.19,-288.27 272.77,-393.27 350,-391"/>
<path fill="none" stroke="#666600" stroke-width="2" d="M206,-288C285.21,-288 270.79,-393 350,-393"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-290C283.23,-287.73 268.81,-392.73 350,-395"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-263C286.67,-265.26 273.3,-368.26 350,-366"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-265C284.69,-265 271.31,-368 350,-368"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-267C282.7,-264.74 269.33,-367.74 350,-370"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-240C286.16,-242.24 273.81,-343.24 350,-341"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M206,-242C284.17,-242 271.83,-343 350,-343"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-244C282.19,-241.76 269.84,-342.76 350,-345"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-217C285.65,-219.23 274.32,-318.23 350,-316"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-219C283.67,-219 272.33,-318 350,-318"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-221C281.68,-218.77 270.35,-317.77 350,-320"/>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="582.5,-272 355.5,-272 355.5,0 582.5,0 582.5,-272"/>
<polygon fill="none" stroke="black" points="356,-249 356,-272 583,-272 583,-249 356,-249"/>
<text text-anchor="start" x="458.5" y="-256.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="356,-226 356,-249 414,-249 414,-226 356,-226"/>
<text text-anchor="start" x="377.5" y="-233.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="414,-226 414,-249 516,-249 516,-226 414,-226"/>
<text text-anchor="start" x="435.5" y="-233.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="516,-226 516,-249 583,-249 583,-226 516,-226"/>
<text text-anchor="start" x="537.5" y="-233.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="467.5" y="-214.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="392.5" y="-197.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="477" y="-197.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="535.5" y="-197.8" font-family="arial" font-size="14.00">X3:1</text>
<polygon fill="#ffff00" stroke="transparent" points="356,-186 356,-192 583,-192 583,-186 356,-186"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-187 582,-187 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-191 357,-191 "/>
<text text-anchor="start" x="360.5" y="-170.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-170.8" font-family="arial" font-size="14.00">MPN: W1&#45;YE</text>
<text text-anchor="start" x="505" y="-170.8" font-family="arial" font-size="14.00">IPN: WIRE1</text>
<text text-anchor="start" x="392.5" y="-149.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="477" y="-149.8" font-family="arial" font-size="14.00">BK</text>
<text text-anchor="start" x="535.5" y="-149.8" font-family="arial" font-size="14.00">X3:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-138 356,-144 583,-144 583,-138 356,-138"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-139 582,-139 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-143 357,-143 "/>
<text text-anchor="start" x="360.5" y="-122.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-122.8" font-family="arial" font-size="14.00">MPN: W1&#45;BK</text>
<text text-anchor="start" x="505" y="-122.8" font-family="arial" font-size="14.00">IPN: WIRE2</text>
<text text-anchor="start" x="392.5" y="-101.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="477" y="-101.8" font-family="arial" font-size="14.00">BK</text>
<text text-anchor="start" x="535.5" y="-101.8" font-family="arial" font-size="14.00">X3:3</text>
<polygon fill="#000000" stroke="transparent" points="356,-90 356,-96 583,-96 583,-90 356,-90"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-91 582,-91 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-95 357,-95 "/>
<text text-anchor="start" x="360.5" y="-74.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-74.8" font-family="arial" font-size="14.00">MPN: W1&#45;BK</text>
<text text-anchor="start" x="505" y="-74.8" font-family="arial" font-size="14.00">IPN: WIRE2</text>
<text text-anchor="start" x="392.5" y="-53.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="476.5" y="-53.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="535.5" y="-53.8" font-family="arial" font-size="14.00">X3:4</text>
<polygon fill="#ff0000" stroke="transparent" points="356,-42 356,-48 583,-48 583,-42 356,-42"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-43 582,-43 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-47 357,-47 "/>
<text text-anchor="start" x="360" y="-26.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="417" y="-26.8" font-family="arial" font-size="14.00">MPN: W1&#45;RD</text>
<text text-anchor="start" x="505" y="-26.8" font-family="arial" font-size="14.00">IPN: WIRE3</text>
<text text-anchor="start" x="404.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-286C283.52,-288.2 273.5,-189.2 355,-187"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-288C285.51,-288 275.49,-189 355,-189"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-290C287.5,-287.8 277.48,-188.8 355,-191"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-263C290.19,-265.37 266.88,-141.37 355,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-265C292.15,-265 268.85,-141 355,-141"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-267C294.12,-264.63 270.81,-140.63 355,-143"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-240C297.72,-242.5 259.41,-93.5 355,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-242C299.65,-242 261.35,-93 355,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-244C301.59,-241.5 263.28,-92.5 355,-95"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-217C305.9,-219.6 251.28,-45.6 355,-43"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-219C307.81,-219 253.19,-45 355,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-221C309.72,-218.4 255.1,-44.4 355,-47"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="white" stroke="black" points="732,-309.5 732,-470.5 985,-470.5 985,-309.5 732,-309.5"/>
<text text-anchor="middle" x="858.5" y="-455.3" font-family="arial" font-size="14.00">X2</text>
<polyline fill="none" stroke="black" points="732,-447.5 985,-447.5 "/>
<text text-anchor="middle" x="758.5" y="-432.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="785,-424.5 785,-447.5 "/>
<text text-anchor="middle" x="842.5" y="-432.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="900,-424.5 900,-447.5 "/>
<text text-anchor="middle" x="942.5" y="-432.3" font-family="arial" font-size="14.00">IPN: CON4</text>
<polyline fill="none" stroke="black" points="732,-424.5 985,-424.5 "/>
<text text-anchor="middle" x="790" y="-409.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="848,-401.5 848,-424.5 "/>
<text text-anchor="middle" x="885" y="-409.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="922,-401.5 922,-424.5 "/>
<text text-anchor="middle" x="953.5" y="-409.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="732,-401.5 985,-401.5 "/>
<text text-anchor="middle" x="858.5" y="-386.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="732,-378.5 985,-378.5 "/>
<text text-anchor="middle" x="858.5" y="-363.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="732,-355.5 985,-355.5 "/>
<text text-anchor="middle" x="858.5" y="-340.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="732,-332.5 985,-332.5 "/>
<text text-anchor="middle" x="858.5" y="-317.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="white" stroke="black" points="755.5,-71.5 755.5,-232.5 961.5,-232.5 961.5,-71.5 755.5,-71.5"/>
<text text-anchor="middle" x="858.5" y="-217.3" font-family="arial" font-size="14.00">X3</text>
<polyline fill="none" stroke="black" points="755.5,-209.5 961.5,-209.5 "/>
<text text-anchor="middle" x="791.5" y="-194.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="827.5,-186.5 827.5,-209.5 "/>
<text text-anchor="middle" x="894.5" y="-194.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="755.5,-186.5 961.5,-186.5 "/>
<text text-anchor="middle" x="806" y="-171.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="856.5,-163.5 856.5,-186.5 "/>
<text text-anchor="middle" x="885.5" y="-171.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="914.5,-163.5 914.5,-186.5 "/>
<text text-anchor="middle" x="938" y="-171.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="755.5,-163.5 961.5,-163.5 "/>
<text text-anchor="middle" x="858.5" y="-148.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="755.5,-140.5 961.5,-140.5 "/>
<text text-anchor="middle" x="858.5" y="-125.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="755.5,-117.5 961.5,-117.5 "/>
<text text-anchor="middle" x="858.5" y="-102.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="755.5,-94.5 961.5,-94.5 "/>
<text text-anchor="middle" x="858.5" y="-79.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-391C651.64,-391.03 667.62,-388.03 732,-388"/>
<path fill="none" stroke="#666600" stroke-width="2" d="M588,-393C652.01,-393 667.99,-390 732,-390"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-395C652.38,-394.97 668.36,-391.97 732,-392"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-366C651.88,-366 667.87,-365 732,-365"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M588,-368C652,-368 668,-367 732,-367"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-370C652.13,-370 668.12,-369 732,-369"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-341C652.13,-341 668.12,-342 732,-342"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M588,-343C652,-343 668,-344 732,-344"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-345C651.88,-345 667.87,-346 732,-346"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-316C652.38,-316.03 668.36,-319.03 732,-319"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M588,-318C652.01,-318 667.99,-321 732,-321"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-320C651.64,-319.97 667.62,-322.97 732,-323"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-187C659.7,-188.23 675.11,-151.23 754.5,-150"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M584,-189C661.54,-189 676.96,-152 754.5,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-191C663.39,-189.77 678.8,-152.77 754.5,-154"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-139C658.88,-139.32 677.45,-127.32 754.5,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-141C659.97,-141 678.53,-129 754.5,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-143C661.05,-142.68 679.62,-130.68 754.5,-131"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-91C661.15,-91.36 679.65,-104.36 754.5,-104"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-93C660,-93 678.5,-106 754.5,-106"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-95C658.85,-94.64 677.35,-107.64 754.5,-108"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-43C663.49,-44.26 678.72,-82.26 754.5,-81"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M584,-45C661.64,-45 676.86,-83 754.5,-83"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-47C659.78,-45.74 675.01,-83.74 754.5,-85"/>
</g>
</g>
</svg>
<h1>Bill of Materials</h1><table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px"><tr><th align="left" style="border:1px solid #000000; padding: 8px">Item</th><th align="left" style="border:1px solid #000000; padding: 8px">Qty</th><th align="left" style="border:1px solid #000000; padding: 8px">Unit</th><th align="left" style="border:1px solid #000000; padding: 8px">Designators</th><th align="left" style="border:1px solid #000000; padding: 8px">Manufacturer</th><th align="left" style="border:1px solid #000000; padding: 8px">Manufacturer part number</th><th align="left" style="border:1px solid #000000; padding: 8px">Internal part number</th></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">2</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X1, X3</td><td style="border:1px solid #000000; padding: 4px">Molex</td><td style="border:1px solid #000000; padding: 4px">22013047</td><td style="border:1px solid #000000; padding: 4px"></td></tr><tr><td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td><td align="right" style="border:1px solid #000000; padding: 4px">1</td><td style="border:1px solid #000000; padding: 4px"></td><td style="border:1px solid #000000; padding: 4px">X2</td><td style="border:1px solid #000000; padding: 4px">Molex</td><td style="border:1px solid #000000; padding: 4px">22013047</td><td style="border:1px solid #000000; padding: 4px">CON4</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Cable, 4 x 0.25 mm²</td><td align="right" style="border:1px solid #000000; padding: 4px">1</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W1</td><td style="border:1px solid #000000; padding: 4px">CablesCo</td><td style="border:1px solid #000000; padding: 4px">ABC123</td><td style="border:1px solid #000000; padding: 4px">CAB1</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², BK</td><td align="right" style="border:1px solid #000000; padding: 4px">2</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W2</td><td style="border:1px solid #000000; padding: 4px">WiresCo</td><td style="border:1px solid #000000; padding: 4px">W1-BK</td><td style="border:1px solid #000000; padding: 4px">WIRE2</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², RD</td><td align="right" style="border:1px solid #000000; padding: 4px">1</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W2</td><td style="border:1px solid #000000; padding: 4px">WiresCo</td><td style="border:1px solid #000000; padding: 4px">W1-RD</td><td style="border:1px solid #000000; padding: 4px">WIRE3</td></tr><tr><td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm², YE</td><td align="right" style="border:1px solid #000000; padding: 4px">1</td><td style="border:1px solid #000000; padding: 4px">m</td><td style="border:1px solid #000000; padding: 4px">W2</td><td style="border:1px solid #000000; padding: 4px">WiresCo</td><td style="border:1px solid #000000; padding: 4px">W1-YE</td><td style="border:1px solid #000000; padding: 4px">WIRE1</td></tr></table></body></html>

5
tutorial/tutorial08.md Normal file
View File

@ -0,0 +1,5 @@
## Part numbers
* Part number information can be added to parts
* Only provided fields will be added to the diagram and bom
* Bundles can have part information specified by wire

BIN
tutorial/tutorial08.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

294
tutorial/tutorial08.svg Normal file
View File

@ -0,0 +1,294 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Pages: 1 -->
<svg width="993pt" height="510pt"
viewBox="0.00 0.00 993.00 509.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 505.5)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-505.5 989,-505.5 989,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="white" stroke="black" points="0,-207.5 0,-368.5 206,-368.5 206,-207.5 0,-207.5"/>
<text text-anchor="middle" x="103" y="-353.3" font-family="arial" font-size="14.00">X1</text>
<polyline fill="none" stroke="black" points="0,-345.5 206,-345.5 "/>
<text text-anchor="middle" x="36" y="-330.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="72,-322.5 72,-345.5 "/>
<text text-anchor="middle" x="139" y="-330.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="0,-322.5 206,-322.5 "/>
<text text-anchor="middle" x="50.5" y="-307.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="101,-299.5 101,-322.5 "/>
<text text-anchor="middle" x="130" y="-307.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="159,-299.5 159,-322.5 "/>
<text text-anchor="middle" x="182.5" y="-307.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="0,-299.5 206,-299.5 "/>
<text text-anchor="middle" x="103" y="-284.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="0,-276.5 206,-276.5 "/>
<text text-anchor="middle" x="103" y="-261.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="0,-253.5 206,-253.5 "/>
<text text-anchor="middle" x="103" y="-238.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="0,-230.5 206,-230.5 "/>
<text text-anchor="middle" x="103" y="-215.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="none" stroke="black" points="588,-501.5 350,-501.5 350,-296.5 588,-296.5 588,-501.5"/>
<polygon fill="none" stroke="black" points="350,-478 350,-501 588,-501 588,-478 350,-478"/>
<text text-anchor="start" x="458" y="-485.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="350,-453 350,-478 588,-478 588,-453 350,-453"/>
<polyline fill="none" stroke="black" points="419,-454 419,-477 "/>
<text text-anchor="start" x="355" y="-461.8" font-family="arial" font-size="14.00">CablesCo</text>
<polyline fill="none" stroke="black" points="515,-454 515,-477 "/>
<text text-anchor="start" x="423" y="-461.8" font-family="arial" font-size="14.00">MPN: ABC123</text>
<text text-anchor="start" x="518" y="-461.8" font-family="arial" font-size="14.00">IPN: CAB1</text>
<polygon fill="none" stroke="black" points="350,-430 350,-453 431,-453 431,-430 350,-430"/>
<text text-anchor="start" x="383" y="-437.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="431,-430 431,-453 527,-453 527,-430 431,-430"/>
<text text-anchor="start" x="449.5" y="-437.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="527,-430 527,-453 588,-453 588,-430 527,-430"/>
<text text-anchor="start" x="545.5" y="-437.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="467" y="-418.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="376.5" y="-401.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="459.5" y="-401.8" font-family="arial" font-size="14.00">BN</text>
<text text-anchor="start" x="533.5" y="-401.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#666600" stroke="transparent" points="350,-390 350,-396 588,-396 588,-390 350,-390"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-391 587,-391 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-395 351,-395 "/>
<text text-anchor="start" x="376.5" y="-376.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="459" y="-376.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="533.5" y="-376.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#ff0000" stroke="transparent" stroke-width="2" points="350,-365 350,-371 588,-371 588,-365 350,-365"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-366 587,-366 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-370 351,-370 "/>
<text text-anchor="start" x="376.5" y="-351.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="457.5" y="-351.8" font-family="arial" font-size="14.00">OG</text>
<text text-anchor="start" x="533.5" y="-351.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#ff8000" stroke="transparent" stroke-width="2" points="350,-340 350,-346 588,-346 588,-340 350,-340"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-341 587,-341 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-345 351,-345 "/>
<text text-anchor="start" x="376.5" y="-326.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="459.5" y="-326.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="533.5" y="-326.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#ffff00" stroke="transparent" stroke-width="2" points="350,-315 350,-321 588,-321 588,-315 350,-315"/>
<polyline fill="none" stroke="black" stroke-width="2" points="351,-316 587,-316 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="587,-320 351,-320 "/>
<text text-anchor="start" x="388.5" y="-301.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-286C287.19,-288.27 272.77,-393.27 350,-391"/>
<path fill="none" stroke="#666600" stroke-width="2" d="M206,-288C285.21,-288 270.79,-393 350,-393"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-290C283.23,-287.73 268.81,-392.73 350,-395"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-263C286.67,-265.26 273.3,-368.26 350,-366"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-265C284.69,-265 271.31,-368 350,-368"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-267C282.7,-264.74 269.33,-367.74 350,-370"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-240C286.16,-242.24 273.81,-343.24 350,-341"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M206,-242C284.17,-242 271.83,-343 350,-343"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-244C282.19,-241.76 269.84,-342.76 350,-345"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-217C285.65,-219.23 274.32,-318.23 350,-316"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-219C283.67,-219 272.33,-318 350,-318"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-221C281.68,-218.77 270.35,-317.77 350,-320"/>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="white" stroke="black" stroke-dasharray="5,2" points="582.5,-272 355.5,-272 355.5,0 582.5,0 582.5,-272"/>
<polygon fill="none" stroke="black" points="356,-249 356,-272 583,-272 583,-249 356,-249"/>
<text text-anchor="start" x="458.5" y="-256.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="356,-226 356,-249 414,-249 414,-226 356,-226"/>
<text text-anchor="start" x="377.5" y="-233.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="414,-226 414,-249 516,-249 516,-226 414,-226"/>
<text text-anchor="start" x="435.5" y="-233.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="516,-226 516,-249 583,-249 583,-226 516,-226"/>
<text text-anchor="start" x="537.5" y="-233.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="467.5" y="-214.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="392.5" y="-197.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="477" y="-197.8" font-family="arial" font-size="14.00">YE</text>
<text text-anchor="start" x="535.5" y="-197.8" font-family="arial" font-size="14.00">X3:1</text>
<polygon fill="#ffff00" stroke="transparent" points="356,-186 356,-192 583,-192 583,-186 356,-186"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-187 582,-187 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-191 357,-191 "/>
<text text-anchor="start" x="360.5" y="-170.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-170.8" font-family="arial" font-size="14.00">MPN: W1&#45;YE</text>
<text text-anchor="start" x="505" y="-170.8" font-family="arial" font-size="14.00">IPN: WIRE1</text>
<text text-anchor="start" x="392.5" y="-149.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="477" y="-149.8" font-family="arial" font-size="14.00">BK</text>
<text text-anchor="start" x="535.5" y="-149.8" font-family="arial" font-size="14.00">X3:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-138 356,-144 583,-144 583,-138 356,-138"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-139 582,-139 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-143 357,-143 "/>
<text text-anchor="start" x="360.5" y="-122.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-122.8" font-family="arial" font-size="14.00">MPN: W1&#45;BK</text>
<text text-anchor="start" x="505" y="-122.8" font-family="arial" font-size="14.00">IPN: WIRE2</text>
<text text-anchor="start" x="392.5" y="-101.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="477" y="-101.8" font-family="arial" font-size="14.00">BK</text>
<text text-anchor="start" x="535.5" y="-101.8" font-family="arial" font-size="14.00">X3:3</text>
<polygon fill="#000000" stroke="transparent" points="356,-90 356,-96 583,-96 583,-90 356,-90"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-91 582,-91 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-95 357,-95 "/>
<text text-anchor="start" x="360.5" y="-74.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="418.5" y="-74.8" font-family="arial" font-size="14.00">MPN: W1&#45;BK</text>
<text text-anchor="start" x="505" y="-74.8" font-family="arial" font-size="14.00">IPN: WIRE2</text>
<text text-anchor="start" x="392.5" y="-53.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="476.5" y="-53.8" font-family="arial" font-size="14.00">RD</text>
<text text-anchor="start" x="535.5" y="-53.8" font-family="arial" font-size="14.00">X3:4</text>
<polygon fill="#ff0000" stroke="transparent" points="356,-42 356,-48 583,-48 583,-42 356,-42"/>
<polyline fill="none" stroke="black" stroke-width="2" points="357,-43 582,-43 "/>
<polyline fill="none" stroke="black" stroke-width="2" points="582,-47 357,-47 "/>
<text text-anchor="start" x="360" y="-26.8" font-family="arial" font-size="14.00">WiresCo</text>
<text text-anchor="start" x="417" y="-26.8" font-family="arial" font-size="14.00">MPN: W1&#45;RD</text>
<text text-anchor="start" x="505" y="-26.8" font-family="arial" font-size="14.00">IPN: WIRE3</text>
<text text-anchor="start" x="404.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-286C283.52,-288.2 273.5,-189.2 355,-187"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M206,-288C285.51,-288 275.49,-189 355,-189"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-290C287.5,-287.8 277.48,-188.8 355,-191"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-263C290.19,-265.37 266.88,-141.37 355,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-265C292.15,-265 268.85,-141 355,-141"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-267C294.12,-264.63 270.81,-140.63 355,-143"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-240C297.72,-242.5 259.41,-93.5 355,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-242C299.65,-242 261.35,-93 355,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-244C301.59,-241.5 263.28,-92.5 355,-95"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-217C305.9,-219.6 251.28,-45.6 355,-43"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M206,-219C307.81,-219 253.19,-45 355,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M206,-221C309.72,-218.4 255.1,-44.4 355,-47"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="white" stroke="black" points="732,-309.5 732,-470.5 985,-470.5 985,-309.5 732,-309.5"/>
<text text-anchor="middle" x="858.5" y="-455.3" font-family="arial" font-size="14.00">X2</text>
<polyline fill="none" stroke="black" points="732,-447.5 985,-447.5 "/>
<text text-anchor="middle" x="758.5" y="-432.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="785,-424.5 785,-447.5 "/>
<text text-anchor="middle" x="842.5" y="-432.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="900,-424.5 900,-447.5 "/>
<text text-anchor="middle" x="942.5" y="-432.3" font-family="arial" font-size="14.00">IPN: CON4</text>
<polyline fill="none" stroke="black" points="732,-424.5 985,-424.5 "/>
<text text-anchor="middle" x="790" y="-409.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="848,-401.5 848,-424.5 "/>
<text text-anchor="middle" x="885" y="-409.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="922,-401.5 922,-424.5 "/>
<text text-anchor="middle" x="953.5" y="-409.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="732,-401.5 985,-401.5 "/>
<text text-anchor="middle" x="858.5" y="-386.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="732,-378.5 985,-378.5 "/>
<text text-anchor="middle" x="858.5" y="-363.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="732,-355.5 985,-355.5 "/>
<text text-anchor="middle" x="858.5" y="-340.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="732,-332.5 985,-332.5 "/>
<text text-anchor="middle" x="858.5" y="-317.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="white" stroke="black" points="755.5,-71.5 755.5,-232.5 961.5,-232.5 961.5,-71.5 755.5,-71.5"/>
<text text-anchor="middle" x="858.5" y="-217.3" font-family="arial" font-size="14.00">X3</text>
<polyline fill="none" stroke="black" points="755.5,-209.5 961.5,-209.5 "/>
<text text-anchor="middle" x="791.5" y="-194.3" font-family="arial" font-size="14.00">Molex</text>
<polyline fill="none" stroke="black" points="827.5,-186.5 827.5,-209.5 "/>
<text text-anchor="middle" x="894.5" y="-194.3" font-family="arial" font-size="14.00">MPN: 22013047</text>
<polyline fill="none" stroke="black" points="755.5,-186.5 961.5,-186.5 "/>
<text text-anchor="middle" x="806" y="-171.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polyline fill="none" stroke="black" points="856.5,-163.5 856.5,-186.5 "/>
<text text-anchor="middle" x="885.5" y="-171.3" font-family="arial" font-size="14.00">female</text>
<polyline fill="none" stroke="black" points="914.5,-163.5 914.5,-186.5 "/>
<text text-anchor="middle" x="938" y="-171.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polyline fill="none" stroke="black" points="755.5,-163.5 961.5,-163.5 "/>
<text text-anchor="middle" x="858.5" y="-148.3" font-family="arial" font-size="14.00">1</text>
<polyline fill="none" stroke="black" points="755.5,-140.5 961.5,-140.5 "/>
<text text-anchor="middle" x="858.5" y="-125.3" font-family="arial" font-size="14.00">2</text>
<polyline fill="none" stroke="black" points="755.5,-117.5 961.5,-117.5 "/>
<text text-anchor="middle" x="858.5" y="-102.3" font-family="arial" font-size="14.00">3</text>
<polyline fill="none" stroke="black" points="755.5,-94.5 961.5,-94.5 "/>
<text text-anchor="middle" x="858.5" y="-79.3" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-391C651.64,-391.03 667.62,-388.03 732,-388"/>
<path fill="none" stroke="#666600" stroke-width="2" d="M588,-393C652.01,-393 667.99,-390 732,-390"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-395C652.38,-394.97 668.36,-391.97 732,-392"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-366C651.88,-366 667.87,-365 732,-365"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M588,-368C652,-368 668,-367 732,-367"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-370C652.13,-370 668.12,-369 732,-369"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-341C652.13,-341 668.12,-342 732,-342"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M588,-343C652,-343 668,-344 732,-344"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-345C651.88,-345 667.87,-346 732,-346"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-316C652.38,-316.03 668.36,-319.03 732,-319"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M588,-318C652.01,-318 667.99,-321 732,-321"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M588,-320C651.64,-319.97 667.62,-322.97 732,-323"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-187C659.7,-188.23 675.11,-151.23 754.5,-150"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M584,-189C661.54,-189 676.96,-152 754.5,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-191C663.39,-189.77 678.8,-152.77 754.5,-154"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-139C658.88,-139.32 677.45,-127.32 754.5,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-141C659.97,-141 678.53,-129 754.5,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-143C661.05,-142.68 679.62,-130.68 754.5,-131"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-91C661.15,-91.36 679.65,-104.36 754.5,-104"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-93C660,-93 678.5,-106 754.5,-106"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-95C658.85,-94.64 677.35,-107.64 754.5,-108"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-43C663.49,-44.26 678.72,-82.26 754.5,-81"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M584,-45C661.64,-45 676.86,-83 754.5,-83"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M584,-47C659.78,-45.74 675.01,-83.74 754.5,-85"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

41
tutorial/tutorial08.yml Normal file
View File

@ -0,0 +1,41 @@
connectors:
X1: &template1 # define a template for later use
type: Molex KK 254
pincount: 4
subtype: female
manufacturer: Molex
manufacturer_part_number: 22013047
X2:
<<: *template1 # reuse template
internal_part_number: CON4
X3:
<<: *template1 # reuse template
cables:
W1:
wirecount: 4
length: 1
gauge: 0.25 mm2
color_code: IEC
manufacturer: CablesCo
manufacturer_part_number: ABC123
internal_part_number: CAB1
W2:
category: bundle
length: 1
gauge: 0.25 mm2
colors: [YE, BK, BK, RD]
manufacturer: [WiresCo,WiresCo,WiresCo,WiresCo]
manufacturer_part_number: [W1-YE,W1-BK,W1-BK,W1-RD]
internal_part_number: [WIRE1,WIRE2,WIRE2,WIRE3]
connections:
-
- X1: [1-4]
- W1: [1-4]
- X2: [1-4]
-
- X1: [1-4]
- W2: [1-4]
- X3: [1-4]