The conversion results screen has a list titled "Automatically added circuits (N)". Capacitors, resistors, and diodes that were not in your code are now in the netlist and the BOM. You do not have to know about them, but you must be able to find out when you want to. This is an educational product. This guide explains why each item on that list is needed.
Automatically added circuits (7)
┌ C1~C4 Decoupling capacitors 0.1µF [Why?]
│ Absorb instantaneous current surges next to IC power pins.
│ Without them, intermittent resets and malfunctions occur.
│
┌ D1 Flyback diode 1N4148 (relay K1) [Why?]
│ Routes the back-EMF generated when the relay coil switches off.
│ Without it, the transistor is destroyed.
│
┌ U3 Level shifter (3.3V ↔ 5V, I²C) [Why?]
│ The ESP32 is 3.3V; the sensor you selected uses 5V logic.
│ Wiring them directly damages the ESP32 GPIO.Decoupling capacitors
Every time an IC switches, it draws a large current from its power pin for a very brief moment. Power lines have inductance, so the voltage dips at that instant, and in bad cases the MCU experiences a brown-out reset. A 0.1 µF ceramic capacitor right next to the power pin supplies that instantaneous current instead. On the breadboard you never saw it only because it was already inside the dev board.
- Rule: one 0.1 µF per IC power pin.
- The ESP32 module's 3V3 additionally gets a 10 µF bulk capacitor, because Wi-Fi transmission draws pulse currents of several hundred mA.
- Regulator inputs and outputs get the datasheet-recommended values (AMS1117: 10 µF input, 10 µF + 100 nF output).
Pull-up resistors
An open-drain signal line cannot produce a HIGH by itself. Something has to pull it toward the supply, and if nothing does, the line floats and reacts to noise.
- I²C SDA / SCL — exactly one set per bus (2.2 k–10 k). If a module already has pull-ups mounted, duplicates are not added. If the combined resistance is too low the MCU cannot pull the line LOW, so ERC calculates the total per bus.
- DS18B20 1-Wire DQ — 4.7 kΩ. The datasheet value.
- ESP32 EN — 10 kΩ pull-up + 0.1 µF. Creates an RC delay so reset is released only after power has stabilized. Without it, booting is unreliable.
- ATmega328P RESET — 10 kΩ pull-up. Without it, noise causes random resets.
Flyback diodes
Relay coils, DC motors, and solenoids are inductive loads. The instant the current is cut, the coil tries to keep the current flowing and generates a back-EMF of tens to hundreds of volts. That voltage heads straight for the transistor or GPIO that was driving the coil. A diode mounted in reverse in parallel with the coil (1N4148, 1N4007) gives that current a path to return. If you were using a relay module, it was already inside the module. At L3, when the relay goes directly on the board, it has to be added by hand — and ibouPCB adds it.
Level shifters and voltage dividers
ESP32 · Pico · Raspberry Pi are 3.3 V logic; the HC-SR04 and many 5 V Arduino modules are 5 V logic. Wiring a 5 V output directly to a 3.3 V input damages the GPIO — if not immediately, then a few weeks later.
- One-way 5 V → 3.3 V input (HC-SR04 ECHO, etc.): two resistors as a voltage divider. The cheapest option, and sufficient.
- Bidirectional bus (I²C): a MOSFET-based bidirectional level shifter.
- 3.3 V → 5 V output (WS2812B data, etc.): a buffer such as the 74AHCT125. 5 V NeoPixels failing to read a 3.3 V signal is genuinely common.
Protection devices and the rest
| Part | When | Why |
|---|---|---|
| Series resistor | LED wired directly | Sets the LED current within the GPIO current limit |
| Reverse-polarity protection diode / P-MOSFET | When there is an external power input (L3) | The board survives even if power is plugged in backwards |
| TVS diode | Connectors facing the outside (L3, proposed) | Keeps static from a human hand (several kV) out of the MCU |
| Driver transistor (MOSFET) | Loads beyond the GPIO current limit | AVR GPIO is 40 mA per pin; a relay coil is 70 mA or more |
| Test points | L3 | A place to probe power · serial after assembly |
Auto-insertion vs. proposal
Things with only one right answer are inserted automatically (decoupling, pull-ups, flyback, voltage dividers). Things that require a choice are only proposed, and the decision is left to you — a larger regulator, a different module with a changeable address, a pin reassignment. Either way, each list entry carries its evidence (golden pattern source or ERC rule), and you can review it in the netlist · BOM · explain.json.
Differences by level
At L2 Shield / HAT, the dev board already provides power and reset, so only pull-ups and series resistors or so are added. At L3 module-on-board, the dev board disappears, so the power tree (regulator + input/output caps), module support circuitry (EN · IO0), decoupling, protection devices, and test points all go in. That is why the number of auto-inserted parts is far higher at L3.