Lesson 2 of 5 · 20 min
Schematic capture
A schematic is a drawing of connections, not of the board. Where a part sits on the page means nothing; what matters is which pin touches which net. That is why you can spread the circuit out so it is easy to read, and still end up with a compact board. In this lesson you draw the full schematic of the ESP32-C3 breakout in KiCad's Schematic Editor and let the Electrical Rules Checker catch your mistakes.
Symbols, wires and nets
A symbol is the schematic picture of a part: a resistor zigzag, a rectangle with pins for an IC. Each pin has a number, a name and an electrical type (input, output, power input, passive and so on). A net is a set of pins that are electrically the same node. You make a net by drawing a wire between pins, or by giving two separate wire stubs the same name.
Basic placement in KiCad 8 and 9:
Place > Add Symbol(keyA) opens the library chooser. TypeRfor a resistor,Cfor a capacitor,LED,SW_Push,AP2112K-3.3,ESP32-C3-MINI-1,USB_C_Receptacle.Place > Add Wire(keyW) draws a wire. A dot appears where a wire joins another; a crossing without a dot is not a connection.Place > Add Label(keyL) names a net. Two labels with the same name on the same sheet are connected even with no wire between them.Place > Add Power Symbol(keyP) places symbols like+5V,+3V3andGND. All power ports with the same name are the same net across the whole project.
What goes on the sheet
Think of the circuit as four small blocks:
- Power in. The USB-C receptacle brings 5 V on its VBUS pins. Two 5.1 kΩ resistors from the CC1 and CC2 pins to ground tell a USB-C charger "I am a device that wants 5 V". Without them, a proper USB-C to USB-C cable will not supply any power at all.
- Regulator. An LDO such as the AP2112K-3.3 turns 5 V into 3.3 V at up to 600 mA. Add 10 µF on the input and 10 µF on the output, both close to the chip, so the regulator stays stable when the load changes quickly.
- The module. The ESP32-C3-MINI-1 gets 3.3 V and ground. Its D+ and D- pins (GPIO19 and GPIO18) go straight to the USB-C data pins.
- User I/O. One LED, one push button, and the boot/reset circuit.
Pull-ups, pull-downs and the LED
A digital input that is connected to nothing reads random values, because the pin is high impedance and picks up noise. A pull-up resistor ties the pin to 3.3 V so it reads high by default; the button then pulls it to ground when pressed.
Why 10 kΩ? When the button closes, current flows from 3.3 V through the resistor to ground: 3.3 V / 10 kΩ = 0.33 mA. That is small enough to ignore and large enough that the line is not floppy. A 1 kΩ pull-up would waste 3.3 mA each time the button is held; a 1 MΩ one would be too weak against noise.
On our board:
- EN (reset): 10 kΩ to 3.3 V, plus 1 µF to ground, and a button to ground. The RC pair delays the rise so the chip starts only after power is stable.
- BOOT (GPIO9): 10 kΩ to 3.3 V and a button to ground. Holding it low during reset puts the chip into download mode.
- User button (GPIO4): 10 kΩ to 3.3 V, button to ground. The firmware reads low as pressed.
- LED (GPIO3): GPIO, then a resistor, then the LED, then ground. For a red LED dropping about 2.0 V at 3.3 V and a target of 4 mA,
R = (3.3 V - 2.0 V) / 0.004 A = 325 Ω. Use the standard value 330 Ω.
Decoupling capacitors
Every digital IC draws current in sharp bursts, each time a gate switches. The copper trace back to the regulator has some inductance, so it cannot deliver those bursts instantly and the local supply voltage dips. A small ceramic capacitor right next to the IC acts as a tiny local reservoir.
The rule: one 100 nF capacitor per IC power pin, placed as close as possible, plus one larger capacitor (about 10 µF) per IC or per supply rail. The ESP32-C3-MINI-1 datasheet recommends this on its 3V3 input. In the schematic, draw the capacitor between the 3V3 pin and GND, and place it beside that pin, not at the other end of the sheet. That placement habit transfers to layout, where distance actually matters.
Power flags and ERC
Run Inspect > Electrical Rules Checker, then Run ERC. A common first result is: Input Power pin not driven by any Output Power pins. The USB connector's VBUS pin is typed as passive, so KiCad does not see any source feeding the +5V net. The fix is a power flag: Place > Add Power Symbol, choose PWR_FLAG, and attach it to +5V and to GND. It tells KiCad "this net is powered from outside this drawing" and has no effect on the board.
Other errors worth reading rather than silencing: unconnected pins (add a no-connect flag X on pins you really do not use), and pins you thought were wired but sit one grid step off (zoom in and look for a pin end without a dot).
Reference designators
Each part needs a unique name: R1, C3, U1, J1, SW2, D1. Press Tools > Annotate Schematic and let KiCad number everything. Without annotation, parts show as R?, and the board cannot be built. The designators will appear on the silkscreen, so they are also how you find R3 with a multimeter later.
Check yourself
Why is a 100 nF capacitor placed right next to an IC's power pin?
Check yourself
What does a PWR_FLAG symbol do?