Articles › Tools and safety

Your first PCB for an ESP32 toy with KiCad 10

Breadboard to PCB with KiCad 10: place an ESP32-S3 module so the antenna works, size power traces, set rules graphically, use variants for two builds.

Intermediate 5 min read October 23, 2026 New maker tricks worth trying in 2026 · lesson 19/20

What you will learn
  • KiCad 10 (March 2026) adds a graphical rule editor, suggested DRC fixes and design variants, so beginners can set rules without writing rule syntax.
  • The antenna on an ESP32 module must stick out past the board edge or sit over a cut-out. Never put the module in the middle of the board.
  • Espressif recommends a 3.3 V supply of at least 500 mA and a 10 µF capacitor where power enters the board.
  • Variants let one board have a battery build and a USB-only build, by marking parts Do Not Populate (DNP) per variant.

Once a toy works reliably on a breadboard, the jumper wires become the problem: they pop out, won’t fit in a case, and you can’t build ten of them. A PCB you design yourself fixes all of that, and KiCad 10, released in March 2026, makes the part beginners dread most, setting rules and fixing errors, much easier. This lesson walks through a first board for a toy with an ESP32-S3 module, buttons and WS2812 LEDs.

Facts come from the KiCad 10.0.0 release announcement, the KiCad 10 manual (10.0.7) and Espressif’s ESP32-S3 hardware design guidelines.

What’s new in KiCad 10 for beginners

FeatureWhat it helps with
Graphical rule editorSet rules such as clearance and track width in a dialog with a diagram, no rule syntax needed, fully compatible with existing custom rules
Suggested DRC fixesThe release lists suggested fix actions for DRC errors (not yet detailed in the manual)
Design variantsOne project, several builds that differ in fitted parts, values or footprints
Dark mode on WindowsFollows the system theme
Hop-overCrossing, unconnected schematic wires drawn as a small arc, easier to read
New importersOpens Allegro, PADS and gEDA/Lepton files (with limitations)

The order of work for a first board

  1. Schematic: place symbols, wire them, set values, run ERC (the schematic check).
  2. Footprints: pick the copper pattern that matches the actual part you bought; measure with calipers if unsure.
  3. Update PCB from Schematic: send the parts to the board editor.
  4. Board outline: draw it on Edge.Cuts, sized for the case you will print (see printing a case that fits).
  5. Placement: the ESP32 module first, then power, then buttons and LEDs.
  6. Rules, then routing: power first, signals after, ground pour on both layers.
  7. Run DRC: fix until no errors remain.
  8. Export fabrication files: Gerbers and drill files.
Schematic + ERCPick footprintsDraw the board outlinePlace partsantenna at the board edgeSet rules, then routeuse your fab's numbersDRC, then Gerbers
The order of work for a first board

Placing the ESP32 module so the antenna works

The mistake that hurts Wi-Fi most is putting the module mid-board with copper under the antenna. Espressif’s guidance:

  • Place the module so its PCB antenna sticks out past the board edge, with the feed point near the edge.
  • If it can’t, cut the board away on both sides of and below the antenna to leave clear space.
  • Don’t centre the module with a cut-out on all four sides.
  • Pour ground copper with dense ground vias near the antenna on the main board.
  • In the finished toy, keep at least 15 mm in every direction between the antenna and the case.

In KiCad, draw a rule area (keepout) over the space under the antenna and disallow tracks and zone fills. DRC will flag anything that creeps in.

Worked example: how wide should the power trace be?

Power: Espressif recommends a 3.3 V supply that delivers at least 500 mA, a 10 µF capacitor where power enters, and an RC delay on EN, typically 10 kΩ and 1 µF.

KiCad’s Calculator → Track Width uses IPC-2221. For an outer layer, 1 oz copper (35 µm), allowing a 10 °C rise:

CurrentMinimum width (ΔT 10 °C)
0.5 A (ESP32-S3)about 0.12 mm
1.0 Aabout 0.30 mm
1.5 A (several WS2812 LEDs)about 0.53 mm

Step by step for 1.0 A:

  1. Formula: I = 0.048 × ΔT^0.44 × A^0.725 (A is cross-section in mil²).
  2. 0.048 × 10^0.44 ≈ 0.132 → A^0.725 = 1.0 ÷ 0.132 ≈ 7.57 → A ≈ 16.3 mil².
  3. 1 oz copper is about 1.378 mil thick → width = 16.3 ÷ 1.378 ≈ 11.8 mil ≈ 0.30 mm.

These are minimums. On a toy board with room to spare, route power at 0.5–0.8 mm for margin on heat and voltage drop. Work out the WS2812 current with WS2812 power on an ESP32 and read it off this table.

Setting rules in the graphical editor

Instead of remembering widths, make a rule and let DRC catch mistakes. The editor’s tree groups rules into five categories: Electrical, Manufacturability, Highspeed design, Footprints and Custom.

Example: a rule called PWR track width

  1. Create a net class named Power and add the +3V3 and +5V nets.
  2. Under Electrical, select Minimum connection width and click New Rule.
  3. Name it and enter 0.5 mm on the diagram.
  4. Under Conditions, choose Netclass = Power.
  5. Click Show Matches to check the rule selects the right objects, then Save.

The rule name appears in DRC reports, so make it say what’s wrong at a glance. Rules made here use the same syntax as the .kicad_dru file, so you can move to hand-written rules later.

Enter your fab’s minimums in Board Setup → Constraints before routing, then route with wider values. Don’t run every trace at the limit.

Variants: one board, two builds

The same toy may want two versions: USB-powered only, and one with a lithium battery and charger. In KiCad 10 every project starts with a default variant; add another from the toolbar dropdown (Add New Design Variant).

  • In USB-only, mark the charger chip, battery connector and their parts DNP (do not populate). They get a cross on the schematic and fabrication layers.
  • Override values per variant, such as the charge-current resistor; the Symbol Fields Table highlights cells that differ from the default.
  • Exclude parts from the BOM or the position file, independently, per variant.
  • Reference designators (R1, U2) cannot change per variant.

For the battery side, read lithium batteries safely before designing the charger.

Common mistakes

  • Module in the middle of the board with copper under the antenna. Wi-Fi range drops sharply.
  • Not checking footprints against real parts. Button or connector pins miss their holes and you reorder boards.
  • Power traces as thin as signal traces. Set a net class rule from the start.
  • Silencing DRC instead of fixing it. Add an exclusion only once you understand why it’s harmless.
  • Forgetting mounting holes and case size. Design the board outline together with the printed case.

Sources

FAQ

Is a 2-layer board enough for an ESP32?

For a ready-made module, yes. Espressif recommends four layers but accepts two if the bottom layer is as close to a solid ground plane as possible, with no components and few traces on it.

Where do rule values such as minimum track width and clearance come from?

From the capabilities page of the PCB fab you will order from. Enter the fab's minimums in Board Setup, then actually route with wider values so you have margin.

Can KiCad 10 open projects from older versions?

Yes, but once saved in version 10 an older KiCad may not open them. Keep a copy or commit to git before opening in the new version.

Circuits and code were tested on sample boards. Boards differ in pin layout, so check your board's pinout before you power anything.