← Back to list

Your First DIY Electronics Board: From Idea to PCB

A beginner’s introduction to PCB design using KiCad

Leonardo Cavagnis · 2026-01-13 11:02 · 9 claps · 7.8 min read
#electronics #pcb #arduino #kicad #schematics
Open on Medium ↗
Wiki topics: 📟 · Gadgets & IoT 🛠️ · Crafts & DIY

Your First DIY Electronics Board: From Idea to PCB

A beginner’s introduction to PCB design using KiCad

Designing your first electronics board can feel intimidating. Schematics, footprints, PCB layout, manufacturing files… It’s easy to think that hardware design is only for experts with years of experience. The truth is: it doesn’t have to be.

In this article, I’ll guide you through the complete journey of building a very simple DIY electronics board, from the initial idea to a manufactured PCB.

The goal isn’t to build something impressive. The goal is to understand the process.

What are we building, exactly? A small expansion board that lets you control an LED and read a push button. All signals and power are exposed through a connector, making it easy to interface with a microcontroller.

Electronic board with a button and an LED. Image by author.

Electronic board with a button and an LED. Image by author.

The full workflow

This project follows the same workflow used in real-world hardware development, using **KiCad: **a free and open-source electronic design automation (EDA) suite that allows you to design schematics, create PCB layouts, and generate manufacturing files all in one place.

  1. Defining the idea We start by deciding what the board should do: read a digital input using a push button and drive an LED using a digital output.
  2. Creating the schematic The idea is translated into an electrical schematic. This is where we choose the components and define how they’re connected.
  3. Validating the circuit Before moving to the Printed Circuit Board (PCB), the schematic is electrically validated. We check that all components have values, connections are correct, and the circuit behaves as expected.
  4. Designing the PCB The validated schematic is turned into a physical board. Components are assigned footprints, placed on the PCB, and connected with traces.
  5. Preparing for manufacturing Finally, the production files are generated and sent to a PCB manufacturer.

Hardware development workflow. Image by author.

Hardware development workflow. Image by author.

Defining the Idea

As introduced before, the board exposes:

  • One digital input driven by a push button
  • One digital output driving an LED

To ensure predictable behaviour, the button input is designed so that:

  • It reads LOW (GND) when the button is released
  • It reads HIGH (VCC) when the button is pressed

This is achieved using a hardware pull-down resistor, which prevents the input from floating.

On the output side, the LED is driven through a current-limiting resistor, making the board safe to use with standard microcontroller GPIOs.

The board brings the input and output signals externally through a connector, along with the power supply (VCC) and ground (GND), so it can be powered and controlled by an external source, like a microcontroller.

Hand-drawn sketch of schematics. Image by author.

Hand-drawn sketch of schematics. Image by author.

Creating the Schematic

Once the idea is clear, the first step is to create a new project in KiCad.

  1. Open KiCad and go to: File → New Project…
  2. Choose a location on your computer and name the project: mini_led_button
  3. Click Save. KiCad will create a folder called mini_led_button containing two main files:
  • mini_led_button.**kicad_sch The schematic file**, where you will draw the circuit diagram, place components, and connect them logically with wires and labels.
  • mini_led_button.**kicad_pcb The PCB layout file**, will later hold the physical arrangement of components, traces, and board outline.

With the project created, the next step is to turn your idea into a functional schematic:

  • 1) Open the schematic editor Double-click on mini_led_button.**kicad_sch**
  • 2) Place the components Use the Place Symbol tool (or press A) to add each component to your schematic:
  • Push button → digital input (Switch:SW_PUSH)
  • LED → digital output (Device:LED)
  • Two resistors → one pull-down for the button, one current-limiting for the LED (Device:R)
  • Connector → to bring D_IN, D_OUT, VCC, and GND to the outside (Connector:Conn_01x04)
  • VCC and GND symbols → to provide power and ground connections (power:VCC) (power:GND)

Place symbol form in KiCad. Image by author.

Place symbol form in KiCad. Image by author.

  • 3) Connect the components Use the Place Wire tool (or press W) to connect:
  • One side of the button to D_IN through a pull-down resistor and the other to VCC.
  • The LED to GND, with a current-limiting resistor in series, and the other side to **D_OUT.
  • Connect the connector pins to D_IN, D_OUT, VCC, and GND**.
  • 4) Organize for readability Arrange components logically:
  • Labeling signals for clarity (use the Place Net Label tool L to name wires, e.g., D_INand D_OUT, so that connected nets are automatically linked)
  • Connector at the edge of the schematic
  • Keep wires straight and avoid crossing whenever possible

Schematics. Image by author.

Schematics. Image by author.

Validating the Circuit

Before moving on to the PCB layout, it’s important to validate your schematic. This step ensures that your circuit is electrically correct.

How to validate in KiCad?

  1. Go to Inspect → Electrical Rules Checker (ERC)
  2. Click Run ERC

KiCad will display a summary of warnings and errors. While warnings are useful to notice potential issues, the errors are critical and must be fixed before moving forward.

Errors and Warnings in ERC. Image by author.

Errors and Warnings in ERC. Image by author.

In this project, you may see the following error:

Error: input Power Pin not driven by any Output Power pins

The schematic has VCC and GND pins. KiCad expects these pins to be powered by an explicit source. Even if you’ve labeled the net as VCC or GND, KiCad still requires a PWR_FLAG to indicate the net is actually driven. Without it, KiCad treats the pin as an unpowered input, hence the error

How to fix it? Use the Place Symbol tool (or press A) to add the component: power:PWR_FLAG

Power Flags. Image by author.

