
Explore designing a four-layer IoT development board in KiCad 9, from components and schematic design to layout, BOM, power grounding, thermal and signal integrity considerations, with 3D visualization.
Master component selection and bill of materials for an IoT development board in KiCad 9, covering ESP32, SD card, sensors, USB-C, power and battery management, and manufacturing readiness.
Explore the IoT development board design powered by the Esp32 C3, focusing on signal conditioning, decoupling capacitors, pull-up resistors, and reliable I2C startup behavior.
Balance practical constraints with advanced KiCad 9 design to build an Esp32 IoT board. Acquire datasheets, footprints, and 3D models before design, ensuring a four-layer, manufacturable, wireless microcontroller project.
Start the Kicad project by running Kicad 8 and Kicad 9 in parallel on macOS, finalize bill of materials with the Esp32, and review datasheets, footprints, and symbols from Naypyidaw.
Navigate KiCad 9 project configuration from creating and saving a new project to tuning schematic and PCB editor grids, display options, crosshairs, plus plugins for free routing and HQ DFM.
Install KiCad project-specific footprints and symbol libraries from the esp32 project folder, selecting footprints and symbols, and organize them under the esp32 project libraries for easy reuse.
Demonstrates starting a KiCad schematic across four pages for USB power, ESP32, sensors, and UI, placing USB receptacle, charger, regulator, and battery connector.
Learn advanced pcb design with KiCad 9 by building a lipo battery charger schematic, wiring pull-down resistors and LEDs, and establishing a 5 volt USB net per the datasheet.
Implement usb port overcurrent protection with a poly fuse on vbus b1, add a 0.1 µf input capacitor, and use no connect flags for unconnected pins while enabling KiCad backups.
Finish wiring the lipo charger circuit in KiCad by wiring vbus and vbat, adding five-volt usb input, ground, a filter capacitor, and a power flag to satisfy checks.
Design a low-dropout regulator in KiCad, using a 0.1 µF ceramic and 10 µF tantalum near the regulator’s Vout pins, with clearly labeled 5 V in and 3.3 V out.
Rewire the Esp32 sheet in KiCad by moving blue to stat two for charging and green to stat one for charged; add labels and set R6 to 20 k.
Designs a USB-UART bridge for the ESP32-C3 in KiCad, wiring USB to serial with Vbus protection, ESD suppression, a voltage ladder, and reset/boot circuitry for programming.
Place a 50 ohm resistor by io6 and connect to sclk nets; label pins and connect io1 to photo sensor, io2 to miso, io5 to microphone.
Connect Esp32 SPI signals to SD card module: MOSI, MISO, clock, and chip select—with a 10k pull-up, 50Ω resistor, and 10µF/0.1µF capacitors to 3.3V; dot two not used in SPI.
Wire up the flash memory via spi, duplicating cs, clock, di, and miso pins; connect hold to 3.3 v; add a 50-ohm resistor and a 0.1 μF bypass capacitor.
Add test points on a KiCad 9 PCB to test the SPI interface, placing MOSI, MISO, clock, and CS pads for SD card and flash memory, with mirroring for symmetry.
Design the sensors sheet circuitry in KiCad 9 by placing the microphone preamplifier, Bme280 environment sensor, ambient light sensor, and microphone, all connected via I2C, guided by component datasheets.
Set up a BME280 on I2C bus in KiCad with 4.7 kΩ pull-ups to 3.3 V, ground SDO for address 076 hex, and add a 0.1 μF cap to ground.
Connect the ambient light sensor as an analog device with a 10k pull-up to 3.3 V, routing its output to the ESP32 via the photo C net.
Configure the user interface schematic with connectors J4, J6, and J5, two transistors, boot and enable switches, and i2c oled and gpio breakout for 3.3v, ground, sda, and scl.
Master symbol-footprint associations in KiCad 9 by assigning footprints to capacitors, resistors, tantalums, and connectors; use filters and multi-select, then validate with the electrical rules checker.
Learn to run KiCad's electrical rules check (erc) to diagnose errors and warnings, fix power flag and ground connections, manage exclusions, and prepare for the layout editor.
Set up net classes in KiCad 9 and assign nets (3.3V, 5V, ground, SPI, Gpio) from schematic to the layout editor, then configure wire thickness, color, and line style.
Use the calculator to size track widths based on total current draw, including external vs internal layer considerations, and to plan power distribution with copper zones.
Place components in the layout editor following Espressif guidelines for the Esp32. Arrange SD card, USB, LEDs, and buttons for easy access and clear routing.
Apply Espressif layout guidance to place the ESP32 while avoiding antenna interference. Finalize a layout that places the module on the top-right edge with a cutout.
Place the ESP32, SD card, flash memory, and USB module in the layout using a fine 0.025 inch grid, while highlighting groups across schematic and layout to minimize tracks.
Draw the edge-cut outline with a line tool, ensuring 15 mm clearance from the antenna and no copper below it, then place resistors and capacitors near their main components.
Place capacitors and resistors to condition signals from the esp32 and sensors, using decoupling, bypass, bulk caps, pull‑ups, filters, and current limiting for noise reduction and level matching.
Place C8 near the ESP32 3.3V pin and add C7 to further reduce noise. Rotate components to minimize traces and place C11 to vbus, and R19 pull-up near SD 3.3V.
Learn how to route SPI signals in a bus topology between ESP32, flash memory, and SD card, optimize passive placement, and apply high speed layout guidelines to minimize crosstalk.
Refine the Esp32 and sd card layout in KiCad 9 by placing capacitors and resistors, and optimize rat's nest visibility and SPI routing.
Fix a design bug in KiCad 9 by correcting a ground connection on R3, adding a missing 1 µF capacitor (C19) between R3 and ground, and updating the 0805 footprints.
Refine the board outline on the edge cuts layer by rounding corners, adding mounting points, and using shape modification to chamfer or fill edges to 1-2 mm.
Route pcb traces by creating copper zones for ground and power, differential pairs, clocks and high-speed nets like SPI and I2C, finishing with power traces; prefer manual over auto routing.
Create copper zones in KiCad 9 to power and ground the board, naming 3.3V, Vbus and five volt USB zones, and connect pads between layers with vias for solid fills.
Route the I2C SCL and SDA traces, isolate them from high-speed signals, and match their lengths within 400 kHz standard; use space under the ESP32 to adjust SDA.
Route power traces by connecting ground and 5V USB pads to the correct copper zones with vias, segment by segment, and also tie 3.3V nets for reliable power delivery.
Continue with the power pads and power tracks in KiCad 9, advancing the advanced pcb design work.
Connect remaining signal tracks across front and bottom copper layers, adjust trace widths and differential pairs, and reposition components to finish routes around tight spaces.
Address unconnected items by wiring the front copper, create a via to pass the line underneath the board, adjust spacing, then run and resolve errors.
Fix KiCad 9 violations by adjusting via sizes and track properties, using edit tracking via properties and footprint editor, and selectively ignoring non-critical issues while running DRC.
Perform design for manufacturing checks with NextPCB's DFM tool to verify KiCad 9 outputs, export Gerber files, and adjust annular ring, via spacing, and copper edge clearances for manufacturability.
Design rich silkscreen graphics and text to explain pins, LEDs, and subcircuits, while configuring borders, logos, and space for future 3d models before exporting the board.
Navigate manufacturing delays for the pcb, plan for unpacking the board when it arrives, and follow a rigorous testing and design verification process to ensure the final board works.
Watch this recap of mastering KiCad 9, covering schematic creation, library management, PCB layout routing, and design checks, illustrated with a four layer IoT PCB.
Practice uploading sketches to an ESP32-C3 dev module, verify GPIO pins and boot sequence, and test I2C devices (BME280, OLED) plus SPI flash and SD card functionality.
Test the sd card, flash the gpios for the i2c sensor, and verify the bme280 and usb-to-serial bridge; the chip works, but tx and rx leds do not blink.
The board is about 90 percent operational, with planned redesigns like thumb-size buttons and tests on tx/rx leds, microphone sensor, light and sound sensors, regulator behavior, and battery management.
Update the schematic in KiCad 9, flip the transistor, map microphone out to gpio zero and CCSD to gpio five, and revise the audio sensor with a variable resistor.
Update pcb from schematic, enlarge the board to fit a capacitor near the photosensor input, place a ferrite bead, and route traces on bottom copper with vias.
Update the pcb layout to accommodate new audio sensor parts, rewire traces, route pin connections for mic out and trim potentiometer across inner and top copper layers, and tidy routing.
Update the layout by deleting legacy tracks, repositioning the light sensor, and rerouting the photoresistor signal to the ESP32, tightening grounds and 3.3V connections in KiCad 9.
Repair the BME280 and USB sub-circuits by correcting ground and 3.3V nets, adding vias, and redrawing traces in KiCad 9 to ensure proper grounding and signal separation.
In KiCad 9, this lecture demonstrates repairing ESP32 wiring by re-routing tracks, adding space for capacitor C25, and validating the layout with edge clearance, vias, and a design rules check.
Updated July 2025
I’ve just published the complete, uncut layout design session for the ESP32 KiCad 9 project as a single video.
This video shows the entire layout process from start to finish — including every step, every fix, and all decisions made in real time.
I decided to publish this video after several students asked me a real-time version of the parts of the original lectures where I used fast-forward to speed up parts of the process that I originally considered boring and repetitive.
I hope that it will help you gain a deeper understanding of how the design was built, how I troubleshoot problems, and how I handle real-world layout challenges.
Updated March 2025
I recorded a series of lectures where I redesigned my ESP32 board to fix issues from the first prototype. You will find the new lectures at the end of the course.
I modified the audio and light sensor wiring to both use ADC1, integrated a variable resistor into the audio amplifier for adjustable gain, and corrected the photosensor wiring with proper capacitor placement. I also updated the PCB layout by enlarging the buttons, refining the track routing, adding a ferrite bead to reduce noise, and updating component footprints and 3D models.
About this course
Unlock the full potential of KiCad 9 and learn how to design a fully functional IoT PCB from start to finish. In this comprehensive, project-based course, you will work through the complete design, testing, and manufacturing process of a four-layer PCB using KiCad 9's latest tools and techniques. By the end of the course, you will have a fully designed and tested ESP32-based IoT board, along with the skills to tackle your own advanced PCB design projects.
What You Will Learn:
Design a complete four-layer PCB with KiCad 9.
Create schematics, assign footprints, and route tracks for high-speed signals like SPI, I2C, and USB.
Implement power and ground planes, copper zones, and via stitching for signal integrity.
Troubleshoot and resolve design issues using KiCad's Electrical Rules Check (ERC) and Design Rules Check (DRC).
Run Design for Manufacturing (DFM) checks with NextPCB to ensure production-ready designs.
Test and validate key PCB components such as an SD card interface, flash memory, sensors, microphone, and OLED display.
Analyze analog and digital signals using test scripts, an oscilloscope, and KiCad's simulation tools.
Course Deliverable:
By the end of the course, you will have a fully functional ESP32-based IoT PCB, including:
A professionally designed four-layer PCB, ready for fabrication and assembly.
Complete KiCad project files for your reference and future use.
Practical skills to design advanced PCBs for IoT applications.
Insights into troubleshooting common design issues and preparing files for manufacturing.
Who Is This Course For?
This course is ideal for electronics hobbyists, engineers, and professionals who already have some experience with KiCad and want to take their PCB design skills to the next level. If you are new to KiCad, we recommend starting with our KiCad Like a Pro, 4th Edition course, which provides a solid foundation in PCB design using KiCad.
Why Take This Course?
Real-World Project: Design a complete IoT PCB from concept to fabrication.
Hands-On Learning: Apply best practices for power distribution, signal integrity, and component layout.
Cutting-Edge Tools: Explore the new features of KiCad 9 and learn how to use advanced tools for high-speed and mixed-signal designs.
Manufacturing Insights: Gain practical knowledge about preparing your designs for production with NextPCB.
Watch the free lectures
We invite you to watch the free preview videos available on this page to get a clearer understanding of the course content and teaching style.
Join us today and master the art of advanced PCB design with KiCad 9!
Please know that a version of this course is also available on Youtube as a single video. You can find it by searching for "KiCad 9: Design & assemble an ESP32 IoT 4-layer PCB loaded with goodies". Compared to the YouTube version, this Udemy edition contains additional content, including quizzes and written lecture summaries to help you learn better. And, of course, no ads :-)