Unable to understand errors when ERC

I finally finished my first schematic and everything looked great. I went ahead to perform Electrical Rules Check.

There were many errors.

Most of them were:

Pin connected to other pins, but not driven by any pin.

Pin not connected (use a “No-connection” flag to suppress this error).

I used bi-directional pins exclusively.

Also note that I used the Arduino shield template. Maybe I had to declare all pins not used as NC?

If you want, I can upload the schematic file somewhere.

Here is a picture of the schematic.

The quality of the ERC report depends on the quality of the input.

Pin type should reflect the real use of the pins.
Bidirectional to bidirectional does not generate an error according to the connect matrix:

Any pin that is not connected to any other pin (even if it has a label) generates this error unless it is explicitly marked as open with a No-Connect flag such as the “Holes” connector in the upper right corner. In this way ERC warns you if you forgot to handle a pin and left it open accidentally. It’s a feature I like a lot about KiCad.

Yep. (See above).
The connectors from that template are not drawn in an ideal way. It would have been better if they were drawn a bit wider, with pin labels on the inside just as with regular IC’s.

You very likely also have some ERC errors complaining about PWR_FLG.

Using symbols for GND and Vcc removes a lot of clutter from the wiring and makes the schematic easier to read.

It also looks like you have forgotten to add decoupling capacitors. These are quite important. As a general rule of thumb, start by adding a 100nF ceramic capacitor over each power supply pin pair of each IC. and also add a “bulk” capacitor, which can be electrolytic, but 10uF or bigger. For more info, do a bit of research on them. The 'net (and books) are full with this.

1 Like

Assumption we talk about symbol pins here.

ERC is just a tool to check your work. It can only do so much. If you set all pins to bidirectional then you reduce its power.

Not in the symbol. Place the not connected on purpose flag (blue cross in the right toolbar) within the schematic.

Every pin declared as input expects to be connected to an output. This includes power input pins. And as power symbols are implemented via power input pins also these. For power input pins read the FAQ article already posted by @paulvdh.
The short version is that there is a special symbol with a single power output pin (PWR_FLAG). Connect this symbol to the net that needs a power output but does not currently have one.

for reference:

Thanks everybody! From what i understand, i should put the NC tag on each pin not used.

But one question is that what do i do with the arduino pins that i do not use, but appear to be linked to something? For example Pin2 in the picture connects to IOREF, pin 4 to +3.3V… So what do i do with them?

And i am confused… Should i place the regular NC tag, or the not connected on purpose?

  1. Is it enough if i place power tags on the two ends of the power connector jack (about in the middle of the image)?
    One for Vcc, one for GND.
    Do i have to place power tags on the arduino pins as well (that came with the template)?

  2. What do i do with the pin labeling? It is easy to label the power and GND pins of the ICs, but what about all the other pins that the signal propagates? What do i label them? That is why i left them all as ‘bidirectional’ in the first place.


As for the decoupling capacitors, i thought about them as well. However, it is not a circuit i designed, it is part of my msc thesis. And since it works, without them, i will not mess with it. Hey, if it works, why go the extra mile and risk it?

Sorry if the questions are basic, this is the first pcb i design.
Thank you for your support and comments!

Put the NC flags on pins you don’t connect. This is ‘house keeping’ so the ERC knows you didn’t wire the pin up.

The question appears to be, should you connect them? It’s been awhile since I’ve played with an Arduino. I know some chips with multiple pins of the same function want you to connect them. Some chips have multiple circuits that are best powered via outside pins because the internal connection is not really a power bus. So, if you have multiple 3.3V pins, they may all need to be connected depending on what you are doing the the chip’s internal structure. Folks on the Arduino forum would be able to set you straight on that.

1 Like

If I was your teacher, I would subtract half a point for omitting decoupling caps.

Maybe you can go try to drive your car with only 2 wheel bolts in each wheel. It probably also works.

1 Like

If it is part of your thesis, why wouldn’t you put a little effort into making it better? Unless, you are just documenting someone else’s work as prior art. But since the actual schematic drawing is your work if I was grading it I would knock you style points for drawing the symbols for the three ICs in package pin-order instead of grouping pins by function with inputs on the right and outputs on the left. Your schematic layout with the connection spaghetti pile is confusing to someone not intimately familiar with what the circuit is doing.

In both of these examples, IOREF and +3.3V are just net names. I.e. thet are logical locations, not physical locations. The circuit doesn’t use either of them so you can either:

  • Only put the blue X no-connect symbol on them and leave the net names there for documentation.
  • Delete the net name and power symbols and then put the blue X no-connect symbol on the pin on the reasoning that if the circuit doesn’t use the pins any labeling is just extraneous information that may lead to confusion.

BTW, are the 3 ICs really only powered from the coaxial DC jack and not from the Arduino? You should probably put a note on the schematic for the expected voltage input at the coaxial jack. A little documentation with notes also wouldn’t go amiss. I don’t know off-hand what the chips are, but it appears that the U2/U3 block is sensor input (what is the signal protocol back to the Arduino?), but not really sure about U1. Looks to be a quad comparator? What is that circuit block doing? Though I suppose this might be out of context and the circuit is described in the text of the thesis…

"The question appears to be, should you connect them? "
Connect what to where? These pins are not connected.

“If I was your teacher, I would subtract half a point for omitting decoupling caps.”
Well, i guess it is a good thing that my teachers are physicists then. There is a saying, when something works don’t mess with it. Listen, i am not being arrogant, or anything. I appreciate your helpful approach. The reason i stick to not using decoupling capacitors is out of fear. I really want to finish with my thesis, and i am afraid adding things to something that works can mess things up.

Especially adding things that i will be adding for the first time in my life.

