Skip to the content
PCBKitNew board
2 layers75.9 × 22 mmIwand, the printed circuit board in 3D

KiCad schematic for the iWand color-identifying wand (Seeed XIAO ESP32S3 + GY-33 color sensor + DFPlayer Mini + AO3400 power gating). See firmware/CLAUDE.md for how the pin assignments here map to the firmware.

Size
75.9 × 22 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
32
Pads
67
Tracks, vias
216, 69
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
24 Sep 2026
Updated
31 Oct 2026

Overview

Iwand is an open-source printed circuit board by dangwalsh, from the dangwalsh/iwand repository on GitHub. It is a 2-layer board of 75.9 × 22 mm with 17 parts on 32 nets, routed with 216 tracks and 69 vias.

It is built around the AO3400. Its parts include 6 resistors, 5 connectors, 2 ICs, 2 transistors and 1 capacitor. It belongs with the ESP32 boards of this library.

Main components

1

README

electrical/README.md

iWand Electrical

KiCad schematic for the iWand color-identifying wand (Seeed XIAO ESP32S3 + GY-33 color sensor + DFPlayer Mini + AO3400 power gating). See firmware/CLAUDE.md for how the pin assignments here map to the firmware.

Dependencies

  • KiCad 7.0 or newer (developed with KiCad 10). The schematic (iwand.kicad_sch) is in the KiCad 7 s-expression format (version 20230121). Older KiCad versions won't open it.

The module symbols (wand_parts:XIAO_ESP32S3, wand_parts:DFPlayer_Mini) are embedded directly in iwand.kicad_sch, so there's no external symbol library to install. ERC warns that the wand_parts library isn't configured and that Device:Q_NMOS_GDS is missing from KiCad's current Device library. Both warnings are harmless, because the embedded copies are used.

Footprints

Project footprints live in iwand.pretty, registered through the project's fp-lib-table as iwand:

FootprintUsed bySource
XIAO_ESP32S3_SocketU1Pad positions from Seeed's XIAO-ESP32-S3-DIP, without its castellated SMD pads. USB-C is at +X; B+/B- on the fab layer mark the underside battery pads.
DFPlayer_Mini_SocketU3DFR0299 datasheet drawing: 20.32 mm square, 2 x 8 pins, rows 18.034 mm apart.
AO3400_SOT23_AdapterQ1, Q21 x 3 pins in the adapter board's S-D-G order (adapter labels 2-3-1). Pads are numbered for Q_NMOS_GDS. The adapter outline (~7.6 x 10 mm) is estimated from a photo.

Everything else is stock KiCad:

  • DIN0207 through-hole resistors, lying flat
  • a 3 mm disc capacitor
  • a C&K OS102011MA1QN1-style right-angle slide switch
  • JST-PH side-entry sockets (J1-J4)
  • a JST-PH top-entry socket (J5, B2B-PH-K). It takes the same PHR-2 plug as J1-J4, but a side-entry one doesn't fit between Q2 and SW2.

Board

The board is 75.9 x 22 mm, laid out as a "spine" along the wand. From the rear:

  • J4 battery, J2 speaker and J3 button plugs, facing the rear
  • the XIAO, with USB-C over the lower long edge; R1-R6 lie flat underneath it
  • Q1/Q2 with J5, SW2 and C1
  • the DFPlayer
  • J1, facing forward to the GY-33

The module sockets are 3M 929870 low-profile strips, 3.8 mm tall, bought as 10-pin strips and cut to length. In them, the XIAO sits about 6.3 mm up (3.8 mm socket + 2.5 mm pin spacer). Its courtyard therefore covers only its socket strips and USB plug, so parts up to about 5 mm tall can go underneath.

For the 3D view:

  • Sockets: 3M's STEP model is a 10-pin strip, so the view uses KiCad's 1x7/1x8 socket models scaled to 3.8 mm instead.
  • XIAO: Seeed's STEP file (in 3dmodels/), drawn 6.3 mm up. The pin spacer under it isn't modelled.
  • DFPlayer: DFRobot's DFR0299 STEP file (in 3dmodels/, drawn in inches, Y-up). It includes the module's own pin header, with its spacer resting on the socket top. Its microSD slot opens toward the front of the board, facing J1.

Do a dry fit before soldering. A standard 6 mm male pin may bottom out in a 3.8 mm socket and ride slightly higher than 6.3 mm.

Mounting and off-board parts

  • U1 and U3 plug into female header sockets so they stay removable. Q1/Q2 are AO3400s already soldered to SOT-23 adapter boards, which are mounted flat on their pins.
  • The GY-33, speaker, wake button and battery sit off the board on JST-PH connectors:
    • J1 (GY-33): a 4-wire pigtail soldered into the sensor's GND/DR/CT/VCC holes, in that order.
    • J2: speaker.
    • J3: wake button.
    • J4: LiPo.
  • JST battery polarity isn't standardised. Check each battery against the board's +/- marks before plugging it in. They're on the front, between J4 and the XIAO socket, and on the back next to BAT.
    • J4 puts + on pin 1, which is the reverse of most LiPo plugs (black/GND on the left). Such a battery needs the two crimps swapped in its JST housing.
    • Boards fabricated before the back-side marks were added only have the small front marks, which the J4 housing hides.
  • The XIAO's battery pads are on its underside, not on its headers. J5 takes a short JST-PH pigtail soldered to those BAT+/BAT- pads (pin 1 = BAT+) so the XIAO can run from, and charge, the battery on J4.

