Skip to the content
2 layers33.8 × 49.5 mmEspAtomizerpcbv3rev1, the printed circuit board in 3D

EspAtomizerpcbv3rev1

Adamibus/ESPAtomizer-iOS1

This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicadpro in KiCad.

Size
33.8 × 49.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
29
Pads
86
Tracks, vias
150, 4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
26 Nov 2025
Updated
23 Jul 2026

Overview

EspAtomizerpcbv3rev1 is an open-source printed circuit board by Adamibus, from the Adamibus/ESPAtomizer-iOS repository on GitHub. It is a 2-layer board of 33.8 × 49.5 mm with 21 parts on 29 nets, routed with 150 tracks and 4 vias.

It is built around the ADS1115IDGS, IRLB8721PBF and WS2812B-2020. Its parts include 6 resistors, 4 capacitors, 4 connectors, 2 ICs and 2 diodes. It belongs with the ESP32 and RISC-V boards of this library.

Main components

3

README

hardware/ESPAtomizer_PCB/README.md

ESPAtomizer PCB (KiCad skeleton)

This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicad_pro in KiCad.

Note: For local firmware build/upload verification and examples, see tools/README.md. It documents tools/verify_xiao_variants.ps1, a PowerShell helper that builds (and optionally uploads) the firmware for both XIAO ESP32-C3 and XIAO ESP32-C6 environments.

Next steps

  1. Schematic

    • Open ESPAtomizer.kicad_sch
    • Core symbols now used:
      • U2: XIAO:XIAO_ESP32C6_Module (composite symbol) with footprint XIAO:XIAO_ESP32C6_SocketModule (single footprint including both header rows)
      • J4: MAX6675 1×5 socket (3V3, GND, MAX_SCK, MAX_CS, MAX_SO)
      • J2: OLED 1×4 I2C socket (3V3, GND, SDA, SCL)
      • J3: JST‑PH battery input (BAT+, BAT−)
      • SW2: Battery SPST switch inline on BAT+
    • TP4 / TP5: Pogo pads to XIAO BAT (pad 32) and GND (pad 33), bidirectional BAT rail
      • Q2: MOSFET (Transistor_FET:Q_NMOS_GDS) + R3 (100 Ω gate series) + R2 (100 kΩ gate pulldown) + J5 heater terminal (HEATER+ / HEATER−)
      • SW3: Rotary encoder (Rotary_Encoder_Switch) A/B/ENC_SW nets to GPIO0/1/2
    • Net labels: MOSFET_GATE (GPIO16), MAX_SCK (GPIO18), MAX_CS (GPIO20), MAX_SO (GPIO19), ENC_A (GPIO0), ENC_B (GPIO1), ENC_SW (GPIO2), BAT_ADC (GPIO21), SDA/SCL (GPIO22/23), BAT+/BAT−, HEATER+/HEATER−.
    • Note: flyback diode not required for the current resistive heater; omit unless you later add inductive loads.
  2. Board

    • Open ESPAtomizer.kicad_pcb
    • Import netlist (or Update PCB from Schematic)
    • Set board outline to your enclosure; current placeholder is 100×80 mm
    • Route high‑current heater loop with wide copper (≥2–3 mm at 1 oz for ~4 A)
    • Pour GND plane; keep thermocouple inputs away from MOSFET drain trace
    • Place two XIAO socket rows with the correct center‑to‑center spacing (use ~15.5 mm C‑C per your updated measurement; verify on your board). Leave keepout under module.
    • Place J_BAT near board edge; route BAT+ from J_BAT through SW1 before joining TBAT+ to the XIAO BAT+
  3. Powering from 1S LiPo

    • Bring BAT+ / BAT− from J3 into the board, then to the XIAO BAT pad via a direct trace and common GND. Use the JST pad (J3) for permanent battery attachment; TP4/TP5 pogo pads remain optional service points.
    • Add the hardware battery switch SW2 inline on BAT+ (full disconnect when OFF)
    • Optional reverse‑polarity protection (Schottky or ideal‑diode controller)
    • Keep ESP GND and heater return tied at a solid star point
  4. Test points & silkscreen

    • TP: GATE, DRAIN, SOURCE, 3V3, VBAT, SDA, SCL, SCK, CS, SO
    • Label connectors: HEATER +/−, LiPo +/−, OLED (3V3/GND/SDA/SCL), MAX6675 (3V3/GND/SCK/CS/SO), J_BAT (BAT+/BAT−)
    • Add “Socketed” on silk near the XIAO, OLED, and MAX6675 footprints for assembly clarity
  5. Fabrication

    • 2‑layer, 1 oz copper is fine; choose 2 oz if you want extra margin for heater currents
    • Keep creepage around battery connector; avoid thin necks on power pours

