diff options
-rw-r--r-- | frontpanel.svg | 1651 | ||||
-rw-r--r-- | sw/picardy/src/main.rs | 54 | ||||
-rw-r--r-- | sw/picardy/src/ui.rs | 88 | ||||
-rw-r--r-- | sw/pio.txt | 8 |
4 files changed, 954 insertions, 847 deletions
diff --git a/frontpanel.svg b/frontpanel.svg index 961e331..454d34d 100644 --- a/frontpanel.svg +++ b/frontpanel.svg @@ -1,6 +1,4 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" @@ -10,59 +8,60 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="297mm" - height="210mm" - viewBox="0 0 297 210" - version="1.1" + sodipodi:docname="frontpanel.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" id="svg8" - inkscape:version="0.92.4 5da689c313, 2019-01-14" - sodipodi:docname="frontpanel.svg"> + version="1.1" + viewBox="0 0 297 210" + height="210mm" + width="297mm"> <defs id="defs2" /> <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="15.294164" - inkscape:cx="250.11936" - inkscape:cy="365.67548" - inkscape:document-units="mm" - inkscape:current-layer="layer3" - showgrid="true" - inkscape:window-width="1876" - inkscape:window-height="1044" - inkscape:window-x="1919" - inkscape:window-y="0" + inkscape:document-rotation="0" + inkscape:snap-object-midpoints="true" inkscape:window-maximized="1" - inkscape:snap-object-midpoints="true"> + inkscape:window-y="0" + inkscape:window-x="1919" + inkscape:window-height="1044" + inkscape:window-width="1876" + showgrid="true" + inkscape:current-layer="layer3" + inkscape:document-units="mm" + inkscape:cy="421.67161" + inkscape:cx="312.86424" + inkscape:zoom="3.823541" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base"> <inkscape:grid - type="xygrid" - id="grid3713" - units="mm" - spacingx="1" - spacingy="1" - color="#2a2aff" - opacity="0.1254902" - empcolor="#4242ff" - empopacity="0.25098039" + originx="0" visible="false" - originx="0" /> + empopacity="0.25098039" + empcolor="#4242ff" + opacity="0.1254902" + color="#2a2aff" + spacingy="1" + spacingx="1" + units="mm" + id="grid3713" + type="xygrid" /> <inkscape:grid - type="xygrid" - id="grid4530" - units="in" - spacingx="0.508" - spacingy="0.508" - color="#3d9d00" - opacity="0.21176471" - empcolor="#00950b" - empopacity="0.59215686" - originx="0.762" + visible="true" originy="1.016" - visible="true" /> + originx="0.762" + empopacity="0.59215686" + empcolor="#00950b" + opacity="0.21176471" + color="#3d9d00" + spacingy="0.508" + spacingx="0.508" + units="in" + id="grid4530" + type="xygrid" /> </sodipodi:namedview> <metadata id="metadata5"> @@ -72,122 +71,76 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> <g - inkscape:label="Outline" - inkscape:groupmode="layer" - id="layer1" + sodipodi:insensitive="true" transform="translate(0,-87)" - sodipodi:insensitive="true"> + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Outline"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" - d="m 165.26435,166.444 v 64.7741 H 44.735638 V 131.78191 H 135.382" - id="rect3715" + sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccc" /> + id="rect3715" + d="m 165.26435,166.444 v 64.7741 H 44.735638 V 131.78191 H 135.382" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" /> <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;line-height:6.61458302px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" - x="44.332863" + id="text4524" y="126.3364" - id="text4524"><tspan - sodipodi:role="line" - x="44.332863" + x="44.332863" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;line-height:6.61458px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.947699" + xml:space="preserve"><tspan + id="tspan4526" + style="font-size:4.93889px;line-height:4.61px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" y="126.3364" - style="font-size:4.93888903px;line-height:4.61000013px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5" - id="tspan4526">Outline 120x100 mm</tspan></text> + x="44.332863" + sodipodi:role="line">Outline 120x100 mm</tspan></text> </g> <g - inkscape:groupmode="layer" - id="layer2" + sodipodi:insensitive="true" inkscape:label="noholes" - sodipodi:insensitive="true"> + id="layer2" + inkscape:groupmode="layer"> <rect - style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" - id="rect4590" - width="90.382004" - height="5.2948303" + y="45.000008" x="45" - y="45.000008" /> + height="5.2948303" + width="90.382004" + id="rect4590" + style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" /> <rect - y="79.444008" - x="159.54544" - height="64.555992" - width="5.4545593" + style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" id="rect4592" - style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" /> + width="5.4545593" + height="64.555992" + x="159.54544" + y="79.444008" /> <rect - y="142" - x="45" - height="1.9999951" - width="120" + style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" id="rect4594" - style="opacity:1;fill:#a4a4a4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" /> + width="120" + height="1.9999951" + x="45" + y="142" /> <path - id="path4598" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" + inkscape:connector-curvature="0" d="m 165,79.444005 h -29.618 v -10.16 m 0,-24.284 v 24.284 0" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9476988" + id="path4598" /> </g> <g - inkscape:groupmode="layer" - id="layer3" + style="opacity:0.99" inkscape:label="Devices" - style="opacity:0.99"> + id="layer3" + inkscape:groupmode="layer"> <g id="g4626"> <ellipse - ry="1.0160071" - rx="1.0160029" - cy="132.78401" - cx="69.342003" - id="path4603" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> - <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4605" - cx="74.421997" - cy="132.78401" - rx="1.0160029" - ry="1.0160071" /> - <ellipse - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4607" - cx="69.342003" - cy="125.164" - rx="1.0160029" - ry="1.0160071" /> - <ellipse - ry="1.0160071" - rx="1.0160029" - cy="125.164" - cx="74.421997" - id="ellipse4609" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> - <rect - y="126.18001" - x="69.342003" - height="5.587997" - width="5.0799971" - id="rect4616" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> - <ellipse - ry="1.7856406" - rx="1.7856332" - cy="129" - cx="71.882004" - id="ellipse4618" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> - </g> - <g - id="g4640" - transform="translate(15.239997,-7.0088705e-6)"> - <ellipse - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4628" + id="path4603" cx="69.342003" cy="132.78401" rx="1.0160029" @@ -197,57 +150,57 @@ rx="1.0160029" cy="132.78401" cx="74.421997" - id="ellipse4630" + id="ellipse4605" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.0160071" rx="1.0160029" cy="125.164" cx="69.342003" - id="ellipse4632" + id="ellipse4607" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4634" + id="ellipse4609" cx="74.421997" cy="125.164" rx="1.0160029" ry="1.0160071" /> <rect style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="rect4636" + id="rect4616" width="5.0799971" height="5.587997" x="69.342003" y="126.18001" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4638" + id="ellipse4618" cx="71.882004" cy="129" rx="1.7856332" ry="1.7856406" /> </g> <g - transform="translate(30.479997,-7.0088705e-6)" - id="g4654"> + transform="translate(15.239997,-7.0088705e-6)" + id="g4640"> <ellipse ry="1.0160071" rx="1.0160029" cy="132.78401" cx="69.342003" - id="ellipse4642" + id="ellipse4628" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4644" + id="ellipse4630" cx="74.421997" cy="132.78401" rx="1.0160029" ry="1.0160071" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4646" + id="ellipse4632" cx="69.342003" cy="125.164" rx="1.0160029" @@ -257,29 +210,29 @@ rx="1.0160029" cy="125.164" cx="74.421997" - id="ellipse4648" + id="ellipse4634" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <rect y="126.18001" x="69.342003" height="5.587997" width="5.0799971" - id="rect4650" + id="rect4636" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.7856406" rx="1.7856332" cy="129" cx="71.882004" - id="ellipse4652" + id="ellipse4638" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> </g> <g - id="g4668" - transform="translate(-7.6200029,-12.700007)"> + id="g4654" + transform="translate(30.479997,-7.0088705e-6)"> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4656" + id="ellipse4642" cx="69.342003" cy="132.78401" rx="1.0160029" @@ -289,57 +242,57 @@ rx="1.0160029" cy="132.78401" cx="74.421997" - id="ellipse4658" + id="ellipse4644" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.0160071" rx="1.0160029" cy="125.164" cx="69.342003" - id="ellipse4660" + id="ellipse4646" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4662" + id="ellipse4648" cx="74.421997" cy="125.164" rx="1.0160029" ry="1.0160071" /> <rect style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="rect4664" + id="rect4650" width="5.0799971" height="5.587997" x="69.342003" y="126.18001" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4666" + id="ellipse4652" cx="71.882004" cy="129" rx="1.7856332" ry="1.7856406" /> </g> <g - transform="translate(7.6199941,-12.700014)" - id="g4682"> + transform="translate(-7.6200029,-12.700007)" + id="g4668"> <ellipse ry="1.0160071" rx="1.0160029" cy="132.78401" cx="69.342003" - id="ellipse4670" + id="ellipse4656" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4672" + id="ellipse4658" cx="74.421997" cy="132.78401" rx="1.0160029" ry="1.0160071" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4674" + id="ellipse4660" cx="69.342003" cy="125.164" rx="1.0160029" @@ -349,29 +302,29 @@ rx="1.0160029" cy="125.164" cx="74.421997" - id="ellipse4676" + id="ellipse4662" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <rect y="126.18001" x="69.342003" height="5.587997" width="5.0799971" - id="rect4678" + id="rect4664" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.7856406" rx="1.7856332" cy="129" cx="71.882004" - id="ellipse4680" + id="ellipse4666" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> </g> <g - id="g4696" - transform="translate(22.859994,-12.700014)"> + id="g4682" + transform="translate(7.6199941,-12.700014)"> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4684" + id="ellipse4670" cx="69.342003" cy="132.78401" rx="1.0160029" @@ -381,57 +334,57 @@ rx="1.0160029" cy="132.78401" cx="74.421997" - id="ellipse4686" + id="ellipse4672" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.0160071" rx="1.0160029" cy="125.164" cx="69.342003" - id="ellipse4688" + id="ellipse4674" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4690" + id="ellipse4676" cx="74.421997" cy="125.164" rx="1.0160029" ry="1.0160071" /> <rect style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="rect4692" + id="rect4678" width="5.0799971" height="5.587997" x="69.342003" y="126.18001" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4694" + id="ellipse4680" cx="71.882004" cy="129" rx="1.7856332" ry="1.7856406" /> </g> <g - transform="translate(38.099997,-12.700007)" - id="g4710"> + transform="translate(22.859994,-12.700014)" + id="g4696"> <ellipse ry="1.0160071" rx="1.0160029" cy="132.78401" cx="69.342003" - id="ellipse4698" + id="ellipse4684" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4700" + id="ellipse4686" cx="74.421997" cy="132.78401" rx="1.0160029" ry="1.0160071" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" - id="ellipse4702" + id="ellipse4688" cx="69.342003" cy="125.164" rx="1.0160029" @@ -441,839 +394,935 @@ rx="1.0160029" cy="125.164" cx="74.421997" - id="ellipse4704" + id="ellipse4690" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <rect y="126.18001" x="69.342003" height="5.587997" width="5.0799971" - id="rect4706" + id="rect4692" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> <ellipse ry="1.7856406" rx="1.7856332" cy="129" cx="71.882004" - id="ellipse4708" + id="ellipse4694" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> </g> <g - id="g4996" - transform="translate(-137.15999,12.7)"> + id="g4710" + transform="translate(38.099997,-12.700007)"> + <ellipse + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" + id="ellipse4698" + cx="69.342003" + cy="132.78401" + rx="1.0160029" + ry="1.0160071" /> + <ellipse + ry="1.0160071" + rx="1.0160029" + cy="132.78401" + cx="74.421997" + id="ellipse4700" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> + <ellipse + ry="1.0160071" + rx="1.0160029" + cy="125.164" + cx="69.342003" + id="ellipse4702" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" /> + <ellipse + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" + id="ellipse4704" + cx="74.421997" + cy="125.164" + rx="1.0160029" + ry="1.0160071" /> <rect - y="59.664005" - x="183.26199" - height="36.139996" - width="80.166016" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" + id="rect4706" + width="5.0799971" + height="5.587997" + x="69.342003" + y="126.18001" /> + <ellipse + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98744768" + id="ellipse4708" + cx="71.882004" + cy="129" + rx="1.7856332" + ry="1.7856406" /> + </g> + <g + transform="translate(-137.15999,12.7)" + id="g4996"> + <rect + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" id="rect4712" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" /> + width="80.166016" + height="36.139996" + x="183.26199" + y="59.664005" /> <rect - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98117155" - id="rect4714" - width="50" - height="21.132002" + y="42.532005" x="183.26199" - y="42.532005" /> + height="21.132002" + width="50" + id="rect4714" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98117155" /> <rect - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" - id="rect4716" - width="71" - height="27.999998" + y="64.664009" x="188.26199" - y="64.664009" /> + height="27.999998" + width="71" + id="rect4716" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" /> <text - id="text4720" - y="75.914955" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;line-height:4.61px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.976987" x="197.90331" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888855px;line-height:4.61000013px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" - xml:space="preserve"><tspan - style="stroke-width:0.5" - y="75.914955" - x="197.90331" + y="75.914955" + id="text4720"><tspan + sodipodi:role="line" id="tspan4718" - sodipodi:role="line">LCD 2x16</tspan></text> + x="197.90331" + y="75.914955" + style="stroke-width:0.5">LCD 2x16</tspan></text> <text - id="text4724" - y="57.971058" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;line-height:4.61px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.976987" x="193.43155" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888855px;line-height:4.61000013px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97698741" - xml:space="preserve"><tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777767px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none" - y="57.971058" - x="193.43155" + y="57.971058" + id="text4724"><tspan + sodipodi:role="line" id="tspan4722" - sodipodi:role="line">I2C backpack</tspan></text> + x="193.43155" + y="57.971058" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none">I2C backpack</tspan></text> <ellipse - inkscape:tile-y0="60.398" - inkscape:tile-x0="189.996" - inkscape:tile-h="2.5320142" - inkscape:tile-w="2.5320059" - inkscape:tile-cy="61.664007" - inkscape:tile-cx="191.262" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="ellipse4704-3" - cx="191.26199" - cy="61.664005" + ry="1.0160071" rx="1.0160029" - ry="1.0160071" /> + cy="61.664005" + cx="191.26199" + id="ellipse4704-3" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:tile-cx="191.262" + inkscape:tile-cy="61.664007" + inkscape:tile-w="2.5320059" + inkscape:tile-h="2.5320142" + inkscape:tile-x0="189.996" + inkscape:tile-y0="60.398" /> <use - id="use4869" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" + height="100%" width="100%" - height="100%" /> - <use - id="use4871" - transform="translate(2.5396019)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" x="0" - width="100%" - height="100%" /> - <use - id="use4873" - transform="translate(5.0792038)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" y="0" - x="0" - width="100%" - height="100%" /> - <use - id="use4875" - transform="translate(7.6188056)" - xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> - <use - id="use4877" - transform="translate(10.158408)" xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> + id="use4869" /> <use - id="use4879" - transform="translate(12.698009)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" + height="100%" width="100%" - height="100%" /> - <use - id="use4881" - transform="translate(15.237611)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" x="0" - width="100%" - height="100%" /> - <use - id="use4883" - transform="translate(17.777213)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" y="0" - x="0" - width="100%" - height="100%" /> - <use - id="use4885" - transform="translate(20.316815)" - xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> - <use - id="use4887" - transform="translate(22.856417)" xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> + transform="translate(2.5396019)" + id="use4871" /> <use - id="use4889" - transform="translate(25.396019)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" + height="100%" width="100%" - height="100%" /> - <use - id="use4891" - transform="translate(27.935621)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" x="0" - width="100%" - height="100%" /> - <use - id="use4893" - transform="translate(30.475223)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" y="0" - x="0" - width="100%" - height="100%" /> - <use - id="use4895" - transform="translate(33.014824)" - xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" - y="0" + xlink:href="#ellipse4704-3" + transform="translate(5.0792038)" + id="use4873" /> + <use + height="100%" + width="100%" x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(7.6188056)" + id="use4875" /> + <use + height="100%" width="100%" - height="100%" /> + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(10.158408)" + id="use4877" /> <use - id="use4897" - transform="translate(35.554426)" + height="100%" + width="100%" + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" + transform="translate(12.698009)" + id="use4879" /> + <use + height="100%" + width="100%" + x="0" + y="0" inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(15.237611)" + id="use4881" /> + <use + height="100%" + width="100%" + x="0" y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(17.777213)" + id="use4883" /> + <use + height="100%" + width="100%" x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(20.316815)" + id="use4885" /> + <use + height="100%" width="100%" - height="100%" /> + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(22.856417)" + id="use4887" /> <use - id="use4899" - transform="translate(38.094028)" + height="100%" + width="100%" + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" + transform="translate(25.396019)" + id="use4889" /> + <use + height="100%" + width="100%" + x="0" + y="0" inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(27.935621)" + id="use4891" /> + <use + height="100%" + width="100%" + x="0" y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(30.475223)" + id="use4893" /> + <use + height="100%" + width="100%" x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(33.014824)" + id="use4895" /> + <use + height="100%" width="100%" - height="100%" /> + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="translate(35.554426)" + id="use4897" /> <use - transform="translate(-5.0799934,-15.24)" height="100%" width="100%" x="0" y="0" inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" - id="use4951" /> + transform="translate(38.094028)" + id="use4899" /> <use - id="use4953" + id="use4951" xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" y="0" x="0" width="100%" height="100%" - transform="translate(-1.0159934,-15.24)" /> + transform="translate(-5.0799934,-15.24)" /> <use - transform="translate(3.0480066,-15.24)" + transform="translate(-1.0159934,-15.24)" height="100%" width="100%" x="0" y="0" inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" - id="use4955" /> + id="use4953" /> <use - id="use4957" + id="use4955" xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" y="0" x="0" width="100%" height="100%" - transform="translate(7.1120066,-15.24)" /> + transform="translate(3.0480066,-15.24)" /> <use - transform="translate(11.176007,-15.24)" + transform="translate(7.1120066,-15.24)" height="100%" width="100%" x="0" y="0" inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" - id="use4959" /> + id="use4957" /> + <use + id="use4959" + xlink:href="#ellipse4704-3" + inkscape:tiled-clone-of="#ellipse4704-3" + y="0" + x="0" + width="100%" + height="100%" + transform="translate(11.176007,-15.24)" /> <text - id="text4963" - y="49.836163" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;line-height:4.61px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.987448" x="183.58234" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777767px;line-height:4.61000013px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - xml:space="preserve"><tspan - style="font-size:2.11666656px;stroke:none;stroke-width:0.5" - y="49.836163" - x="183.58234" + y="49.836163" + id="text4963"><tspan + sodipodi:role="line" id="tspan4961" - sodipodi:role="line">GND 5V CLK DAT LAT</tspan></text> + x="183.58234" + y="49.836163" + style="font-size:2.11667px;stroke:none;stroke-width:0.5">GND 5V CLK DAT LAT</tspan></text> </g> <g - id="g5038" - transform="translate(27.94,-35.560001)"> - <ellipse - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - id="ellipse4998" - cx="125.222" - cy="158.18401" - rx="1.0160029" - ry="1.0160071" /> + transform="translate(27.94,-35.560001)" + id="g5038"> <ellipse ry="1.0160071" rx="1.0160029" - cy="163.26401" + cy="158.18401" cx="125.222" - id="ellipse5000" + id="ellipse4998" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> <ellipse - ry="1.0160071" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" + id="ellipse5000" + cx="125.222" + cy="163.26401" rx="1.0160029" - cy="158.18401" - cx="110" - id="ellipse5002" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> + ry="1.0160071" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - id="ellipse5004" - cx="109.982" - cy="163.26401" + id="ellipse5002" + cx="110" + cy="158.18401" rx="1.0160029" ry="1.0160071" /> + <ellipse + ry="1.0160071" + rx="1.0160029" + cy="163.26401" + cx="109.982" + id="ellipse5004" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> <rect - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - id="rect5006" - width="12.191998" - height="12.192002" + y="154.62801" x="111.506" - y="154.62801" /> + height="12.192002" + width="12.191998" + id="rect5006" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> <ellipse - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - id="ellipse5008" - cx="117.602" - cy="160.724" + ry="4.0639944" rx="4.0639973" - ry="4.0639944" /> - <ellipse - ry="1.0160071" - rx="1.0160029" cy="160.724" - cx="109.982" + cx="117.602" + id="ellipse5008" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.87875402;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> + <ellipse + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" id="ellipse5018" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> + cx="109.982" + cy="160.724" + rx="1.0160029" + ry="1.0160071" /> <path - id="ellipse5020" - transform="scale(0.26458333)" - d="m 444.48047,565.2207 a 3.8400109,3.8400267 0 0 0 -3.83985,3.83985 v 15.35937 h 7.67969 v -15.35937 a 3.8400109,3.8400267 0 0 0 -3.83984,-3.83985 z" + inkscape:connector-curvature="0" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.88976383;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - inkscape:connector-curvature="0" /> + d="m 444.48047,565.2207 a 3.8400109,3.8400267 0 0 0 -3.83985,3.83985 v 15.35937 h 7.67969 v -15.35937 a 3.8400109,3.8400267 0 0 0 -3.83984,-3.83985 z" + transform="scale(0.26458333)" + id="ellipse5020" /> <path - inkscape:connector-curvature="0" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" + id="path5027" d="m 117.60204,171.8998 a 1.0160029,1.0160071 0 0 0 1.01596,-1.01597 V 166.82 h -2.03192 v 4.06383 a 1.0160029,1.0160071 0 0 0 1.01596,1.01597 z" - id="path5027" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" + inkscape:connector-curvature="0" /> </g> <path - style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - d="m 145.542,125.164 v -30.479995 0" + inkscape:connector-curvature="0" id="path5040" - inkscape:connector-curvature="0" /> - <circle - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - id="path5048" - cx="145.54201" - cy="94.684006" - r="5.316" /> + d="m 145.542,125.164 v -30.479995 0" + style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> <circle r="5.316" - cy="68.183998" + cy="94.684006" cx="145.54201" - id="circle5050" + id="path5048" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" /> + <circle + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" + id="circle5050" + cx="145.54201" + cy="68.183998" + r="5.316" /> <path - style="opacity:1;fill:#37ae35;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 110.84071,55.206114 a 3.0480031,3.0479997 0 0 0 -1.36684,2.539897 3.0480031,3.0479997 0 0 0 3.04787,3.047875 3.0480031,3.0479997 0 0 0 3.04839,-3.047875 3.0480031,3.0479997 0 0 0 -1.36684,-2.539897 z" + inkscape:connector-curvature="0" id="circle5054" - inkscape:connector-curvature="0" /> - <ellipse - style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="ellipse4690-6" - cx="112.522" - cy="56.584003" - rx="0.66426557" - ry="0.66426831" /> + d="m 110.84071,55.206114 a 3.0480031,3.0479997 0 0 0 -1.36684,2.539897 3.0480031,3.0479997 0 0 0 3.04787,3.047875 3.0480031,3.0479997 0 0 0 3.04839,-3.047875 3.0480031,3.0479997 0 0 0 -1.36684,-2.539897 z" + style="opacity:1;fill:#37ae35;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <ellipse ry="0.66426831" rx="0.66426557" - cy="59.124004" + cy="56.584003" cx="112.522" - id="ellipse5078" + id="ellipse4690-6" style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path5080" - d="m 123.54071,55.206115 a 3.0480031,3.0479997 0 0 0 -1.36684,2.539897 3.0480031,3.0479997 0 0 0 3.04787,3.047875 3.0480031,3.0479997 0 0 0 3.04839,-3.047875 3.0480031,3.0479997 0 0 0 -1.36684,-2.539897 z" - style="opacity:1;fill:#c22121;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <ellipse - ry="0.66426831" + style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="ellipse5078" + cx="112.522" + cy="59.124004" rx="0.66426557" - cy="56.584003" - cx="125.222" - id="ellipse5082" - style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + ry="0.66426831" /> + <path + style="opacity:1;fill:#c22121;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 123.54071,55.206115 a 3.0480031,3.0479997 0 0 0 -1.36684,2.539897 3.0480031,3.0479997 0 0 0 3.04787,3.047875 3.0480031,3.0479997 0 0 0 3.04839,-3.047875 3.0480031,3.0479997 0 0 0 -1.36684,-2.539897 z" + id="path5080" + inkscape:connector-curvature="0" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="ellipse5084" + id="ellipse5082" cx="125.222" - cy="59.124004" + cy="56.584003" rx="0.66426557" ry="0.66426831" /> + <ellipse + ry="0.66426831" + rx="0.66426557" + cy="59.124004" + cx="125.222" + id="ellipse5084" + style="opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.32690144;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <use - transform="rotate(90,179.8318,52.774208)" - style="opacity:0.98999999" - id="use4869-7" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" + height="100%" width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4871-5" - transform="rotate(90,178.562,54.044008)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" x="0" - width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4873-3" - transform="rotate(90,177.2922,55.313808)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" y="0" - x="0" - width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4875-5" - transform="rotate(90,176.0224,56.583608)" - xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4877-6" - transform="rotate(90,174.75259,57.853413)" xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> - <use + id="use4869-7" style="opacity:0.98999999" - id="use4879-2" - transform="rotate(90,173.48279,59.123213)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> + transform="rotate(90,179.8318,52.774208)" /> <use - style="opacity:0.98999999" - id="use4881-9" - transform="rotate(90,172.21299,60.393013)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" + height="100%" width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4883-1" - transform="rotate(90,170.94319,61.662813)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" - y="0" x="0" - width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4885-2" - transform="rotate(90,169.67339,62.932618)" - xlink:href="#ellipse4704-3" - inkscape:tiled-clone-of="#ellipse4704-3" y="0" - x="0" - width="100%" - height="100%" /> - <use - style="opacity:0.98999999" - id="use4887-7" - transform="rotate(90,168.40359,64.202418)" - xlink:href="#ellipse4704-3" inkscape:tiled-clone-of="#ellipse4704-3" - y="0" - x="0" - width="100%" - height="100%" /> + xlink:href="#ellipse4704-3" + transform="rotate(90,178.562,54.044008)" + id="use4871-5" + style="opacity:0.98999999" /> <use - style="opacity:0.98999999" - id="use4889-0" - transform="rotate(90,167.13379,65.472218)" + height="100%" + width="100%" + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" + transform="rotate(90,177.2922,55.313808)" + id="use4873-3" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" + x="0" + y="0" inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,176.0224,56.583608)" + id="use4875-5" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" + x="0" y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,174.75259,57.853413)" + id="use4877-6" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,173.48279,59.123213)" + id="use4879-2" + style="opacity:0.98999999" /> + <use + height="100%" width="100%" - height="100%" /> + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,172.21299,60.393013)" + id="use4881-9" + style="opacity:0.98999999" /> <use - style="opacity:0.98999999" - id="use4891-9" - transform="rotate(90,165.86399,66.742018)" + height="100%" + width="100%" + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" xlink:href="#ellipse4704-3" + transform="rotate(90,170.94319,61.662813)" + id="use4883-1" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" + x="0" + y="0" inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,169.67339,62.932618)" + id="use4885-2" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" + x="0" y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,168.40359,64.202418)" + id="use4887-7" + style="opacity:0.98999999" /> + <use + height="100%" + width="100%" x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,167.13379,65.472218)" + id="use4889-0" + style="opacity:0.98999999" /> + <use + height="100%" width="100%" - height="100%" /> + x="0" + y="0" + inkscape:tiled-clone-of="#ellipse4704-3" + xlink:href="#ellipse4704-3" + transform="rotate(90,165.86399,66.742018)" + id="use4891-9" + style="opacity:0.98999999" /> <text - id="text4963-2" - y="61.641453" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;line-height:4.61px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.987448" x="161.27582" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777767px;line-height:4.61000013px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.9874477" - xml:space="preserve"><tspan - style="font-size:2.11666656px;stroke:none;stroke-width:0.5" - y="61.641453" - x="161.27582" + y="61.641453" + id="text4963-2"><tspan + sodipodi:role="line" id="tspan4961-6" - sodipodi:role="line">Base board UI connector</tspan><tspan - style="font-size:2.11666656px;stroke:none;stroke-width:0.5" - y="66.474731" x="161.27582" + y="61.641453" + style="font-size:2.11667px;stroke:none;stroke-width:0.5">Base board UI connector</tspan><tspan + id="tspan5166" sodipodi:role="line" - id="tspan5166" /></text> + x="161.27582" + y="66.474731" /></text> <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:2.45000005px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - x="173.09532" + id="text5170" y="64.93985" - id="text5170"><tspan - sodipodi:role="line" - id="tspan5168" - x="173.09532" + x="173.09532" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:2.45px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#494949;stroke-width:0.3;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="64.93985" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none">3V3</tspan><tspan - sodipodi:role="line" x="173.09532" + id="tspan5168" + sodipodi:role="line">3V3</tspan><tspan + id="tspan5172" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="67.475822" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5172">BT0</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">BT0</tspan><tspan + id="tspan5174" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="70.011795" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5174">BT1</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">BT1</tspan><tspan + id="tspan5176" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="72.547768" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5176">BT2</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">BT2</tspan><tspan + id="tspan5178" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="75.08374" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5178">BT3</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">BT3</tspan><tspan + id="tspan5180" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="77.619713" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5180">5V</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">5V</tspan><tspan + id="tspan5182" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="80.155678" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5182">SDA</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">SDA</tspan><tspan + id="tspan5184" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="82.69165" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5184">SCL</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">SCL</tspan><tspan + id="tspan5186" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="85.227623" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5186">ENa</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">ENa</tspan><tspan + id="tspan5212" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="87.763596" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5212">ENb</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">ENb</tspan><tspan + id="tspan5188" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="90.299568" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5188">BTN</tspan><tspan - sodipodi:role="line" x="173.09532" + sodipodi:role="line">BTN</tspan><tspan + id="tspan5190" + style="font-size:2.11667px;line-height:2.45px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none" y="92.835541" - style="font-size:2.11666656px;line-height:2.45000005px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none" - id="tspan5190">GND</tspan></text> + x="173.09532" + sodipodi:role="line">GND</tspan></text> <g id="g5198"> <path - inkscape:connector-curvature="0" - id="path5192" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="m 136.906,125.164 h -1.524 v 1.524" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + id="path5192" + inkscape:connector-curvature="0" /> <path - inkscape:connector-curvature="0" - id="path5194" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="m 134.366,126.688 h 2.032" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + id="path5194" + inkscape:connector-curvature="0" /> </g> <g - id="g5204" - transform="translate(20.65,2.5400048)"> + transform="translate(20.65,2.5400048)" + id="g5204"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5200" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5200" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 134.366,126.688 h 2.032" + inkscape:connector-curvature="0" id="path5202" - inkscape:connector-curvature="0" /> + d="m 134.366,126.688 h 2.032" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 170.942,92.144005 -7.942,5.08" - id="path5206" - inkscape:connector-curvature="0" /> - <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#991900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 170.942,89.604005 C 155.2777,99.382483 153.48312,110.71284 153.162,122.624" - id="path5208" inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + id="path5206" + d="m 170.942,92.144005 -7.942,5.08" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - id="path5216" - d="M 170.942,87.064005 C 155.2777,96.842483 138.32112,110.71284 138,122.624" - style="opacity:1;fill:none;fill-opacity:1;stroke:#995300;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + id="path5208" + d="M 170.942,89.604005 C 155.2777,99.382483 153.48312,110.71284 153.162,122.624" + style="opacity:1;fill:none;fill-opacity:1;stroke:#991900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#996d00;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 170.942,84.524005 C 154.05199,94.93562 124.22934,123.07191 138,127.704" - id="path5218" + style="opacity:1;fill:none;fill-opacity:1;stroke:#995300;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 170.942,87.064005 C 155.2777,96.842483 138.32112,110.71284 138,122.624" + id="path5216" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - id="path5220" - d="m 171,81.984005 c -20.32,-4.524 -91,-30.48 -113.85,-22.984" - style="opacity:1;fill:none;fill-opacity:1;stroke:#998600;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + id="path5218" + d="M 170.942,84.524005 C 154.05199,94.93562 124.22934,123.07191 138,127.704" + style="opacity:1;fill:none;fill-opacity:1;stroke:#996d00;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#6e9900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 171,79.444005 c -20.32,-4.524 -99.626,-33.02 -109.786,-20.32" - id="path5222" + style="opacity:1;fill:none;fill-opacity:1;stroke:#998600;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 171,81.984005 c -20.32,-4.524 -91,-30.48 -113.85,-22.984" + id="path5220" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - id="path5224" + id="path5222" + d="m 171,79.444005 c -20.32,-4.524 -99.626,-33.02 -109.786,-20.32" + style="opacity:1;fill:none;fill-opacity:1;stroke:#6e9900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#0e9900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="m 170.942,76.904005 c -20.32,-4.524 -104.14,-33.02 -117.942,-17.78" - style="opacity:1;fill:none;fill-opacity:1;stroke:#0e9900;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <g - transform="translate(-84.382,-73.659995)" - id="g5230"> - <path - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" - id="path5226" - d="m 133.404,132.66 -0.022,-7.496 2,0 v 1.524" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path5228" - d="m 134.366,126.688 h 2.032" - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> + id="path5224" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> <g - id="g5242" - transform="translate(-27.432,7.6200048)"> + id="g5230" + transform="translate(-84.382,-73.659995)"> <path style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5238" + d="m 133.404,132.66 -0.022,-7.496 2,0 v 1.524" + id="path5226" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + sodipodi:nodetypes="cccc" /> <path style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="m 134.366,126.688 h 2.032" - id="path5240" + id="path5228" inkscape:connector-curvature="0" /> </g> <g - id="g5248" - transform="translate(-19.812,-5.1639952)"> + transform="translate(-27.432,7.6200048)" + id="g5242"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5244" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5238" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path5240" d="m 134.366,126.688 h 2.032" - id="path5246" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <g - id="g5254" - transform="translate(-35.052,-5.1639952)"> + transform="translate(-19.812,-5.1639952)" + id="g5248"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5250" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5244" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path5246" d="m 134.366,126.688 h 2.032" - id="path5252" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <g - id="g5260" - transform="translate(-42.672,7.6200048)"> + transform="translate(-35.052,-5.1639952)" + id="g5254"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5256" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5250" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path5252" d="m 134.366,126.688 h 2.032" - id="path5258" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <g - id="g5266" - transform="translate(-50.292,-5.0799952)"> + transform="translate(-42.672,7.6200048)" + id="g5260"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5262" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5256" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path5258" d="m 134.366,126.688 h 2.032" - id="path5264" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <g - id="g5272" - transform="translate(-57.912,7.6200048)"> + transform="translate(-50.292,-5.0799952)" + id="g5266"> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 133.35,125.164 h 2.032 v 1.524" - id="path5268" + sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + id="path5262" + d="m 133.35,125.164 h 2.032 v 1.524" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path5264" d="m 134.366,126.688 h 2.032" - id="path5270" - inkscape:connector-curvature="0" /> + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> <g - transform="translate(-65.532,-5.0799952)" - id="g5236"> + transform="translate(-57.912,7.6200048)" + id="g5272"> <path sodipodi:nodetypes="ccc" inkscape:connector-curvature="0" - id="path5232" + id="path5268" d="m 133.35,125.164 h 2.032 v 1.524" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path inkscape:connector-curvature="0" - id="path5234" + id="path5270" d="m 134.366,126.688 h 2.032" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> </g> + <g + id="g5236" + transform="translate(-65.532,-5.0799952)"> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 133.35,125.164 h 2.032 v 1.524" + id="path5232" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 134.366,126.688 h 2.032" + id="path5234" + inkscape:connector-curvature="0" /> + </g> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#009969;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 171,74.364005 c -10.16,-2.262 -36.70563,6.916507 -37.20287,24.549557 C 132.842,132.784 117.602,122.624 99.822,125" + sodipodi:nodetypes="csc" + inkscape:connector-curvature="0" id="path5274" + d="m 171,74.364005 c -10.16,-2.262 -36.70563,6.916507 -37.20287,24.549557 C 132.842,132.784 117.602,122.624 99.822,125" + style="opacity:1;fill:none;fill-opacity:1;stroke:#009969;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#007c99;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 170.942,71.824005 c -10.16,-2.262 -38.89447,9.450961 -38.66724,27.089557 C 132.842,142.944 104.902,112.464 69.342,125" + id="path5276" inkscape:connector-curvature="0" sodipodi:nodetypes="csc" /> <path sodipodi:nodetypes="csc" inkscape:connector-curvature="0" - id="path5276" - d="m 170.942,71.824005 c -10.16,-2.262 -38.89447,9.450961 -38.66724,27.089557 C 132.842,142.944 104.902,112.464 69.342,125" - style="opacity:1;fill:none;fill-opacity:1;stroke:#007c99;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 170.942,69.284005 c -10.16,-2.262 -39.33594,11.860535 -39.91281,29.49116 C 130.302,121 118,105 107.442,112.464" id="path5278" + d="m 170.942,69.284005 c -10.16,-2.262 -39.33594,11.860535 -39.91281,29.49116 C 130.302,121 118,105 107.442,112.464" + style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + id="text5306" + y="115.86898" + x="100.68861" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:2.45px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21" + y="115.86898" + x="100.68861" + id="tspan5304" + sodipodi:role="line">2.2k</tspan></text> + <path + sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - sodipodi:nodetypes="csc" /> + id="path5308" + d="m 107.442,112.464 c -1.016,0 -1.442,0 -2.54,0" + style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 102.27,112.464 c -3.27,-2.54 -7.068,-2.54 -10.068,0" + id="path5310" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <g + transform="translate(-12.7,-38.1)" + id="g5302"> + <path + d="m 114.53814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" + style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" + id="path7097-2" + inkscape:connector-curvature="0" /> + <ellipse + style="opacity:1;fill:none;fill-opacity:1;stroke:#00001c;stroke-width:0.15000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="ellipse7099-0" + cx="-150.56401" + cy="115.062" + rx="1.5300075" + ry="1.5300027" + transform="rotate(-90)" /> + <path + inkscape:connector-curvature="0" + id="path7101-2" + style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" + d="m 117.07814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.20999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 117.602,150.564 c -0.79698,0.25945 -1.62517,0.27261 -2.54,0" + id="path7103-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:2.45000005px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - x="100.68861" - y="115.86898" - id="text5306"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:2.45px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + x="85.448608" + y="115.86897" + id="text5314"><tspan sodipodi:role="line" - id="tspan5304" - x="100.68861" - y="115.86898" - style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21000001">2.2k</tspan></text> + id="tspan5312" + x="85.448608" + y="115.86897" + style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21">2.2k</tspan></text> <path style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 107.442,112.464 c -1.016,0 -1.442,0 -2.54,0" - id="path5308" + d="M 92.202,112.464 H 89.708" + id="path5326" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - id="path5310" - d="m 102.27,112.464 c -3.27,-2.54 -7.068,-2.54 -10.068,0" + id="path5328" + d="M 87.076,112.464 C 84,109.924 80,110 77,112.464" style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <g - id="g5302" - transform="translate(-12.7,-38.1)"> + id="g5324" + transform="translate(-27.939996,-38.100006)"> <path inkscape:connector-curvature="0" - id="path7097-2" + id="path5316" style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" d="m 114.53814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" /> <ellipse @@ -1282,54 +1331,60 @@ rx="1.5300075" cy="115.062" cx="-150.56401" - id="ellipse7099-0" + id="ellipse5318" style="opacity:1;fill:none;fill-opacity:1;stroke:#00001c;stroke-width:0.15000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <path d="m 117.07814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" - id="path7101-2" + id="path5320" inkscape:connector-curvature="0" /> <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - id="path7103-3" + id="path5322" d="m 117.602,150.564 c -0.79698,0.25945 -1.62517,0.27261 -2.54,0" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.20999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> </g> + <path + style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 170.942,66.744005 c -10.16,-2.262 -41.5943,14.670404 -41.29678,32.307954 C 130,120.084 76.962,102.108 61.722,112.268" + id="path5330" + inkscape:connector-curvature="0" + sodipodi:nodetypes="csc" /> <text - id="text5314" - y="115.86897" - x="85.448608" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:2.45000005px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="text5344" + y="112.89344" + x="69.948143" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:2.45px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" xml:space="preserve"><tspan - style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21000001" - y="115.86897" - x="85.448608" - id="tspan5312" + style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21" + y="112.89344" + x="69.948143" + id="tspan5342" sodipodi:role="line">2.2k</tspan></text> <path - sodipodi:nodetypes="cc" + style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 71.882,115 c -2.969961,-6.12265 -6.607165,-3.8997 -10.16,-2.732" + id="path5346" inkscape:connector-curvature="0" - id="path5326" - d="M 92.202,112.464 H 89.708" - style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + sodipodi:nodetypes="cc" /> <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 87.076,112.464 C 84,109.924 80,110 77,112.464" - id="path5328" + sodipodi:nodetypes="cc" inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + id="path5348" + d="m 74.422,115.004 c -0.785686,5.91661 0.97246,10.29074 10.16,10.16" + style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> <g - transform="translate(-27.939996,-38.100006)" - id="g5324"> + transform="translate(-43.061996,-35.560006)" + id="g5340"> <path d="m 114.53814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" - id="path5316" + id="path5332" inkscape:connector-curvature="0" /> <ellipse style="opacity:1;fill:none;fill-opacity:1;stroke:#00001c;stroke-width:0.15000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="ellipse5318" + id="ellipse5334" cx="-150.56401" cy="115.062" rx="1.5300075" @@ -1337,72 +1392,92 @@ transform="rotate(-90)" /> <path inkscape:connector-curvature="0" - id="path5320" + id="path5336" style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" d="m 117.07814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.20999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 117.602,150.564 c -0.79698,0.25945 -1.62517,0.27261 -2.54,0" - id="path5322" + id="path5338" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> </g> - <path - sodipodi:nodetypes="csc" - inkscape:connector-curvature="0" - id="path5330" - d="m 170.942,66.744005 c -10.16,-2.262 -41.5943,14.670404 -41.29678,32.307954 C 130,120.084 82.042,102.304 66.802,112.464" - style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + id="text216" + y="117.24467" + x="59.583202" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + xml:space="preserve"><tspan + style="stroke-width:0.2" + y="117.24467" + x="59.583202" + id="tspan214" + sodipodi:role="line">A</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:2.45000005px;font-family:'Noto Sans Lao';-inkscape-font-specification:'Noto Sans Lao';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:none;fill-opacity:1;stroke:#005d99;stroke-width:0.21000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - x="69.948143" - y="112.89344" - id="text5344"><tspan + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + x="75.349663" + y="117.24467" + id="text220"><tspan sodipodi:role="line" - id="tspan5342" - x="69.948143" - y="112.89344" - style="fill:#053254;fill-opacity:1;stroke:none;stroke-width:0.21000001">2.2k</tspan></text> - <path - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" - id="path5346" - d="m 71.882,115 -5.08,-2.536" - style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - style="opacity:1;fill:none;fill-opacity:1;stroke:#001499;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 74.422,115.004 c -0.785686,5.91661 0.97246,10.29074 10.16,10.16" - id="path5348" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <g - id="g5340" - transform="translate(-43.061996,-35.560006)"> - <path - inkscape:connector-curvature="0" - id="path5332" - style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" - d="m 114.53814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" /> - <ellipse - transform="rotate(-90)" - ry="1.5300027" - rx="1.5300075" - cy="115.062" - cx="-150.56401" - id="ellipse5334" - style="opacity:1;fill:none;fill-opacity:1;stroke:#00001c;stroke-width:0.15000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - d="m 117.07814,150.564 c 0,0.28854 0.23563,0.52386 0.52386,0.52386 0.28854,0 0.52386,-0.23532 0.52386,-0.52386 0,-0.28823 -0.23655,-0.52386 -0.52386,-0.52386 -0.28823,0 -0.52386,0.23563 -0.52386,0.52386" - style="fill:#174568;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1799174" - id="path5336" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" - id="path5338" - d="m 117.602,150.564 c -0.79698,0.25945 -1.62517,0.27261 -2.54,0" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.20999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - </g> + id="tspan218" + x="75.349663" + y="117.24467" + style="stroke-width:0.2">B</tspan></text> + <text + id="text224" + y="117.24467" + x="90.358452" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + xml:space="preserve"><tspan + style="stroke-width:0.2" + y="117.24467" + x="90.358452" + id="tspan222" + sodipodi:role="line">C</tspan></text> + <text + xml:space="preserve" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + x="105.38995" + y="117.24467" + id="text228"><tspan + sodipodi:role="line" + id="tspan226" + x="105.38995" + y="117.24467" + style="stroke-width:0.2">D</tspan></text> + <text + xml:space="preserve" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + x="67.240707" + y="130.07141" + id="text232"><tspan + sodipodi:role="line" + id="tspan230" + x="67.240707" + y="130.07141" + style="stroke-width:0.2">E</tspan></text> + <text + id="text236" + y="130.07141" + x="83.007164" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + xml:space="preserve"><tspan + style="stroke-width:0.2" + y="130.07141" + x="83.007164" + id="tspan234" + sodipodi:role="line">F</tspan></text> + <text + xml:space="preserve" + style="font-size:2.11667px;line-height:6.61458px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';fill:#000000;stroke-width:0.2;stroke-linecap:round" + x="98.015953" + y="130.07141" + id="text240"><tspan + sodipodi:role="line" + id="tspan238" + x="98.015953" + y="130.07141" + style="stroke-width:0.2">G</tspan></text> </g> </svg> diff --git a/sw/picardy/src/main.rs b/sw/picardy/src/main.rs index 071f4e9..d6f2bf9 100644 --- a/sw/picardy/src/main.rs +++ b/sw/picardy/src/main.rs @@ -60,9 +60,18 @@ enum TuneSpeed { Fast } +enum FilterShift { + LSB, + USB, + Custom(u32), +} + +const BFO_LSB : u32 = 4_915_940; +const BFO_USB : u32 = 4_914_910; + struct State { mode : Mode, - bfo : u32, + filter_shift : FilterShift, bfo_tune_fail : bool, qrg : u32, tune_speed : TuneSpeed, @@ -71,8 +80,16 @@ struct State { } impl State { + fn bfo(&self) -> u32 { + match self.filter_shift { + FilterShift::LSB => BFO_LSB, + FilterShift::USB => BFO_USB, + FilterShift::Custom(fs) => fs, + } + } + fn vfo(&self) -> u32 { - self.qrg - self.bfo + self.qrg - self.bfo() } fn vfo_incr(&self) -> i32 { @@ -101,7 +118,13 @@ fn update_disp<T: hd44780_driver::bus::DataBus>(lcd: &mut HD44780<T>, state: &St (false, Mode::BFO) => write!(string, ">").unwrap(), (false, Mode::VFO) => write!(string, " ").unwrap(), } - write!(string, "{:<10}", state.bfo).unwrap(); + write!(string, "{:<10}", state.bfo()).unwrap(); + + match state.filter_shift { + FilterShift::USB => write!(string, "U").unwrap(), + FilterShift::LSB => write!(string, "L").unwrap(), + FilterShift::Custom(_) => write!(string, " ").unwrap(), + } if state.transmit { write!(string, " T").unwrap(); @@ -133,7 +156,7 @@ fn update_disp<T: hd44780_driver::bus::DataBus>(lcd: &mut HD44780<T>, state: &St fn main() -> ! { let mut state = State { mode : Mode::VFO, - bfo : 4_916_550, + filter_shift : FilterShift::USB, bfo_tune_fail : false, qrg : 28_000_000, tune_speed : TuneSpeed::Mid, @@ -246,7 +269,7 @@ fn main() -> ! { ); let i2c_busmanager = shared_bus::BusManagerSimple::new(i2c); - let mut siclock = si_clock::SiClock::new(i2c_busmanager.acquire_i2c(), state.bfo, state.vfo()); + let mut siclock = si_clock::SiClock::new(i2c_busmanager.acquire_i2c(), state.bfo(), state.vfo()); update_disp(&mut lcd, &state, &mut delay); @@ -271,8 +294,9 @@ fn main() -> ! { state.qrg = (state.qrg as i32 + delta * state.vfo_incr()) as u32; }, Mode::BFO => { - state.bfo = (state.bfo as i32 + delta * state.bfo_incr()) as u32; - state.bfo_tune_fail = !siclock.set_bfo(state.bfo).is_ok(); + let new_bfo = (state.bfo() as i32 + delta * state.bfo_incr()) as u32; + state.filter_shift = FilterShift::Custom(new_bfo); + state.bfo_tune_fail = !siclock.set_bfo(state.bfo()).is_ok(); }, } @@ -292,6 +316,17 @@ fn main() -> ! { update_disp_required = true; } + if button_state.f { + state.filter_shift = match state.filter_shift { + FilterShift::USB => FilterShift::LSB, + FilterShift::LSB => FilterShift::USB, + FilterShift::Custom(_) => FilterShift::USB, + }; + state.bfo_tune_fail = !siclock.set_bfo(state.bfo()).is_ok(); + update_disp_required = true; + } + + if button_state.g { state.tune_speed = match state.tune_speed { TuneSpeed::Slow => TuneSpeed::Mid, @@ -301,9 +336,8 @@ fn main() -> ! { update_disp_required = true; } - let ptt = false; //ui.read_ptt(); - update_disp_required |= state.transmit != ptt; - state.transmit = ptt; + update_disp_required |= state.transmit != button_state.ptt; + state.transmit = button_state.ptt; if state.transmit { mute_spkr.set_high().unwrap(); diff --git a/sw/picardy/src/ui.rs b/sw/picardy/src/ui.rs index 114fe1e..2e93459 100644 --- a/sw/picardy/src/ui.rs +++ b/sw/picardy/src/ui.rs @@ -63,6 +63,22 @@ pub struct ButtonState { pub ptt : bool, } +impl Default for ButtonState { + fn default() -> Self { + ButtonState { + a : false, + b : false, + c : false, + d : false, + e : false, + f : false, + g : false, + enc : false, + ptt : false, + } + } +} + impl fmt::Display for ButtonState { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}{}{}{}{}{}{}{}{}", @@ -85,8 +101,8 @@ pub struct UI { btn0_ch : PB1<Analog>, btn1_ch : PB0<Analog>, - _mic_sw1 : PA3<Analog>, - mic_sw2 : PA4<Analog>, + mic_sw1 : PA3<Analog>, + _mic_sw2 : PA4<Analog>, btn2 : PB12<Input<PullUp>>, btn3 : PB13<Input<PullUp>>, @@ -110,91 +126,74 @@ impl UI { btn3 : pb13, btn_enc : pc15, adc : adc1, - _mic_sw1 : mic_sw1, - mic_sw2, + mic_sw1, + _mic_sw2 : mic_sw2, } } - pub fn read_ptt(&mut self) -> bool { - let _mic_sw1_value: u16 = self.adc.read(&mut self._mic_sw1).unwrap(); - let mic_sw2_value: u16 = self.adc.read(&mut self.mic_sw2).unwrap(); - mic_sw2_value < 500 - } - pub fn read_buttons(&mut self) -> ButtonState { - let mut buttons = ButtonState { - a : false, - b : false, - c : false, - d : false, - e : false, - f : false, - g : false, - enc : false, - ptt : false, - }; + let mut buttons = ButtonState::default(); - // Debounce BTN0 + // Debounce BTN0 and BTN1 let btn0_value: u16 = self.adc.read(&mut self.btn0_ch).unwrap(); - self.btn0_hist[2] = self.btn0_hist[1]; self.btn0_hist[1] = self.btn0_hist[0]; self.btn0_hist[0] = btn0_value; + let btn1_value: u16 = self.adc.read(&mut self.btn1_ch).unwrap(); + self.btn1_hist[2] = self.btn1_hist[1]; + self.btn1_hist[1] = self.btn1_hist[0]; + self.btn1_hist[0] = btn1_value; + + let mic_sw1_value: u16 = self.adc.read(&mut self.mic_sw1).unwrap(); + //let mic_sw2_value: u16 = self.adc.read(&mut self.mic_sw2).unwrap(); + buttons.ptt = mic_sw1_value < 500; + let mut btn0 = [None; 3]; for (i, &v) in self.btn0_hist.iter().enumerate() { btn0[i] = if v > 3050 { None } - else if v > 1650 { - Some(Btn0Buttons::B) - } else if v > 675 { - Some(Btn0Buttons::C) + Some(Btn1Buttons::F) } else { - Some(Btn0Buttons::D) + Some(Btn1Buttons::A) }; } if btn0.iter().all(|&v| v != None && v == btn0[0]) { match btn0[0] { None => {}, - Some(Btn0Buttons::B) => buttons.b = true, - Some(Btn0Buttons::C) => buttons.c = true, - Some(Btn0Buttons::D) => buttons.d = true, + Some(Btn1Buttons::A) => buttons.a = true, + Some(Btn1Buttons::F) => buttons.f = true, } } - - // Debounce BTN1 - let btn1_value: u16 = self.adc.read(&mut self.btn1_ch).unwrap(); - - self.btn1_hist[2] = self.btn1_hist[1]; - self.btn1_hist[1] = self.btn1_hist[0]; - self.btn1_hist[0] = btn1_value; - - let mut btn1 = [None; 3]; for (i, &v) in self.btn1_hist.iter().enumerate() { btn1[i] = if v > 3050 { None } + else if v > 1650 { + Some(Btn0Buttons::B) + } else if v > 675 { - Some(Btn1Buttons::F) + Some(Btn0Buttons::C) } else { - Some(Btn1Buttons::A) + Some(Btn0Buttons::D) }; } if btn1.iter().all(|&v| v != None && v == btn1[0]) { match btn1[0] { None => {}, - Some(Btn1Buttons::A) => buttons.a = true, - Some(Btn1Buttons::F) => buttons.f = true, + Some(Btn0Buttons::B) => buttons.b = true, + Some(Btn0Buttons::C) => buttons.c = true, + Some(Btn0Buttons::D) => buttons.d = true, } } @@ -210,7 +209,6 @@ impl UI { buttons.enc = true; } - cortex_m_semihosting::hprintln!("btn {} {}: {}", btn0_value, btn1_value, buttons).unwrap(); buttons } } @@ -5,8 +5,8 @@ Pin mapping: see datasheet Table 5 ## GPIO inputs Analog multi-level button inputs - * BTN0 PB1 - * BTN1 PB0 + * BTN0 PB1 ADC12_IN9 + * BTN1 PB0 ADC12_IN8 Digital buttons * BTN2 PB12 @@ -22,8 +22,8 @@ CW paddle * CW_RING PB9 Microphone switches - * SW1 PA3 - * SW2 PA4 + * SW1 PA3 ADC12_IN3 + * SW2 PA4 ADC12_IN4 ## GPIO outputs |