Initial commit.

This commit is contained in:
conky
2026-08-31 15:45:58 +03:00
commit ec9805b01a
22 changed files with 1536 additions and 0 deletions

330
docs/wiring-physical.svg Normal file
View File

@@ -0,0 +1,330 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1120" width="1600" height="1120">
<defs>
<linearGradient id="sheen" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.10"/>
<stop offset="55%" stop-color="#ffffff" stop-opacity="0.02"/>
<stop offset="100%" stop-color="#000000" stop-opacity="0.10"/>
</linearGradient>
<linearGradient id="usb" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#e9ecef"/>
<stop offset="50%" stop-color="#c7ccd1"/>
<stop offset="100%" stop-color="#9ba2a9"/>
</linearGradient>
</defs>
<style>
text { font-family: "Helvetica Neue", Arial, sans-serif; fill: #1b2733; }
.mono { font-family: "SF Mono", "DejaVu Sans Mono", Menlo, Consolas, monospace; }
.title{ font-size: 25px; font-weight: 700; }
.sub { font-size: 13.5px; fill: #5a6b7d; }
.hdr { font-size: 16px; font-weight: 700; }
.spec { font-size: 12.5px; fill: #5a6b7d; }
.note { font-size: 12.5px; }
.silk { fill: #ffffff; font-size: 11px; font-weight: 600; }
.silkb{ fill: #ffffff; font-size: 15px; font-weight: 700; letter-spacing: 1px; }
.bsilk{ font-size: 10px; fill: #2f4f7f; font-weight: 600; }
.panel{ fill: #f4f6f8; stroke: #b6c1cc; stroke-width: 1.5; }
.jw { fill: none; stroke-width: 4.6; stroke-linecap: round; }
.c-v33 { stroke: #d62828; }
.c-gnd { stroke: #22252a; }
.c-sda { stroke: #1f6feb; }
.c-scl { stroke: #00a0b0; }
.c-sck { stroke: #e07b00; }
.c-mosi{ stroke: #b5179e; }
.c-miso{ stroke: #7209b7; }
.c-cs { stroke: #c99700; }
.c-led { stroke: #2a9d4a; }
.rail-g { fill: none; stroke: #22252a; stroke-width: 7; stroke-linecap: round; }
.rail-v { fill: none; stroke: #d62828; stroke-width: 7; stroke-linecap: round; }
</style>
<rect x="0" y="0" width="1600" height="1120" fill="#ffffff"/>
<text class="title" x="800" y="38" text-anchor="middle">Physical wiring - NUCLEO-F042K6 + 2 x GY-63 (MS5611)</text>
<text class="sub" x="800" y="62" text-anchor="middle">Board seen from the component side, USB at the top. Header order follows ST UM1956 Table 10. Highlighted pads are the ones this firmware uses.</text>
<!-- =================================================================== -->
<!-- NUCLEO-F042K6 -->
<!-- =================================================================== -->
<g id="nucleo">
<!-- USB Micro-B, CN1 -->
<rect x="762" y="122" width="66" height="34" rx="3" fill="url(#usb)" stroke="#7b8288" stroke-width="1.2"/>
<rect x="770" y="128" width="50" height="14" rx="2" fill="#6f767c"/>
<!-- PCB -->
<rect x="700" y="150" width="190" height="530" rx="8" fill="#f7f8f9" stroke="#c3c9ce" stroke-width="1.6"/>
<rect x="706" y="156" width="178" height="518" rx="5" fill="none" stroke="#3a7ac0" stroke-width="1"/>
<!-- ST-LINK section -->
<rect x="718" y="163" width="24" height="20" rx="3" fill="#2f9e44" stroke="#1e6f2f" stroke-width="1"/>
<text class="bsilk" x="730" y="196" text-anchor="middle">LD1</text>
<rect x="762" y="248" width="66" height="40" rx="2" fill="#1b1b1b"/>
<text x="795" y="272" text-anchor="middle" font-size="9" fill="#8a8a8a" class="mono">ST-LINK</text>
<text x="795" y="232" text-anchor="middle" font-size="19" font-weight="700" fill="#03234b">ST</text>
<!-- target MCU, LQFP32 -->
<rect x="757" y="424" width="76" height="76" rx="3" fill="#1b1b1b"/>
<circle cx="766" cy="433" r="3.4" fill="#4a4a4a"/>
<text x="795" y="466" text-anchor="middle" font-size="8.5" fill="#8a8a8a" class="mono">STM32F042</text>
<g fill="#5b6167">
<rect x="749" y="432" width="8" height="3"/><rect x="749" y="443" width="8" height="3"/>
<rect x="749" y="454" width="8" height="3"/><rect x="749" y="465" width="8" height="3"/>
<rect x="749" y="476" width="8" height="3"/><rect x="749" y="487" width="8" height="3"/>
<rect x="833" y="432" width="8" height="3"/><rect x="833" y="443" width="8" height="3"/>
<rect x="833" y="454" width="8" height="3"/><rect x="833" y="465" width="8" height="3"/>
<rect x="833" y="476" width="8" height="3"/><rect x="833" y="487" width="8" height="3"/>
</g>
<!-- bottom features -->
<rect x="716" y="640" width="20" height="16" rx="2" fill="#2f9e44" stroke="#1e6f2f" stroke-width="1"/>
<text class="bsilk" x="726" y="668" text-anchor="middle">LD2</text>
<rect x="854" y="640" width="20" height="16" rx="2" fill="#2f9e44" stroke="#1e6f2f" stroke-width="1"/>
<text class="bsilk" x="864" y="668" text-anchor="middle">LD3</text>
<rect x="778" y="638" width="34" height="20" rx="3" fill="#d9dde1" stroke="#9aa1a8" stroke-width="1"/>
<text class="bsilk" x="795" y="668" text-anchor="middle">B1</text>
<text class="bsilk" x="714" y="215" text-anchor="middle" font-size="9">CN3</text>
<text class="bsilk" x="876" y="215" text-anchor="middle" font-size="9">CN4</text>
</g>
<!-- header pads: generated positions, CN3 x=714 / CN4 x=876, pin i y = 240+(i-1)*28 -->
<g id="pads">
<!-- CN3 gold rings -->
<g fill="#d9b64a">
<circle cx="714" cy="240" r="7"/><circle cx="714" cy="268" r="7"/><circle cx="714" cy="296" r="7"/>
<circle cx="714" cy="324" r="7"/><circle cx="714" cy="352" r="7"/><circle cx="714" cy="380" r="7"/>
<circle cx="714" cy="408" r="7"/><circle cx="714" cy="436" r="7"/><circle cx="714" cy="464" r="7"/>
<circle cx="714" cy="492" r="7"/><circle cx="714" cy="520" r="7"/><circle cx="714" cy="548" r="7"/>
<circle cx="714" cy="576" r="7"/><circle cx="714" cy="604" r="7"/><circle cx="714" cy="632" r="7"/>
<circle cx="876" cy="240" r="7"/><circle cx="876" cy="268" r="7"/><circle cx="876" cy="296" r="7"/>
<circle cx="876" cy="324" r="7"/><circle cx="876" cy="352" r="7"/><circle cx="876" cy="380" r="7"/>
<circle cx="876" cy="408" r="7"/><circle cx="876" cy="436" r="7"/><circle cx="876" cy="464" r="7"/>
<circle cx="876" cy="492" r="7"/><circle cx="876" cy="520" r="7"/><circle cx="876" cy="548" r="7"/>
<circle cx="876" cy="576" r="7"/><circle cx="876" cy="604" r="7"/><circle cx="876" cy="632" r="7"/>
</g>
<g fill="#ffffff">
<circle cx="714" cy="240" r="3"/><circle cx="714" cy="268" r="3"/><circle cx="714" cy="296" r="3"/>
<circle cx="714" cy="324" r="3"/><circle cx="714" cy="352" r="3"/><circle cx="714" cy="380" r="3"/>
<circle cx="714" cy="408" r="3"/><circle cx="714" cy="436" r="3"/><circle cx="714" cy="464" r="3"/>
<circle cx="714" cy="492" r="3"/><circle cx="714" cy="520" r="3"/><circle cx="714" cy="548" r="3"/>
<circle cx="714" cy="576" r="3"/><circle cx="714" cy="604" r="3"/><circle cx="714" cy="632" r="3"/>
<circle cx="876" cy="240" r="3"/><circle cx="876" cy="268" r="3"/><circle cx="876" cy="296" r="3"/>
<circle cx="876" cy="324" r="3"/><circle cx="876" cy="352" r="3"/><circle cx="876" cy="380" r="3"/>
<circle cx="876" cy="408" r="3"/><circle cx="876" cy="436" r="3"/><circle cx="876" cy="464" r="3"/>
<circle cx="876" cy="492" r="3"/><circle cx="876" cy="520" r="3"/><circle cx="876" cy="548" r="3"/>
<circle cx="876" cy="576" r="3"/><circle cx="876" cy="604" r="3"/><circle cx="876" cy="632" r="3"/>
</g>
<!-- used pads get a coloured ring -->
<g fill="none" stroke-width="2.6">
<circle cx="714" cy="380" r="10.5" stroke="#2a9d4a"/>
<circle cx="714" cy="464" r="10.5" stroke="#2a9d4a"/>
<circle cx="714" cy="576" r="10.5" stroke="#c99700"/>
<circle cx="714" cy="604" r="10.5" stroke="#b5179e"/>
<circle cx="714" cy="632" r="10.5" stroke="#7209b7"/>
<circle cx="876" cy="268" r="10.5" stroke="#22252a"/>
<circle cx="876" cy="408" r="10.5" stroke="#00a0b0"/>
<circle cx="876" cy="436" r="10.5" stroke="#1f6feb"/>
<circle cx="876" cy="604" r="10.5" stroke="#d62828"/>
<circle cx="876" cy="632" r="10.5" stroke="#e07b00"/>
</g>
</g>
<!-- header silkscreen -->
<g class="bsilk">
<text x="729" y="244">D1</text> <text x="729" y="272">D0</text> <text x="729" y="300">RST</text>
<text x="729" y="328">GND</text> <text x="729" y="356">D2</text> <text x="729" y="384">D3</text>
<text x="729" y="412">D4</text> <text x="729" y="440">D5</text> <text x="729" y="468">D6</text>
<text x="729" y="496">D7</text> <text x="729" y="524">D8</text> <text x="729" y="552">D9</text>
<text x="729" y="580">D10</text> <text x="729" y="608">D11</text> <text x="729" y="636">D12</text>
<text x="861" y="244" text-anchor="end">VIN</text> <text x="861" y="272" text-anchor="end">GND</text>
<text x="861" y="300" text-anchor="end">RST</text> <text x="861" y="328" text-anchor="end">5V</text>
<text x="861" y="356" text-anchor="end">A7</text> <text x="861" y="384" text-anchor="end">A6</text>
<text x="861" y="412" text-anchor="end">A5</text> <text x="861" y="440" text-anchor="end">A4</text>
<text x="861" y="468" text-anchor="end">A3</text> <text x="861" y="496" text-anchor="end">A2</text>
<text x="861" y="524" text-anchor="end">A1</text> <text x="861" y="552" text-anchor="end">A0</text>
<text x="861" y="580" text-anchor="end">REF</text> <text x="861" y="608" text-anchor="end">3V3</text>
<text x="861" y="636" text-anchor="end">D13</text>
</g>
<!-- =================================================================== -->
<!-- GY-63 #2 - SPI, left -->
<!-- =================================================================== -->
<g id="gy63-spi" transform="translate(300,470)">
<rect x="0" y="0" width="150" height="190" rx="5" fill="#174a91" stroke="#0e2f5e" stroke-width="1.5"/>
<rect x="0" y="0" width="150" height="190" rx="5" fill="url(#sheen)"/>
<circle cx="26" cy="27" r="14" fill="#c9a227"/><circle cx="26" cy="27" r="10" fill="#ffffff"/>
<g fill="#d9b64a">
<circle cx="133" cy="24" r="8"/><circle cx="133" cy="47" r="8"/><circle cx="133" cy="70" r="8"/>
<circle cx="133" cy="93" r="8"/><circle cx="133" cy="116" r="8"/><circle cx="133" cy="139" r="8"/>
<circle cx="133" cy="162" r="8"/>
</g>
<g fill="#10305f">
<circle cx="133" cy="24" r="3.6"/><circle cx="133" cy="47" r="3.6"/><circle cx="133" cy="70" r="3.6"/>
<circle cx="133" cy="93" r="3.6"/><circle cx="133" cy="116" r="3.6"/><circle cx="133" cy="139" r="3.6"/>
<circle cx="133" cy="162" r="3.6"/>
</g>
<text class="silk" x="120" y="28" text-anchor="end">PS</text>
<text class="silk" x="120" y="51" text-anchor="end">SDO</text>
<text class="silk" x="120" y="74" text-anchor="end">CSB</text>
<text class="silk" x="120" y="97" text-anchor="end">SDA</text>
<text class="silk" x="120" y="120" text-anchor="end">SCL</text>
<text class="silk" x="120" y="143" text-anchor="end">GND</text>
<text class="silk" x="120" y="166" text-anchor="end">VCC</text>
<rect x="36" y="88" width="52" height="42" rx="3" fill="#b9bfc6" stroke="#7e878f" stroke-width="1.2"/>
<rect x="40" y="92" width="44" height="34" rx="2" fill="#a8aeb5"/>
<circle cx="62" cy="109" r="7" fill="#5c646c"/><circle cx="62" cy="109" r="4" fill="#3a4148"/>
<rect x="38" y="156" width="20" height="11" rx="1" fill="#1b1b1b"/>
<rect x="66" y="156" width="20" height="11" rx="1" fill="#1b1b1b"/>
<rect x="72" y="140" width="14" height="9" rx="1" fill="#d8801f"/>
<rect x="36" y="70" width="18" height="10" rx="1" fill="#1b1b1b"/>
<rect x="68" y="70" width="18" height="10" rx="1" fill="#1b1b1b"/>
<rect x="56" y="52" width="12" height="8" rx="1" fill="#1b1b1b"/>
<rect x="74" y="52" width="12" height="8" rx="1" fill="#1b1b1b"/>
<text class="silkb" x="14" y="150" transform="rotate(-90,14,150)">MS5611</text>
</g>
<text class="hdr" x="375" y="452" text-anchor="middle">GY-63 #2 - SPI</text>
<!-- =================================================================== -->
<!-- GY-63 #1 - I2C, right -->
<!-- =================================================================== -->
<g id="gy63-i2c" transform="translate(1150,330)">
<rect x="0" y="0" width="150" height="190" rx="5" fill="#174a91" stroke="#0e2f5e" stroke-width="1.5"/>
<rect x="0" y="0" width="150" height="190" rx="5" fill="url(#sheen)"/>
<circle cx="124" cy="163" r="14" fill="#c9a227"/><circle cx="124" cy="163" r="10" fill="#ffffff"/>
<g fill="#d9b64a">
<circle cx="17" cy="24" r="8"/><circle cx="17" cy="47" r="8"/><circle cx="17" cy="70" r="8"/>
<circle cx="17" cy="93" r="8"/><circle cx="17" cy="116" r="8"/><circle cx="17" cy="139" r="8"/>
<circle cx="17" cy="162" r="8"/>
</g>
<g fill="#10305f">
<circle cx="17" cy="24" r="3.6"/><circle cx="17" cy="47" r="3.6"/><circle cx="17" cy="70" r="3.6"/>
<circle cx="17" cy="93" r="3.6"/><circle cx="17" cy="116" r="3.6"/><circle cx="17" cy="139" r="3.6"/>
<circle cx="17" cy="162" r="3.6"/>
</g>
<text class="silk" x="30" y="28">VCC</text><text class="silk" x="30" y="51">GND</text>
<text class="silk" x="30" y="74">SCL</text><text class="silk" x="30" y="97">SDA</text>
<text class="silk" x="30" y="120">CSB</text><text class="silk" x="30" y="143">SDO</text>
<text class="silk" x="30" y="166">PS</text>
<rect x="62" y="58" width="52" height="42" rx="3" fill="#b9bfc6" stroke="#7e878f" stroke-width="1.2"/>
<rect x="66" y="62" width="44" height="34" rx="2" fill="#a8aeb5"/>
<circle cx="88" cy="79" r="7" fill="#5c646c"/><circle cx="88" cy="79" r="4" fill="#3a4148"/>
<rect x="64" y="22" width="20" height="11" rx="1" fill="#1b1b1b"/>
<rect x="92" y="22" width="20" height="11" rx="1" fill="#1b1b1b"/>
<rect x="64" y="40" width="14" height="9" rx="1" fill="#d8801f"/>
<rect x="64" y="110" width="18" height="10" rx="1" fill="#1b1b1b"/>
<rect x="96" y="110" width="18" height="10" rx="1" fill="#1b1b1b"/>
<rect x="64" y="128" width="12" height="8" rx="1" fill="#1b1b1b"/>
<rect x="82" y="128" width="12" height="8" rx="1" fill="#1b1b1b"/>
<text class="silkb" x="140" y="38" transform="rotate(90,140,38)">MS5611</text>
</g>
<text class="hdr" x="1225" y="312" text-anchor="middle">GY-63 #1 - I2C</text>
<!-- =================================================================== -->
<!-- POWER RAILS -->
<!-- =================================================================== -->
<path class="rail-g" d="M 300,940 L 1290,940"/>
<path class="rail-v" d="M 240,988 L 1400,988"/>
<text class="mono" x="1302" y="945" font-size="13" fill="#22252a">GND rail</text>
<text class="mono" x="1412" y="993" font-size="13" fill="#d62828">3V3 rail</text>
<!-- =================================================================== -->
<!-- JUMPER WIRES -->
<!-- =================================================================== -->
<!-- I2C signals: module #1 -> CN4 A5 / A4 -->
<path class="jw c-scl" d="M 1167,400 C 1080,398 970,406 883,408"/>
<path class="jw c-sda" d="M 1167,423 C 1080,422 970,432 883,436"/>
<!-- SPI signals: module #2 -> CN3 D10 / D11 / D12 -->
<path class="jw c-cs" d="M 433,540 C 540,545 610,570 707,576"/>
<path class="jw c-mosi" d="M 433,563 C 540,570 610,598 707,604"/>
<path class="jw c-miso" d="M 433,517 C 560,520 620,614 707,632"/>
<!-- SCK has to travel to the far side: CN4 pin 15 -->
<path class="jw c-sck" d="M 433,586 C 560,600 520,732 660,742 C 820,752 962,730 962,670 C 962,642 918,632 883,632"/>
<!-- power taps from the board -->
<path class="jw c-v33" d="M 883,604 C 940,616 946,860 1006,988"/>
<path class="jw c-gnd" d="M 883,268 C 1006,300 1028,760 1046,940"/>
<!-- module #1 power and straps -->
<path class="jw c-v33" d="M 1167,354 C 1062,404 1010,790 1120,988"/>
<path class="jw c-gnd" d="M 1167,377 C 1090,448 1064,824 1176,940"/>
<path class="jw c-gnd" d="M 1167,446 C 1122,600 1152,852 1244,940"/>
<path class="jw c-v33" d="M 1167,492 C 1206,650 1258,880 1334,988"/>
<!-- module #2 power and strap -->
<path class="jw c-v33" d="M 433,632 C 540,730 520,880 500,988"/>
<path class="jw c-gnd" d="M 433,609 C 510,700 410,860 380,940"/>
<path class="jw c-gnd" d="M 433,494 C 540,506 560,812 440,940"/>
<!-- LED drives -->
<path class="jw c-led" d="M 707,380 C 600,420 500,652 560,772"/>
<path class="jw c-led" d="M 707,464 C 648,512 662,664 700,772"/>
<!-- =================================================================== -->
<!-- LEDS -->
<!-- =================================================================== -->
<g id="led1">
<rect x="545" y="772" width="30" height="48" rx="2" fill="#ffffff" stroke="#22252a" stroke-width="2"/>
<line x1="560" y1="820" x2="560" y2="842" stroke="#2a9d4a" stroke-width="4.6" stroke-linecap="round"/>
<polygon points="542,842 578,842 560,872" fill="#ffffff" stroke="#22252a" stroke-width="2"/>
<line x1="540" y1="872" x2="580" y2="872" stroke="#22252a" stroke-width="2.6" stroke-linecap="round"/>
<path class="jw c-gnd" d="M 560,872 L 560,940"/>
<text class="mono" x="590" y="800" font-size="12">510 R</text>
<text x="590" y="862" font-size="12">I2C error</text>
</g>
<g id="led2">
<rect x="685" y="772" width="30" height="48" rx="2" fill="#ffffff" stroke="#22252a" stroke-width="2"/>
<line x1="700" y1="820" x2="700" y2="842" stroke="#2a9d4a" stroke-width="4.6" stroke-linecap="round"/>
<polygon points="682,842 718,842 700,872" fill="#ffffff" stroke="#22252a" stroke-width="2"/>
<line x1="680" y1="872" x2="720" y2="872" stroke="#22252a" stroke-width="2.6" stroke-linecap="round"/>
<path class="jw c-gnd" d="M 700,872 L 700,940"/>
<text class="mono" x="734" y="800" font-size="12">510 R</text>
<text x="734" y="862" font-size="12">SPI error</text>
</g>
<!-- junction dots where a wire really meets a rail -->
<g fill="#22252a">
<circle cx="1046" cy="940" r="5"/><circle cx="1176" cy="940" r="5"/><circle cx="1244" cy="940" r="5"/>
<circle cx="380" cy="940" r="5"/><circle cx="440" cy="940" r="5"/>
<circle cx="560" cy="940" r="5"/><circle cx="700" cy="940" r="5"/>
</g>
<g fill="#d62828">
<circle cx="1006" cy="988" r="5"/><circle cx="1120" cy="988" r="5"/>
<circle cx="1334" cy="988" r="5"/><circle cx="500" cy="988" r="5"/>
</g>
<!-- =================================================================== -->
<!-- LEGEND + NOTES -->
<!-- =================================================================== -->
<rect class="panel" x="60" y="742" width="300" height="176" rx="6"/>
<text class="hdr" x="76" y="768">WIRE COLOURS</text>
<g stroke-width="4.6" stroke-linecap="round">
<line x1="80" y1="790" x2="118" y2="790" stroke="#d62828"/><text x="128" y="795" font-size="12.5">3V3</text>
<line x1="80" y1="812" x2="118" y2="812" stroke="#22252a"/><text x="128" y="817" font-size="12.5">GND</text>
<line x1="80" y1="834" x2="118" y2="834" stroke="#00a0b0"/><text x="128" y="839" font-size="12.5">SCL</text>
<line x1="80" y1="856" x2="118" y2="856" stroke="#1f6feb"/><text x="128" y="861" font-size="12.5">SDA</text>
<line x1="80" y1="878" x2="118" y2="878" stroke="#2a9d4a"/><text x="128" y="883" font-size="12.5">LED drive</text>
<line x1="212" y1="790" x2="250" y2="790" stroke="#e07b00"/><text x="260" y="795" font-size="12.5">SCK</text>
<line x1="212" y1="812" x2="250" y2="812" stroke="#b5179e"/><text x="260" y="817" font-size="12.5">MOSI</text>
<line x1="212" y1="834" x2="250" y2="834" stroke="#7209b7"/><text x="260" y="839" font-size="12.5">MISO</text>
<line x1="212" y1="856" x2="250" y2="856" stroke="#c99700"/><text x="260" y="861" font-size="12.5">CS</text>
</g>
<rect class="panel" x="60" y="92" width="490" height="336" rx="6"/>
<text class="hdr" x="78" y="118">NOTES</text>
<text class="note" x="78" y="144">SPI is split across both headers: MOSI / MISO / CS sit on CN3</text>
<text class="note" x="78" y="162">(D11 / D12 / D10) but SCK is CN4 pin 15 (D13). One jumper has</text>
<text class="note" x="78" y="180">to cross to the far side of the board - that is normal here.</text>
<text class="note" x="78" y="206">I2C is wired to A5 / A4 on CN4. Solder bridges SB16 / SB18 are</text>
<text class="note" x="78" y="224">closed from the factory, which puts PB6 / PB7 on those pads.</text>
<text class="note" x="78" y="242">D5 / D4 on CN3 are the same two nets - either pair works.</text>
<text class="note" x="78" y="268">Do not power the sensors from 5V. MS5611 runs on 1.8 - 3.6 V.</text>
<text class="note" x="78" y="294">Both LEDs are external and active high: the GPIO drives the</text>
<text class="note" x="78" y="312">anode through 510 R. LD3 on the board cannot be used - it</text>
<text class="note" x="78" y="330">shares PB3 with SPI1 SCK.</text>
<text class="note" x="78" y="356">A dot means the wire connects to the rail. Wires that merely</text>
<text class="note" x="78" y="374">cross without a dot are not connected.</text>
<text class="note" x="78" y="400">Sensor #2 is drawn turned 180 deg so its pad row faces the board -</text>
<text class="note" x="78" y="418">that is why its pads read PS first and VCC last.</text>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB