Skip to content

Fixing DRC Errors

Written by Person20020/Koji

When designing a PCB, it is inevitable that you will have some issues on your first try. KiCad has integrated tools to check your design to catch some of the most common errors. These tools are the Electrical Rules Checker (ERC) for the schematic and the Design Rules Checker (DRC) for the PCB.

This guide will go over some of the most common ERC/DRC errors and how to fix them.

I will include a quick explanation and summary of what you need to do to fix it (or if it can be ignored) in bold text and for some errors there will be a longer explanation of what the issue is in italic text.

You can run DRC or ERC by clicking this button with a list icon in the top bar of the PCB or schematic editor respectively. DRC button Then click Run DRC/Run ERC. It will give you a list of issues that it finds. You can click on an issue to have KiCad center your screen on its location. When you are done you can get rid of all of the arrows by clicking Delete All Markers.

ERC and DRC categorize the issues they find into two groups, errors and warnings.

Errors are large issues that KiCad thinks could cause your PCB to not function properly. This includes things like not having enough clearance from a trace to the edge of your board, which could result in it being damaged when the outline of the board is milled.

Warnings are smaller issues that probably won’t prevent the board from functioning, but may affect the appearance of your pcb. This could include your silkscreen being cut off or being too small to read. Some warnings can include issues affecting the functionality of the design, but these generally will be smaller issues, or ones that KiCad is not fully sure are actually a problem.

ERC checks for issues in your schematic. It won’t be able to catch things that are fundamentally wrong with the design (things like connecting 5v to a component that needs 3.3v), but it can tell you things like if you forgot connect a pin.

ERC can often be triggered by things such as symbols that were designed incorrectly with the wrong pin electrical type and some of them can be ignored, but before you do so you should at least understand what it is saying so you know if this is actually the case.

Most ERC warnings (along with many ERC errors) should be pretty self explanatory. Most of them are basically ‘Something is connected that shouldn’t be’ or ‘Something that should be connected isn’t’. If you think something should be here, DM me (@Person20020)!

Input pin not driven by any Output pins or

Section titled “Input pin not driven by any Output pins or”

Input Power pin not driven by any Output Power pins

Section titled “Input Power pin not driven by any Output Power pins”

This is usually caused by a symbol that didn’t properly assign the pin electrical types. It can generally be ignored. If there is nothing connected to the pin, this can be solved by adding a No Connect Flag.

The pin electrical types describe what a pin does and allows KiCad try to see if you connected the wrong types of pins together, e.g. to check if you connected two 5v pins together, but both are expecting an input rather than one being an output which supplies the other with power.

When a pin is not connected to anything, it should be indicated that this is intentional by using No Connect Flags. This will stop the error for the pin.

DRC checks for issues in your PCB design. It is much more important to pay attention to these as they are do not give false positives nearly as often as ERC. Again, it is important to understand why you are allowed to ignore an error before you do so that you don’t miss something important.


These are electrical issues with your design that include stuff like shorted traces, etc.

Something is connecting two ‘nets’ that should not be connected. Find it and make it not connected.

Traces are intersecting that shouldn’t be. Use vias to go around or fix it in some other way.

Some pads/tracks are too close together. If this is coming from a footprint you can change your clearance rules in File->Board Setup->Design Rules/Constraints and set Minimum clearance to 0.1mm (the JLCPCB minimum). Otherwise you can move the things causing the error apart.

Via is not connected or connected on only one layer

Section titled “Via is not connected or connected on only one layer”

A via isn’t fully connected. Find it and connect or delete it.

There is a trace with one end left unconnected. Find it and connect it if needed, otherwise delete it.

Thermal relief connection to zone incomplete

Section titled “Thermal relief connection to zone incomplete”

There is a pin connecting to a fill zone that does not have the minimum required number of connections. If there is space around the pin, move traces or other things out of the way to give room. If there will not be a large amount of power going through this (such as for Hackpad), you will most likely be fine to decrease the minimum number to one. You can do this in File->Board Setup->Design Rules/Constraints in the Minimum thermal relief spoke count setting.