Refer to docs/PCB-PROTOTYPING.md for detailed layout and bring‑up notes.

Socket-mount connector map (draft)

  • U2: XIAO ESP32‑C6 composite module. Nets include: 3V3, GND, VBUS (5V), BAT (pad 32), BAT_ADC (GPIO21), MOSFET_GATE (GPIO16), ENC_A (GPIO0), ENC_B (GPIO1), ENC_SW (GPIO2), SDA (GPIO22), SCL (GPIO23), MAX_SCK (GPIO18), MAX_CS (GPIO20), MAX_SO (GPIO19), plus spare GPIO17.
  • J3: OLED socket (1×4): 3V3, GND, SDA, SCL.
  • J4: MAX6675 socket (1×5): 3V3, GND, SCK, CS, SO.
  • J3: J_BAT battery input (2×1): BAT+ / BAT− (BAT+ passes through SW2). Use the JST pad (J3) as the permanent battery attachment point; TP backside pads are optional.

Firmware pin mapping and overrides

  • Authoritative source: ESPAtomizer/config.h is the single source of truth for board pin assignments used by the firmware. Keep pin changes centralized there to avoid divergence between schematic/PCB and code.
  • Build-time overrides: You can override pins at compile time instead of editing config.h directly. Examples:
    • PlatformIO (add to platformio.ini under your environment):
      • build_flags = -DOUTPUT_PIN=5 -DD10_PIN=19
    • Arduino CLI:
      • arduino-cli compile --fqbn <your_fqbn> -DOUTPUT_PIN=5 -DD10_PIN=19 path/to/ESPAtomizer
  • Why this matters: The schematic and footprint may use different conventions for labeling header pins (D‑numbers vs physical pads). config.h maps the correct physical GPIOs from the PCB; prefer changing config.h or using build flags rather than editing the main sketch.

Review findings (2025-11-26)

  • Critical pin-mapping mismatch: The PCB currently routes the MOSFET gate net (MOSFET_GATE) to Pad 1 / GPIO0 on the XIAO footprint, while the schematic/docs state MOSFET_GATE should be driven from GPIO16. GPIO0 is a boot/strapping-related pin on Espressif modules and driving or pulling it during reset can prevent normal boot (puts the chip in download/boot mode). Do not fabricate without resolving this.

  • Immediate recommendation: Reassign MOSFET_GATE to the non-strapping pin (GPIO16 / Pad 7) to match documentation and avoid boot issues. If you cannot move the net, re-evaluate the pull resistor strategy on GPIO0 (very small chance acceptable only after consulting Espressif strapping rules) — but changing to GPIO16 is the safer, preferred fix.

  • MOSFET gate & heater current: The BOM warns to verify the MOSFET's RDS(on) at VGS = 3.3 V. Confirm the chosen MOSFET is guaranteed to fully switch at 3.3 V (logic-level device). If not, replace with a MOSFET specified for low RDS(on) at 2.5–3.3 V or add a gate driver.

  • BAT_ADC (GPIO21) and protection: BAT_ADC is connected to GPIO21 per schematic. Verify GPIO21 supports ADC on the ESP32‑C6 variant used in the XIAO module and ensure a proper resistor divider, input clamp/TVS, and C (10 nF recommended) are present to protect the ADC input from battery voltage.

  • Power & decoupling: Confirm presence of an LDO/regulator if you expect the module to be powered from BAT directly to 3.3 V. Ensure adequate local decoupling caps placed close to the module's 3V3 pad (C0G/NP0 and bulk electrolytic as needed). I did not find a dedicated LDO footprint in the quick pass; verify whether the XIAO module expects an external 3.3 V supply or provides internal regulation.

  • RF / antenna keepout: The XIAO module likely contains the RF antenna — keep the placement notes and antenna keepout from PLACEMENT.md enforced. Verify there is no copper or ground pours in the antenna keepout area on the PCB revision.

  • Assembly / placement notes: Place gate series resistor (R3) and gate pulldown (R2) close to the MOSFET pads as documented. If you move the MOSFET gate net to GPIO16, also update config.h and any firmware references.

  • Do not release to fabrication yet: Fix the MOSFET_GATE mapping (and optionally verify gate/pull resistor values, MOSFET RDS(on) at 3.3 V, and BAT_ADC clamps) before ordering boards.

Next actions

  • Update the KiCad schematic and PCB to move MOSFET_GATE from Pad 1 (GPIO0) to Pad 7 (GPIO16), then run ERC and update PCB from schematic.
  • Fetch and cross-check Espressif ESP32‑C6 hardware design guide for boot strapping/pin requirements and confirm any required pull resistor values for strapping pins.
  • Verify MOSFET selection in bom-mosfet-alternates.csv or replace with a guaranteed logic-level MOSFET if needed.
  • Confirm power regulator topology and add/verify decoupling on the 3V3 rail.

