Files
sapien/docs/assets/esp32-pn532-photo-overlay.svg
2026-05-17 19:17:49 -05:00

92 lines
5.2 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="940" viewBox="0 0 1600 940" role="img" aria-labelledby="title desc">
<title id="title">Photo overlay wiring guide for XIAO ESP32-S3 and PN532 NFC module</title>
<desc id="desc">Annotated photo overlay showing common ESP32 DevKit pins wired to PN532 I2C pins for the L484 NFC door reader.</desc>
<defs>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="14" stdDeviation="16" flood-color="#000000" flood-opacity="0.5"/>
</filter>
<style>
.bg { fill: #050505; }
.photoFrame { fill: #101010; stroke: #2c2c2c; stroke-width: 2; }
.title { fill: #fafafa; font: 800 34px Inter, Arial, sans-serif; letter-spacing: 0.08em; }
.subtitle { fill: #a8a8a8; font: 600 17px Inter, Arial, sans-serif; letter-spacing: 0.07em; }
.note { fill: #f2ad24; font: 800 17px Inter, Arial, sans-serif; letter-spacing: 0.08em; }
.body { fill: #bdbdbd; font: 600 16px Inter, Arial, sans-serif; }
.pinDot { fill: #050505; stroke-width: 5; }
.wire { fill: none; stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; }
.halo { fill: none; stroke: #ffffff; stroke-width: 14; stroke-opacity: 0.18; stroke-linecap: round; stroke-linejoin: round; }
.tag { fill: #111111; stroke-width: 2; }
.tagText { fill: #fafafa; font: 800 15px Inter, Arial, sans-serif; letter-spacing: 0.08em; }
</style>
</defs>
<rect class="bg" width="1600" height="940"/>
<text class="title" x="60" y="70">XIAO ESP32-S3 + PN532 WIRING OVERLAY</text>
<text class="subtitle" x="62" y="104">SUPPLIED BOARD PHOTOS, PN532 IN I2C MODE</text>
<g filter="url(#shadow)">
<rect class="photoFrame" x="62" y="140" width="462" height="654" rx="24"/>
<image href="../esp32.jpg" x="102" y="165" width="382" height="624" preserveAspectRatio="xMidYMid meet"/>
</g>
<g filter="url(#shadow)">
<rect class="photoFrame" x="1012" y="140" width="526" height="654" rx="24"/>
<image href="../PN532.jpg" x="1048" y="204" width="454" height="454" preserveAspectRatio="xMidYMid meet"/>
</g>
<!-- XIAO ESP32-S3 target dots. Confirm against the board silkscreen before powering. -->
<circle class="pinDot" cx="455" cy="728" r="12" stroke="#e23a3a"/>
<circle class="pinDot" cx="455" cy="690" r="12" stroke="#202020"/>
<circle class="pinDot" cx="455" cy="320" r="12" stroke="#3f8cff"/>
<circle class="pinDot" cx="455" cy="278" r="12" stroke="#ffd23c"/>
<circle class="pinDot" cx="455" cy="604" r="12" stroke="#b96cff"/>
<circle class="pinDot" cx="455" cy="498" r="12" stroke="#34d399"/>
<!-- PN532 exact visible target dots. -->
<circle class="pinDot" cx="1320" cy="402" r="12" stroke="#e23a3a"/>
<circle class="pinDot" cx="1320" cy="364" r="12" stroke="#202020"/>
<circle class="pinDot" cx="1320" cy="440" r="12" stroke="#3f8cff"/>
<circle class="pinDot" cx="1320" cy="478" r="12" stroke="#ffd23c"/>
<circle class="pinDot" cx="1362" cy="301" r="12" stroke="#b96cff"/>
<circle class="pinDot" cx="1400" cy="301" r="12" stroke="#34d399"/>
<path class="halo" d="M455 728 C640 780 1066 548 1320 402"/>
<path class="wire" stroke="#e23a3a" d="M455 728 C640 780 1066 548 1320 402"/>
<path class="halo" d="M455 690 C640 720 1056 502 1320 364"/>
<path class="wire" stroke="#202020" d="M455 690 C640 720 1056 502 1320 364"/>
<path class="halo" d="M455 320 C650 276 1088 410 1320 440"/>
<path class="wire" stroke="#3f8cff" d="M455 320 C650 276 1088 410 1320 440"/>
<path class="halo" d="M455 278 C662 216 1078 452 1320 478"/>
<path class="wire" stroke="#ffd23c" d="M455 278 C662 216 1078 452 1320 478"/>
<path class="halo" d="M455 604 C666 650 1118 298 1362 301"/>
<path class="wire" stroke="#b96cff" d="M455 604 C666 650 1118 298 1362 301"/>
<path class="halo" d="M455 498 C670 526 1138 300 1400 301"/>
<path class="wire" stroke="#34d399" d="M455 498 C670 526 1138 300 1400 301"/>
<g>
<rect class="tag" x="525" y="712" width="164" height="38" rx="10" stroke="#e23a3a"/>
<text class="tagText" x="544" y="737">3V3 -> VCC</text>
<rect class="tag" x="525" y="662" width="168" height="38" rx="10" stroke="#202020"/>
<text class="tagText" x="544" y="687">GND -> GND</text>
<rect class="tag" x="524" y="302" width="188" height="38" rx="10" stroke="#3f8cff"/>
<text class="tagText" x="543" y="327">D4 / GPIO5 -> SDA</text>
<rect class="tag" x="524" y="248" width="188" height="38" rx="10" stroke="#ffd23c"/>
<text class="tagText" x="543" y="273">D5 / GPIO6 -> SCL</text>
<rect class="tag" x="524" y="586" width="168" height="38" rx="10" stroke="#b96cff"/>
<text class="tagText" x="543" y="611">D2 / GPIO3 -> IRQ</text>
<rect class="tag" x="524" y="478" width="216" height="38" rx="10" stroke="#34d399"/>
<text class="tagText" x="543" y="503">D3 / GPIO4 -> RSTO</text>
</g>
<g>
<rect class="tag" x="62" y="815" width="1476" height="72" rx="18" stroke="#f2ad24"/>
<text class="note" x="92" y="846">VERIFY THE SILKSCREEN/PINOUT ON YOUR EXACT XIAO BOARD BEFORE POWERING.</text>
<text class="body" x="92" y="873">Use XIAO D4/GPIO5 for SDA, D5/GPIO6 for SCL, D2/GPIO3 for IRQ, and D3/GPIO4 for reset. Set the PN532 to I2C mode.</text>
</g>
</svg>