Firmware (Arduino Nano ESP32 / PlatformIO): - Native ASCOM Alpaca CoverCalibrator REST API on port 11111 - Alnitak serial protocol on USB at 9600 baud (simultaneous with WiFi) - MG995 servo cover mechanism with non-blocking state machine (D9) - LED brightness PWM via IRLZ44N MOSFET, LEDC channel 0 (D3) - 12V dew heater PWM via IRLZ44N MOSFET, LEDC channel 1 (D5) - mDNS + UDP Alpaca discovery, WiFi watchdog reconnect - SERIAL_DEBUG flag to silence debug output in USB-only mode INDI driver (C++ / libcurl / nlohmann-json): - WiFi mode: HTTP Alpaca via libcurl - USB mode: Alnitak serial via POSIX termios - LightBoxInterface + DustCapInterface + dew heater number property Python controller (PyQt6): - Dark-themed desktop app for direct manual control - AlpacaBackend (requests) + AlnitakBackend (pyserial) - PollWorker QThread; cover, brightness, dew heater panels - QSettings persistence; auto serial port discovery Docs: - system-diagram.svg, wiring-diagram.svg (browser-renderable SVG) - BUILD_NOTES.md with BOM, LM2596 calibration, power-on checklist - WIRING.md quick-reference, README.md, CHANGELOG.md
313 lines
21 KiB
XML
313 lines
21 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640">
|
||
|
||
<defs>
|
||
<!-- Small filled resistor symbol via marker (not used – rendered inline) -->
|
||
<marker id="a-red" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#c62828"/>
|
||
</marker>
|
||
<marker id="a-orange" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#e65100"/>
|
||
</marker>
|
||
<marker id="a-black" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#212121"/>
|
||
</marker>
|
||
<marker id="a-blue" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#1565c0"/>
|
||
</marker>
|
||
<marker id="a-yellow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#f9a825"/>
|
||
</marker>
|
||
<marker id="a-grey" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#616161"/>
|
||
</marker>
|
||
<marker id="a-purple" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
||
<polygon points="0 0,8 3,0 6" fill="#6a1b9a"/>
|
||
</marker>
|
||
</defs>
|
||
|
||
<!-- White background -->
|
||
<rect width="960" height="640" fill="white"/>
|
||
|
||
<!-- Title -->
|
||
<text x="480" y="30" text-anchor="middle"
|
||
font-family="Segoe UI, Arial, sans-serif" font-size="17" font-weight="bold" fill="#212121">
|
||
ESP32 FlatPanel — Wiring Diagram
|
||
</text>
|
||
<text x="480" y="48" text-anchor="middle"
|
||
font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#777">
|
||
Wire colours: red=12V orange=5V black=GND blue=PWM signal yellow=servo signal grey=load output
|
||
</text>
|
||
|
||
<!-- ═══════════════════════════════════════════════════════════ COMPONENTS -->
|
||
|
||
<!-- 12V PSU -->
|
||
<rect x="30" y="70" width="130" height="80" rx="8" fill="#fff8e1" stroke="#f57f17" stroke-width="2"/>
|
||
<text x="95" y="100" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#e65100">12V PSU</text>
|
||
<text x="95" y="118" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">≥ 4A</text>
|
||
<!-- Terminals -->
|
||
<circle cx="50" cy="140" r="5" fill="#c62828"/><text x="50" y="158" text-anchor="middle" font-size="9" fill="#333">12V+</text>
|
||
<circle cx="95" cy="140" r="5" fill="#212121"/><text x="95" y="158" text-anchor="middle" font-size="9" fill="#333">GND</text>
|
||
<circle cx="140" cy="140" r="5" fill="#c62828"/><text x="140" y="158" text-anchor="middle" font-size="9" fill="#333">12V+</text>
|
||
|
||
<!-- LM2596 Buck Converter -->
|
||
<rect x="210" y="70" width="140" height="80" rx="8" fill="#f9fbe7" stroke="#827717" stroke-width="2"/>
|
||
<text x="280" y="97" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#558b2f">LM2596 Buck</text>
|
||
<text x="280" y="113" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">Set to 5.0V first!</text>
|
||
<circle cx="225" cy="140" r="5" fill="#c62828"/><text x="225" y="158" text-anchor="middle" font-size="9" fill="#333">IN+</text>
|
||
<circle cx="255" cy="140" r="5" fill="#212121"/><text x="255" y="158" text-anchor="middle" font-size="9" fill="#333">IN−</text>
|
||
<circle cx="305" cy="140" r="5" fill="#e65100"/><text x="305" y="158" text-anchor="middle" font-size="9" fill="#333">OUT+</text>
|
||
<circle cx="335" cy="140" r="5" fill="#212121"/><text x="335" y="158" text-anchor="middle" font-size="9" fill="#333">OUT−</text>
|
||
|
||
<!-- Arduino Nano ESP32 -->
|
||
<rect x="370" y="200" width="180" height="260" rx="10" fill="#e3f2fd" stroke="#1565c0" stroke-width="2.5"/>
|
||
<text x="460" y="226" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#0d47a1">Arduino Nano ESP32</text>
|
||
<!-- Pin labels -->
|
||
<text x="460" y="252" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">D9 → servo</text>
|
||
<text x="460" y="268" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">D3 → LED MOSFET gate</text>
|
||
<text x="460" y="284" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">D5 → Dew MOSFET gate</text>
|
||
<line x1="385" y1="295" x2="535" y2="295" stroke="#90caf9" stroke-width="1"/>
|
||
<text x="460" y="315" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">VIN ← 5V</text>
|
||
<text x="460" y="331" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">GND ← common GND</text>
|
||
<line x1="385" y1="342" x2="535" y2="342" stroke="#90caf9" stroke-width="1"/>
|
||
<text x="460" y="362" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">USB-C → PC</text>
|
||
<text x="460" y="378" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">(Alnitak 9600 baud)</text>
|
||
<text x="460" y="400" text-anchor="middle" font-family="Courier New, monospace" font-size="9" fill="#555">WiFi → Alpaca :11111</text>
|
||
<!-- ESP32 terminals (left side going out to servo) -->
|
||
<circle cx="370" cy="252" r="5" fill="#f9a825"/> <!-- D9 servo -->
|
||
<circle cx="370" cy="268" r="5" fill="#1565c0"/> <!-- D3 LED PWM -->
|
||
<circle cx="370" cy="284" r="5" fill="#1565c0"/> <!-- D5 Dew PWM -->
|
||
<circle cx="370" cy="315" r="5" fill="#e65100"/> <!-- VIN 5V -->
|
||
<circle cx="370" cy="331" r="5" fill="#212121"/> <!-- GND -->
|
||
<!-- USB port symbol on right -->
|
||
<rect x="542" y="358" width="8" height="16" rx="2" fill="#666"/>
|
||
<text x="556" y="370" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#555">USB-C</text>
|
||
|
||
<!-- MG995 Servo -->
|
||
<rect x="30" y="290" width="140" height="80" rx="8" fill="#e8f5e9" stroke="#2e7d32" stroke-width="2"/>
|
||
<text x="100" y="320" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#1b5e20">MG995 Servo</text>
|
||
<text x="100" y="338" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#388e3c">Cover mechanism</text>
|
||
<circle cx="50" cy="360" r="5" fill="#212121"/><text x="50" y="378" text-anchor="middle" font-size="9" fill="#333">GND</text>
|
||
<circle cx="100" cy="360" r="5" fill="#e65100"/><text x="100" y="378" text-anchor="middle" font-size="9" fill="#333">5V</text>
|
||
<circle cx="150" cy="360" r="5" fill="#f9a825"/><text x="150" y="378" text-anchor="middle" font-size="9" fill="#333">Signal</text>
|
||
|
||
<!-- MOSFET-A (LED) -->
|
||
<rect x="210" y="290" width="140" height="100" rx="8" fill="#fff9c4" stroke="#f57f17" stroke-width="2"/>
|
||
<text x="280" y="317" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="11" font-weight="bold" fill="#e65100">IRLZ44N</text>
|
||
<text x="280" y="333" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#e65100">MOSFET-A (LED)</text>
|
||
<text x="280" y="349" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="9" fill="#777">Gate – Drain – Source</text>
|
||
<circle cx="235" cy="370" r="5" fill="#1565c0"/><text x="235" y="388" text-anchor="middle" font-size="9" fill="#333">Gate</text>
|
||
<circle cx="280" cy="370" r="5" fill="#616161"/><text x="280" y="388" text-anchor="middle" font-size="9" fill="#333">Drain</text>
|
||
<circle cx="325" cy="370" r="5" fill="#212121"/><text x="325" y="388" text-anchor="middle" font-size="9" fill="#333">Source</text>
|
||
|
||
<!-- MOSFET-B (Dew) -->
|
||
<rect x="210" y="430" width="140" height="100" rx="8" fill="#fce4ec" stroke="#c62828" stroke-width="2"/>
|
||
<text x="280" y="457" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="11" font-weight="bold" fill="#b71c1c">IRLZ44N</text>
|
||
<text x="280" y="473" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#b71c1c">MOSFET-B (Dew)</text>
|
||
<text x="280" y="489" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="9" fill="#777">Gate – Drain – Source</text>
|
||
<circle cx="235" cy="510" r="5" fill="#1565c0"/><text x="235" y="528" text-anchor="middle" font-size="9" fill="#333">Gate</text>
|
||
<circle cx="280" cy="510" r="5" fill="#616161"/><text x="280" y="528" text-anchor="middle" font-size="9" fill="#333">Drain</text>
|
||
<circle cx="325" cy="510" r="5" fill="#212121"/><text x="325" y="528" text-anchor="middle" font-size="9" fill="#333">Source</text>
|
||
|
||
<!-- LED Panel -->
|
||
<rect x="680" y="270" width="180" height="80" rx="8" fill="#fffde7" stroke="#f9a825" stroke-width="2"/>
|
||
<text x="770" y="300" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#e65100">LED Panel (12V)</text>
|
||
<text x="770" y="318" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">White high-CRI strip</text>
|
||
<text x="770" y="334" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">+ frosted acrylic</text>
|
||
<circle cx="710" cy="342" r="5" fill="#c62828"/><text x="710" y="360" text-anchor="middle" font-size="9" fill="#333">LED+</text>
|
||
<circle cx="760" cy="342" r="5" fill="#616161"/><text x="760" y="360" text-anchor="middle" font-size="9" fill="#333">LED−</text>
|
||
|
||
<!-- Dew Heater Element -->
|
||
<rect x="680" y="420" width="180" height="80" rx="8" fill="#fbe9e7" stroke="#c62828" stroke-width="2"/>
|
||
<text x="770" y="450" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#b71c1c">Dew Heater</text>
|
||
<text x="770" y="468" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">Nichrome / heating tape</text>
|
||
<text x="770" y="484" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="10" fill="#777">~24Ω 6W @ 12V</text>
|
||
<circle cx="710" cy="492" r="5" fill="#c62828"/><text x="710" y="510" text-anchor="middle" font-size="9" fill="#333">H+</text>
|
||
<circle cx="760" cy="492" r="5" fill="#616161"/><text x="760" y="510" text-anchor="middle" font-size="9" fill="#333">H−</text>
|
||
|
||
<!-- ═══════════════════════════════════════════════════════════════ WIRES -->
|
||
|
||
<!-- 12V rail: PSU 12V+ → LM2596 IN+ -->
|
||
<line x1="140" y1="140" x2="225" y2="140" stroke="#c62828" stroke-width="2.5" marker-end="url(#a-red)"/>
|
||
|
||
<!-- GND rail: PSU GND → LM2596 IN− -->
|
||
<line x1="95" y1="140" x2="100" y2="175" stroke="#212121" stroke-width="2.5"/>
|
||
<line x1="100" y1="175" x2="255" y2="175" stroke="#212121" stroke-width="2.5" marker-end="url(#a-black)"/>
|
||
<text x="168" y="170" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#333">GND bus</text>
|
||
|
||
<!-- 5V rail: LM2596 OUT+ → ESP32 VIN -->
|
||
<line x1="305" y1="140" x2="340" y2="140" stroke="#e65100" stroke-width="2.5"/>
|
||
<line x1="340" y1="140" x2="340" y2="315" stroke="#e65100" stroke-width="2.5"/>
|
||
<line x1="340" y1="315" x2="370" y2="315" stroke="#e65100" stroke-width="2.5" marker-end="url(#a-orange)"/>
|
||
<text x="322" y="230" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#e65100"
|
||
transform="rotate(-90, 322, 230)">5V</text>
|
||
|
||
<!-- 5V rail: LM2596 OUT+ → MG995 VCC -->
|
||
<line x1="340" y1="330" x2="200" y2="330" stroke="#e65100" stroke-width="2.5"/>
|
||
<line x1="200" y1="330" x2="200" y2="360" stroke="#e65100" stroke-width="2.5"/>
|
||
<line x1="200" y1="360" x2="150" y2="360" stroke="#e65100" stroke-width="2.5" marker-end="url(#a-orange)"/>
|
||
|
||
<!-- GND rail: LM2596 OUT− → ESP32 GND -->
|
||
<line x1="335" y1="175" x2="355" y2="175" stroke="#212121" stroke-width="2.5"/>
|
||
<line x1="355" y1="175" x2="355" y2="331" stroke="#212121" stroke-width="2.5"/>
|
||
<line x1="355" y1="331" x2="370" y2="331" stroke="#212121" stroke-width="2.5" marker-end="url(#a-black)"/>
|
||
|
||
<!-- GND rail: → MG995 GND -->
|
||
<line x1="355" y1="360" x2="100" y2="360" stroke="#212121" stroke-width="2.5" marker-end="url(#a-black)"/>
|
||
|
||
<!-- GND rail: → MOSFET-A Source -->
|
||
<line x1="325" y1="370" x2="325" y2="390" stroke="#212121" stroke-width="2.5"/>
|
||
<line x1="325" y1="390" x2="355" y2="390" stroke="#212121" stroke-width="2.5"/>
|
||
<line x1="355" y1="390" x2="355" y2="510" stroke="#212121" stroke-width="2.5"/>
|
||
|
||
<!-- GND rail: → MOSFET-B Source -->
|
||
<line x1="355" y1="510" x2="325" y2="510" stroke="#212121" stroke-width="2.5" marker-end="url(#a-black)"/>
|
||
|
||
<!-- Servo signal: ESP32 D9 → MG995 Signal -->
|
||
<line x1="370" y1="252" x2="200" y2="252" stroke="#f9a825" stroke-width="2" stroke-dasharray="6,3"/>
|
||
<line x1="200" y1="252" x2="200" y2="290" stroke="#f9a825" stroke-width="2" stroke-dasharray="6,3"/>
|
||
<line x1="200" y1="290" x2="170" y2="290" stroke="#f9a825" stroke-width="2" stroke-dasharray="6,3"/>
|
||
<line x1="170" y1="290" x2="170" y2="360" stroke="#f9a825" stroke-width="2" stroke-dasharray="6,3" marker-end="url(#a-yellow)"/>
|
||
<text x="220" y="248" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#f9a825">D9 servo</text>
|
||
|
||
<!-- LED PWM: ESP32 D3 → 100Ω → MOSFET-A Gate -->
|
||
<!-- Wire from ESP32 D3 terminal -->
|
||
<line x1="370" y1="268" x2="248" y2="268" stroke="#1565c0" stroke-width="2"/>
|
||
<line x1="248" y1="268" x2="248" y2="290" stroke="#1565c0" stroke-width="2"/>
|
||
<!-- 100Ω resistor symbol (small rect) -->
|
||
<rect x="237" y="290" width="22" height="10" rx="2" fill="#fff" stroke="#1565c0" stroke-width="1.5"/>
|
||
<text x="248" y="299" text-anchor="middle" font-family="Courier New, monospace" font-size="7" fill="#1565c0">100R</text>
|
||
<!-- Continue to gate -->
|
||
<line x1="248" y1="300" x2="248" y2="370" stroke="#1565c0" stroke-width="2"/>
|
||
<line x1="248" y1="370" x2="235" y2="370" stroke="#1565c0" stroke-width="2" marker-end="url(#a-blue)"/>
|
||
<!-- 10kΩ pull-down from gate node to GND -->
|
||
<line x1="248" y1="340" x2="230" y2="340" stroke="#1565c0" stroke-width="1" stroke-dasharray="3,2"/>
|
||
<rect x="218" y="332" width="12" height="16" rx="2" fill="#fff" stroke="#999" stroke-width="1"/>
|
||
<text x="224" y="343" text-anchor="middle" font-family="Courier New, monospace" font-size="6" fill="#777">10k</text>
|
||
<text x="208" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#1565c0">D3</text>
|
||
|
||
<!-- Dew PWM: ESP32 D5 → 100Ω → MOSFET-B Gate -->
|
||
<line x1="370" y1="284" x2="185" y2="284" stroke="#1565c0" stroke-width="2"/>
|
||
<line x1="185" y1="284" x2="185" y2="510" stroke="#1565c0" stroke-width="2"/>
|
||
<!-- 100Ω resistor -->
|
||
<rect x="174" y="490" width="22" height="10" rx="2" fill="#fff" stroke="#1565c0" stroke-width="1.5"/>
|
||
<text x="185" y="499" text-anchor="middle" font-family="Courier New, monospace" font-size="7" fill="#1565c0">100R</text>
|
||
<line x1="185" y1="500" x2="185" y2="510" stroke="#1565c0" stroke-width="2"/>
|
||
<line x1="185" y1="510" x2="235" y2="510" stroke="#1565c0" stroke-width="2" marker-end="url(#a-blue)"/>
|
||
<!-- 10kΩ pull-down -->
|
||
<line x1="185" y1="470" x2="165" y2="470" stroke="#1565c0" stroke-width="1" stroke-dasharray="3,2"/>
|
||
<rect x="153" y="462" width="12" height="16" rx="2" fill="#fff" stroke="#999" stroke-width="1"/>
|
||
<text x="159" y="473" text-anchor="middle" font-family="Courier New, monospace" font-size="6" fill="#777">10k</text>
|
||
<text x="196" y="281" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#1565c0">D5</text>
|
||
|
||
<!-- 12V rail: PSU → 12V bus (vertical red rail on right) -->
|
||
<line x1="50" y1="140" x2="50" y2="165" stroke="#c62828" stroke-width="2.5"/>
|
||
<line x1="50" y1="165" x2="660" y2="165" stroke="#c62828" stroke-width="3"/>
|
||
<text x="550" y="160" font-family="Segoe UI, Arial, sans-serif" font-size="10"
|
||
font-weight="bold" fill="#c62828">12V rail</text>
|
||
|
||
<!-- 12V → LED Panel LED+ -->
|
||
<line x1="660" y1="165" x2="660" y2="310" stroke="#c62828" stroke-width="2.5"/>
|
||
<line x1="660" y1="310" x2="710" y2="310" stroke="#c62828" stroke-width="2.5" marker-end="url(#a-red)"/>
|
||
|
||
<!-- 12V → Dew Heater H+ -->
|
||
<line x1="640" y1="165" x2="640" y2="460" stroke="#c62828" stroke-width="2.5"/>
|
||
<line x1="640" y1="460" x2="710" y2="460" stroke="#c62828" stroke-width="2.5" marker-end="url(#a-red)"/>
|
||
|
||
<!-- MOSFET-A Drain → LED− (load output wire) -->
|
||
<line x1="280" y1="370" x2="280" y2="410" stroke="#616161" stroke-width="2"/>
|
||
<line x1="280" y1="410" x2="620" y2="410" stroke="#616161" stroke-width="2"/>
|
||
<line x1="620" y1="410" x2="620" y2="342" stroke="#616161" stroke-width="2"/>
|
||
<line x1="620" y1="342" x2="760" y2="342" stroke="#616161" stroke-width="2" marker-end="url(#a-grey)"/>
|
||
<text x="430" y="406" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#616161">LED− (via MOSFET-A drain)</text>
|
||
|
||
<!-- MOSFET-B Drain → Dew Heater H− -->
|
||
<line x1="280" y1="510" x2="280" y2="555" stroke="#616161" stroke-width="2"/>
|
||
<line x1="280" y1="555" x2="635" y2="555" stroke="#616161" stroke-width="2"/>
|
||
<line x1="635" y1="555" x2="635" y2="492" stroke="#616161" stroke-width="2"/>
|
||
<line x1="635" y1="492" x2="760" y2="492" stroke="#616161" stroke-width="2" marker-end="url(#a-grey)"/>
|
||
<text x="430" y="551" font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#616161">H− (via MOSFET-B drain)</text>
|
||
|
||
<!-- ═══════════════════════════════════════════════════════════════ LEGEND -->
|
||
<rect x="560" y="60" width="200" height="190" rx="8" fill="#f5f5f5" stroke="#bdbdbd" stroke-width="1.5"/>
|
||
<text x="660" y="82" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif"
|
||
font-size="12" font-weight="bold" fill="#333">Wire Legend</text>
|
||
|
||
<!-- Red -->
|
||
<line x1="578" y1="100" x2="618" y2="100" stroke="#c62828" stroke-width="3"/>
|
||
<text x="626" y="104" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">12V positive</text>
|
||
|
||
<!-- Orange -->
|
||
<line x1="578" y1="120" x2="618" y2="120" stroke="#e65100" stroke-width="3"/>
|
||
<text x="626" y="124" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">5V positive</text>
|
||
|
||
<!-- Black -->
|
||
<line x1="578" y1="140" x2="618" y2="140" stroke="#212121" stroke-width="3"/>
|
||
<text x="626" y="144" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">GND / ground</text>
|
||
|
||
<!-- Blue solid -->
|
||
<line x1="578" y1="160" x2="618" y2="160" stroke="#1565c0" stroke-width="2"/>
|
||
<text x="626" y="164" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">PWM signal</text>
|
||
|
||
<!-- Yellow dashed -->
|
||
<line x1="578" y1="180" x2="618" y2="180" stroke="#f9a825" stroke-width="2" stroke-dasharray="6,3"/>
|
||
<text x="626" y="184" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">Servo signal</text>
|
||
|
||
<!-- Grey -->
|
||
<line x1="578" y1="200" x2="618" y2="200" stroke="#616161" stroke-width="2"/>
|
||
<text x="626" y="204" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">Load output</text>
|
||
|
||
<!-- Resistor symbol -->
|
||
<rect x="578" y="214" width="20" height="10" rx="2" fill="#fff" stroke="#555" stroke-width="1.5"/>
|
||
<text x="626" y="224" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">Resistor</text>
|
||
|
||
<!-- ═══════════════════════════════════════════════════════════ NOTES BOX -->
|
||
<rect x="560" y="265" width="380" height="140" rx="8" fill="#e3f2fd" stroke="#1565c0" stroke-width="1.5"/>
|
||
<text x="570" y="287" font-family="Segoe UI, Arial, sans-serif" font-size="11" font-weight="bold" fill="#0d47a1">
|
||
⚠ Build Order
|
||
</text>
|
||
<text x="570" y="305" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">
|
||
1. Set LM2596 to 5.0V BEFORE connecting servo or ESP32
|
||
</text>
|
||
<text x="570" y="321" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">
|
||
2. Add 10kΩ Gate→GND pull-downs on both MOSFETs
|
||
</text>
|
||
<text x="570" y="337" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">
|
||
3. Add 100Ω Gate series resistors on both MOSFETs
|
||
</text>
|
||
<text x="570" y="353" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">
|
||
4. Test LED MOSFET with 5V bench supply before 12V
|
||
</text>
|
||
<text x="570" y="369" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#333">
|
||
5. Flash firmware & verify via Serial before full assembly
|
||
</text>
|
||
<text x="570" y="393" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#777">
|
||
MOSFET IRLZ44N pinout (flat face towards you): Gate | Drain | Source
|
||
</text>
|
||
|
||
<!-- Footer -->
|
||
<text x="480" y="625" text-anchor="middle"
|
||
font-family="Segoe UI, Arial, sans-serif" font-size="9" fill="#999">
|
||
Not a certified schematic — verify all connections before powering on. v1.1
|
||
</text>
|
||
|
||
</svg>
|