If you want, I can prepare the KiCad schematic patch to reassign the MOSFET gate net to Pad 7 (GPIO16) and update config.h accordingly; tell me to proceed and I will make the edits and run another pass of checks.

Parts

21
QtyValueFootprintReferences
3100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R4
3100nfCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3
24.7kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8, R9
1100OhmResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1100ufCapacitor_THT:CP_Radial_D4.0mm_P1.50mmC5
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU1
1BATTConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1EncoderRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW2
1HEATConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ4
1IRLB8721PBFPackage_TO_SOT_THT:TO-220F-3_Horizontal_TabDownQ1
1OLEDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ3
1SS34 or 1N5819Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD2
1SWfootprints:SW_JS102011SAQNSW1
1THRKConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1WS2812B-2020LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mmD1
1XIAO-ESP32-C3/C6XIAO:XIAOESP32C6_CUSTOMU3

More from Adamibus/ESPAtomizer-iOS

4
  • 2 layers38.4 × 48 mmEspAtomizer PCB v4, the printed circuit board in 3D

    EspAtomizer PCB v4

    Adamibus/ESPAtomizer-iOS

    This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicadpro in KiCad.

    20 parts1
  • 2 layers38.5 × 62.5 mmESPAtomizer.kicad pcbcopyv1, the printed circuit board in 3D

    ESPAtomizer.kicad pcbcopyv1

    Adamibus/ESPAtomizer-iOS

    This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicadpro in KiCad.

    13 parts1
  • 2 layers55 × 91 mmESPAtomizer.kicad pcbv2, the printed circuit board in 3D

    ESPAtomizer.kicad pcbv2

    Adamibus/ESPAtomizer-iOS

    This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicadpro in KiCad.

    13 parts1
  • 2 layersXIAOESP32C6smddip, the printed circuit board in 3D

    XIAOESP32C6smddip

    Adamibus/ESPAtomizer-iOS

    This is a minimal KiCad 6/7 project skeleton. Open ESPAtomizer.kicadpro in KiCad.

    2 parts1

Similar boards

  • 2 layers95.9 × 100 mmPipeWatch, the printed circuit board in 3D

    PipeWatch

    TheEinfachFelix/PipeWatch

    64 parts
  • 2 layers113.4 × 65 mmRt hw v1, the printed circuit board in 3D

    Rt hw v1

    ahsanu123/crumbs

    🍪 Crumbs - Collection of my DIY Electronic Module

    83 partsMIT
  • 2 layers70 × 11 mmDecabox pin pcb, the printed circuit board in 3D

    Decabox pin pcb

    arvindsa/decabox

    A compact, intelligent battery management system for 6× Decapo batteries used with cochlear speech processors. This project monitors cell voltage, ambient light, and battery state-of-charge in real-time, with visual…

    19 parts
  • 2 layers50.8 × 28.6 mmBeaglebone obd, the printed circuit board in 3D

    Beaglebone obd

    KoffeinFlummi/rustbucket

    Access your car's diagnostics with a BeagleBone Blue and Rust.

    20 parts60GPL-3.0
  • 2 layers99.1 × 99.1 mm3D Scanner, the printed circuit board in 3D

    3D Scanner

    nazzrim/Open3DScanner

    Open3DScanner 3D Scanner design

    33 parts60
  • 2 layers36 × 31 mmESPDimmer, the printed circuit board in 3D

    ESPDimmer

    stelioskat/esp8266-led-dimmer

    Wifi enabled LED strip dimmer that is controlled using MQTT messages.

    11 parts20MIT
  • 2 layers70.3 × 30.2 mmControl pcb, the printed circuit board in 3D

    Control pcb

    kbob/filabilly-humidor

    Dehumidifier cabinet for printer filament

    16 parts9
  • 4 layers104.2 × 77.7 mmDc26, the printed circuit board in 3D

    Dc26

    dodgymike/dc26-monero-badge-pcb

    Defcon 26 Monero badge PCB

    714 parts6

Questions

How big is the EspAtomizerpcbv3rev1 PCB?

It measures 33.8 × 49.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the EspAtomizerpcbv3rev1 use?

21 parts, built around the ADS1115IDGS, IRLB8721PBF and WS2812B-2020. 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 EspAtomizerpcbv3rev1 KiCad files?

From the Adamibus/ESPAtomizer-iOS repository on GitHub, at the commit this page was made from: the board is hardware/EspAtomizer-PCB_v3/EspAtomizerpcbv3rev1.kicad_pcb and its schematic hardware/ESPAtomizer_PCB/ESPAtomizer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the EspAtomizerpcbv3rev1 design in my own project?

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