These are issues that affect how your PCB will be manufactured. If they are not fixed, JLCPCB may reject it or it could cause issues with the PCB.

You can look at these manufacturing capabilities from JLCPCB to make sure you have enough clearance.

Something is too close to the edge of your PCB. This can be either at the outer edge of the PCB or near a cutout (including those in footprints like the SK6812MINI-E). The default KiCad clearance rules give a lot of extra room and will be triggered by some footprints. JLCPCB allows a minimum of 0.2mm of clearance. You can change it in File->Board Setup->Design Rules/Constraints and set Copper to edge clearance.

Something is too close to a hole. Move it away. You can also reduce Copper to hole clearance in File->Board Setup->Design Rules/Constraints to 0.2mm if needed.

The outline of the PCB (the Edge.Cuts) has a gap, part that sticks out with an unconnected end, or otherwise ambiguous outline. The outline must be one continuous loop. Edge.Cuts example issues

Solder mask aperture bridges items with different nets

Section titled “Solder mask aperture bridges items with different nets”

There is a hole in the solder mask that includes pads/pins/etc from different nets (a net is basically a groups of pins that are electrically connected together). This could lead to the pads being shorted when soldering as the solder mask is not there to repel the solder. There are some cases where this is intended, such as when making solderable jumper pads, however it is generally not good. This may happen if the footprint is designed badly and not all parts of a pad are assigned a pin number, in which case it can (ideally) be fixed by editing the footprint, or ignored.

YOU SHOULD UNDERSTAND WHAT THE ISSUE IS BEFORE IGNORING THIS!


Something doesn’t match between your schematic and PCB. This should be fixed.

Something isn’t connected… Connect it.


All of these warnings pertain to the silkscreen, which although helpful, is purely cosmetic and may be ignored. You can (and should) fix them if you want to.

Two or more silkscreen items are overlapping.

An item on the silkscreen is cut off by a hole in the solder mask.

An item on the silkscreen is cut off by the edge of/a hole in the PCB.

To fix any of the above, just move the silkscreen.

Some text on the silkscreen is very small or thin and may be hard to read. If you want to fix this you can select the text, right click->Properties… and increase the Width and Height or Thickness.

Some text may be backwards. If so, select it, Right click->Properties...->click the mirror button on the right. Mirror button


There is some text (or dimensions) on the Edge.Cuts layer. these things should most likely be on the F.Silkscreen/B.Silkscreen layers. You can change it by selecting the object, Right click->Properties... and then change the Layer to F.Silkscreen for the front of the PCB or B.Silkscreen for the back.

You have a filled zone with isolated sections that are not connected to anything. You can either connect it to the rest of the zone or select the zone and Right click->Properties... and set Remove islands to Always.

If you edited the footprint this can happen. Select the footprint, then Right click->Update Footprint... then click Update. Update PCB button

A quick explanation of some terms I use on this page.

Net A 'net' is basically a 'group' of all things that will all be electrically connected together. E.g. the GND net will connect to all GND pins and the 5V net connects to all of the 5V pins on your PCB.
Silkscreen Silkscreen is the layer on the PCB used to show graphics. It is often used to show the outline of parts and indicate the direction in which it should be soldered. It can also include text or any other thing you want to print on the PCB for information/decoration. In KiCad this is on the F.Silkscreen/B.Silkscreen layers.
Solder Mask Solder mask is another layer on the PCB which repels solder. It covers all of the board except for the pads to prevent solder from spreading and bridging multiple pins. In KiCad this is the F.Mask/B.Mask layers.
Thermal Relief Connection When a pin is connected to a zone, it is not connected all around the pin. It instead uses several 'spokes' to prevent heat from being sucked away as quickly when soldering.

If you come across any others that I have missed, you can DM me in slack @Person20020!