Power Flags. Image by author.

Once the PWR_FLAGs are placed, run ERC again. You should now see no errors, only warnings.

Designing the PCB

Before opening the PCB Editor, it’s important to assign a footprint to each component. A footprint defines the physical pads, holes, and outlines for each part.

  1. Open the schematic editor.
  2. Go to Tools → Assign Footprints
  3. Select appropriate footprints for each component:
  • Resistors → THT (Through-Hole Technology) axial, breadboard style
  • LED → THT LED
  • Push button → 4-pin tactile switch
  • Connector → 4-pin Arduino-style 2.54mm header
  1. Apply and save.

Assign footprints. Image by author.

Assign footprints. Image by author.

Once footprints are assigned, open the PCB Editor (mini_led_button.**kicad_pcb) and import the netlist from your schematic: Go to Tools → Update PCB from Schematic**.

Update PCB from schematics. Image by author.

Update PCB from schematics. Image by author.

  • Define the board outline Use the Edge.Cuts layer to draw a rectangle representing your PCB shape and size. For this project, the board is 3 cm x 4 cm.
  • **Place components logically
  • **Connectors at the edge of the board for easy access
  • Resistors close to the components they serve
  • Leave space for traces Arrange parts to minimize crossing wires and allow clean routing later.
  • Routing the traces Once components are placed, it’s time to connect them with traces:
  • Use the Route Tracks tool to draw copper lines between component pads.
  • For this small board, I chose a trace width of 0.5 mm, which is safe for typical digital signals and easy to manufacture.
  • Keep traces as short and straight as possible, and avoid unnecessary crossing.
  • Mounting holes To secure the PCB in a case, add **mounting holes:
  • **I placed M2 holes at the four corners of the board (MountingHole:MountingHole_2.2mm_M2)
  • Position them far enough from components and traces to avoid shorts and allow room for screws.
  • Silkscreen The silkscreen layer is used to print text, component outlines, and labels on the PCB.
  • I placed component labels to indicate resistors, LED, push button locations, and connector pins.
  • Additionally, I added two custom silkscreens. On one side: the board name (Mini Led Btn v1.0), on the opposite side: a note to thank PCBWay for supporting this article.

Once all components are placed, KiCad allows you to preview the board in 3D: go to View → 3D Viewer.

3D Viewer. Image by author.

3D Viewer. Image by author.

Preparing for Manufacturing

Validating your PCB

Before sending your PCB to production, you need to make sure the layout is electrically correct and manufacturable. The first step is running the Design Rule Check (DRC):

  1. Go to Inspect → Design Rules Checker in the PCB Editor
  2. Click Run DRC
  3. Address any errors reported (warnings can usually be accepted)

DRC ensures traces aren’t too close, components don’t overlap, and pads and vias are correctly positioned. Once the DRC is clean, the board is ready to generate production files.

Exporting Production Files

To have your board manufactured, you need to provide your PCB manufacturer with the production files: Gerber and Drill.

Gerber files are the industry standard format used to produce PCBs. They describe all the layers of your board, including:

  • Top and bottom copper layers (F.Cu, B.Cu)
  • Silkscreen layers (F.Silkscreen, B.Silkscreen)
  • Solder mask layers (F.Mask, B.Mask)
  • Board outline (Edge.Cuts)

Each file contains the exact information the manufacturer needs to fabricate that layer of your PCB. Drill files are also required to define all the holes and vias on the board.

Generating Gerber and Drill files in KiCad

  1. Open your PCB file (mini_led_button.**kicad_pcb**)
  2. Go to File → Plot
  3. In the Plot dialog:
  • Select Gerber as the output format
  • Keep the default layers selected
  • Click Plot to generate the Gerber files
  1. To create the drill files, click Generate Drill Files:
  • Keep the default settings
  • Click Generate to save the drill file

Generate Gerber files. Image by author.

Generate Gerber files. Image by author.

Generate Drill files. Image by author.

Generate Drill files. Image by author.

After generating all Gerber and drill files, place them in a single folder and zip them. For this board, the folder should contain:

Gerber and Drill files. Image by author.

Gerber and Drill files. Image by author.

Once your Gerber and drill files are ready, it’s time to send your board for manufacturing. There are several online services that offer fast PCB prototyping, such as **PCBWay**. PCBWay is an online PCB manufacturer that allows you to quickly order custom PCBs, from prototypes to small production runs:

  1. Open the PCBWay website: PCB Instant Quote
  2. Upload your zip folder containing all Gerber and drill files.
  3. Leave the recommended default values for layer count, thickness, copper weight, and other options.
  4. Check the quotation to see the price for your board.
  5. Choose your shipping method. PCBWay typically prepares and ships boards within a few days.

PCBWay Instant quote. Image by author.

PCBWay Instant quote. Image by author.

Once the order is placed, you just need to wait for your prototype PCB to arrive and start testing your board!

PCB and components. Image by author.

PCB and components. Image by author.

Assembled PCB. Image by author.

Assembled PCB. Image by author.

You can find the full KiCad project, including schematic, PCB layout, Gerber, and drill files, at this repository.


메타데이터
post_id
b436dbd154c8
slug
your-first-diy-electronics-board-from-idea-to-pcb-b436dbd154c8
url
https://medium.com/@leonardocavagnis/your-first-diy-electronics-board-from-idea-to-pcb-b436dbd154c8
canonical_url
https://medium.com/@leonardocavagnis/your-first-diy-electronics-board-from-idea-to-pcb-b436dbd154c8
author_url
https://medium.com/@leonardocavagnis
status
ok
fetched_at
2026-06-29 22:44:20