Power and charging

  • The battery stays in the wand and charges through the XIAO's USB-C (about 100 mA).
  • SW2 is the power switch, in the battery + lead (J4 → SW2 → VBAT). Off disconnects everything, including the charger, so the battery only charges with SW2 on.
  • The XIAO's charge LED sits next to its USB-C port, so the enclosure needs a window or light pipe there.
  • R5/R6 (1M each) divide VBAT by 2 into D10, which is an ADC input. C1 (100 nF) steadies the reading. The divider draws about 2 µA, and nothing when SW2 is off.

Routing and fabrication

  • Stack-up: 2 layers, 1.6 mm. Rules: 0.2 mm clearance, 0.5 mm copper to edge. Every connection is routed. DRC and the schematic parity check pass with no errors.
  • Net classes:
    • Default: 0.25 mm tracks, 0.6/0.3 mm vias.
    • Power: 0.5 mm tracks, 0.8/0.4 mm vias. Covers VBAT, BAT_IN, GND, SPK1/SPK2, AUDIO_GND and SENSOR_GND. Branches to R5/R6/C1 and the gate resistors use 0.25 mm, since they carry almost no current.
  • Module socket pads: 1.6 mm, so a 0.25 mm track can pass between two 2.54 mm-pitch pins.
  • Ground: GND pours on both layers, tied together by stitching vias.
  • Fab files: fab/iwand-gerbers.zip (copper, mask, silkscreen, edge cuts, and plated and non-plated drill files). Regenerate it with KiCad's Fabrication Outputs, or with kicad-cli pcb export gerbers / export drill, after any board change.

Parts

17
QtyValueFootprintReferences
2100Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3
210kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R4
21MResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R6
2AO3400iwand:AO3400_SOT23_AdapterQ1, Q2
1100nCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1
1DFPlayer Miniiwand:DFPlayer_Mini_SocketU3
1GY-33 (GND DR CT VCC)Connector_JST:JST_PH_S4B-PH-K_1x04_P2.00mm_HorizontalJ1
1LiPo 3.7V (+ -)Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ4
1PowerButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW2
1Speaker 8RConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ2
1Wake button SW1Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ3
1XIAO BAT+ BAT- linkConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ5
1XIAO ESP32-S3iwand:XIAO_ESP32S3_SocketU1

Questions

How big is the Iwand PCB?

It measures 75.9 × 22 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Iwand use?

17 parts, built around the AO3400. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Iwand KiCad files?

From the dangwalsh/iwand repository on GitHub, at the commit this page was made from: the board is electrical/iwand.kicad_pcb and its schematic electrical/iwand.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Iwand design in my own project?

Its repository states no licence, so its author keeps all rights: ask dangwalsh before reusing the design.

Similar boards

  • 2 layers55 × 80 mmBoard esp32 v2, the printed circuit board in 3D

    Board esp32 v2

    sudomesh/disaster-radio

    A (paused) work-in-progress long-range, low-bandwidth wireless disaster recovery mesh network powered by the sun.

    101 parts1.1k
  • 2 layers59.2 × 52.9 mmMagic epaper, the printed circuit board in 3D

    Magic epaper

    fossasia/magic-epaper-hardware

    Magic ePaper Hardware

    57 parts1kApache-2.0
  • 2 layers155.5 × 130 mmEinkpicframe, the printed circuit board in 3D

    Einkpicframe

    Spritetm/picframe_colepd

    A WiFi picture frame allowing for remote photo uploads, using an ESP32-C3 and a 5.6" color E-ink display

    60 parts97
  • 2 layers100 × 93 mmSpeeduino base, the printed circuit board in 3D

    Speeduino base

    Tjeerdie/SPECTRE

    Speeduino compatible engine control unit (ECU) based around black STM32F407VET6 board.

    213 parts59GPL-3.0
  • 2 layers128 × 77 mmScale, the printed circuit board in 3D

    Scale

    Jana-Marie/lab-balance

    https://twitter.com/_Jana_Marie/status/1270040286710968321

    59 parts34
  • 2 layers36 × 100 mmEleph, the printed circuit board in 3D

    Eleph

    FeruzTopalov/eleph

    GPS-based local relative navigation system for group of up to 6 members

    56 parts24GPL-3.0
  • 2 layers55.5 × 33 mmCode, the printed circuit board in 3D

    Code

    evyd13/wasdat

    Controller for WASD V2/CODE

    29 parts16CC-BY-SA-4.0
  • 2 layers50 × 100 mmSpoke, the printed circuit board in 3D

    Spoke

    FeruzTopalov/spoke

    Standalone LoRa-based real-time off-grid relative GPS navigation for group of up to 5 people. Improved version of LRNS Eleph

    143 parts16GPL-3.0