“I would knock you style points for drawing the symbols for the three ICs in package pin-order instead of grouping pins by function with inputs on the right and outputs on the left.”
What? I did not understand this at all. I created the symbols from the datasheet of the ICs, exactly as they look like.

“BTW, are the 3 ICs really only powered from the coaxial DC jack and not from the Arduino? You should probably put a note on the schematic for the expected voltage input at the coaxial jack. A little documentation with notes also wouldn’t go amiss. I don’t know off-hand what the chips are, but it appears that the U2/U3 block is sensor input (what is the signal protocol back to the Arduino?), but not really sure about U1. Looks to be a quad comparator? What is that circuit block doing? Though I suppose this might be out of context and the circuit is described in the text of the thesis…”

Ah yes, putting a note makes sense. U1 is a chip that contains 4 op amps. U2 and U3 are MUX/DEMUX ICs.
The purpose of the circuit is this:
A resistance goes to where the jumpers are. Since 8 jumper pins, i can read 8 resistances.

The analog circuit does all the reading of the resistance. To be more certain, a square wave is produced by U1 and the surrounding components.
How big is the pulse determines the resistance of the sensor.
The pulse is then fed to an arduino, which measures the width of the square pulse, using timer interrupts.

The purpose of the two MUX/DEMUX, is that each time, the analog circuit measures one resistance, which is specified by arduino, utilizing the two MUX/DEMUX.

The resistances are sensors that we have developed in the lab.
Actually i think the sensors are pressure sensors, we just use common resistances in order to simulate them.

Back to my errors…
I appreciate the help, but i am too newbie to understand your advice.

  1. I get that i should put the NC to all the pins not connected, on the arduino header pins to the right. But what about those that have a name on them like IOREF, +3.3V, +5V, Vin etc?
    What do i put on these?

  2. Is it ok if i leave the pins bidirectional?

  3. Should i put only two power tags? One for Vin at the power jack, and one at GND at power jack? Is this correct?

Which means they are most likely not experts in electronics design.


It is well established in the engineering community that one needs to have decoupling caps as close as possible to power supply pins of every integrated circuit. A rule of thumb is that a 100nF cap should do the trick for most signal speeds found in todays applications.
Micro processors might benefit from an additional 1µF to 10µF tantal cap (or other high series resitance cap) in parallel to every such 100nF cap.

This is done for different reasons depending on exact application. When working with digital chips (especially in CMOS technology) then it is done to keep sourcing of switching currents close to the chip (the chip should take these currents out of the cap instead of from the power line -> reduces voltage drop on the power line and therefore galvanic coupling to other components)

For analog chips the main reason is to stabilize the power supply lines in the area of that chip. Any high frequency noise would then be shorted to ground via this cap instead of entering the chip.

So all in all i highly suggest you add a 100nF cap to every power supply pin of your chips. At least add it to the schematic and therefore board. This allows you to simply solder them on if you discover you indeed have a problem. If you don’t have one you can still say “told you so” (however you will need to provide evidence that you can make it through a proper EMC test without these caps to be allowed to be smug about it).

1 Like

Thank you very much! You convinced me to use decoupling caps!
If it was not for your long, thoughtful, and explanatory post, i wouldn’t have done it.

But you made it really easy for me. Just to make sure, one pin of the decoupling capacitor is connected to the power input pin of the IC, and the other pin goes to the GND pin of the same IC, is this correct? I am not too sure about the second pin of the capacitor, going to the GND pin of the IC…

One pin of the cap goes to VCC pin (or whatever your high supply is called). This connection should also be kept reasonably short on the PCB. Ideally the power connection comes from the supply to the cap and only then into the IC (remember every trace is a resistor/cap/inductor - whatever is worst for your current application).

The other capacitor pin should have the best possible connection to the same GND that the IC uses (if you have an uninterrupted ground plane then this is as easy as just placing a via. Otherwise you might need to take extra care of this line as well.)

An electronic physicist here: we do know what decoupling caps are. Physics has several branches, from theoretical to meteorological or optics. One of these branches is electronics.

Context is everything :wink:

Haha guys thank you!
I solved all my issues thanks to your advices. No errors in ERC.
I also added the decoupling capacitors.

At least i think i did the right job. Could you take a look on the decoupling caps? Do they seem OK?

You don’t understand that schematic is something different than PCB itself. At PCB the elements have to have pins in the order as they are in the socket. Schematic should be as easy to understand (what the circuit is doing) as possible. So the order of pins should be based on logical function of pins and not on their location in IC case.

Good for you. And remember that for always.

In past when desigs contained a lot of ICs like your U2 and U3 a typical practice was to have the GND and VCC tracks under ICs along their pins (ICs mounted in serie). Then between ICS there were decoupling capacitors just connecting that tracks.

They seem OK, but your schematic is extremely hard to read.
What you at least should change:

  • replace all GND wires with GND connection symbol,
  • replace all VCC connections with VCC symbol.

The next step would be to change your symbols according to what I have written at the beginning.

I am surprised. At my schematics signals generally flow from left to right. What kind of devices do you design that your standard is opposite?

IC’s on schematics are normally drawn from a standpoint of functionality, and not from the standpoint of the locations where the pins are.

The 74CBT3251 is an analog (de)multiplexer, and it’s function is similar to a 4051, and the KiCad symbol for that is:

In that symbol, Power is on the top, GND is on the bottom, “inputs” are on the left and “outputs” are on the right.

You can make a copy of the 4051 and modify it for the 74CBT3251. You probably have to change pin numbers and such.

Do something similar for the other IC. It looks like some kind of opamp but I have not looked up it’s function.

Actually, that was a brain fart. The “other” left and right… Should have been like you expected inputs on the left and outputs on the right.