What are nets for?

Yes, but I couldn’t come up with any better terminology when talking about what is in a physical world of a breadboard and what is inside a running EDA program or its files – and what is the idea behind both.

In a breadboard or in some other physical circuit certain component pins are connected together. I would say these are nets. In KiCad (or other EDA program) you can have a netlist, which is a representation of that same idea. In KiCad the netlist is usually propagated from the schematic to the PCB editor. But you can create a layout in KiCad, and even create a physical board from that layout, which has the same connections – i.e. nets – but doesn’t have a netlist.

Therefore I separate the abstract idea of a net (pins connected together) from the representation of nets in KiCad, which is a netlist. Yet, even in KiCad, you can have connections between footprint pads without explicit netlist inside the program.

Maybe the following helps to understand my thinking.

For a circuit, you always have to have an idea of pins connected together. In a breadboard these are connected directly physically with breadboard wires, external wires and component leads; in an EDA schematic these are connected with wires between symbol pins; in KiCad these connections are pushed from the schematic to the PCB layout using a netlist; in the layout the netlist is used to create connections between pads using copper features, i.e. tracks, zone fills etc.; the KiCad layout is exported to gerber or some other format which has identical connections; the gerbers are used (probably using some intermediate format) to create the actual physical board which then has these same connections.

I have tried to separate these different levels by talking about the abstract idea of nets and representation of nets. You always have the abstract idea of connections present, but you don’t need an intermediate representation of the idea to create physical connections. However, if you try to create a connection in a layout directly in KiCad, without a visible schematic representation and the invisible netlist representation, you loose most of the benefits of a specialized EDA software.

Intuitively I think that the original poster didn’t understand this about KiCad: “in the layout the netlist is used to create connections between pads”, and why it’s beneficial to move from the idea of nets in a breadboard to the connections in a schematic to the netlist in KiCad which is pushed to the layout and used there to help the end user to create a faultless layout with only the wanted connections and without any unwanted connections – and even with proper clearances, copper width etc.

I see it as someone with probably little experience in electronics and not familiar with terminology claiming he has “no nets on his breadboard” while does as soon as he puts a LED and a resistor in the same row of connections.

My guess is that it’s all just a misunderstanding / misinterpretation and we can only guess and speculate more without response from (OP) Witchdoc59.

1 Like

Let me add some context. I’m new to electronics. Studied a bit of it as a Heavy Equipment Mechanic. But that was a long time ago. Started getting into it a little more seriously about 2 years ago. Someone gave me a box of electronic components including some arduinos and a few books. A few months ago I was wanting to do some power monitoring of a solar panel that I’d like to use to power a project. I downloaded a set of gerber files from someone’s YouTube and sent the gerbers to a PCB place and got my 5 pcbs. But they didn’t work. Spent a lot of time studying why an realized there was a track that was out of place. It should have gone to ground but instead went to the pin next to it. About a month ago I asked in an electronics forum what PCB design software I should learn. Most said I should learn KiCAD. So about 2 weeks ago I loaded it on my computer and found a simple video that walked me through the steps of creating a simple traffic light pcb. I sent that away and when the pcb’s came back I populated one and tested it and it worked fine. So then I sat down with the defective pcb, and I should mention that I have a working model of the power monitor on a bread board, I then began trying to design the power monitor in KiCAD. I believe I’ve done it. But it was very frustrating. While the schematic passed the ERC the pcb didn’t. I’d change one thing and it would affect something else. And at this point there doesn’t seem to be any rhyme or reason to it. A few months back I learned about the venerable 555 timer. On a breadboard I built a simple LED flasher with the 555. Then I found a 556, 2 555s in one package. I had this brilliant idea that I’d get 2 lights flashing. Essentially the first timer triggers the second timer so 2 lights flash alternately. Having had it running on a bread board for some time I thought I’d throw it into KiCAD. Again, schematic passes ERC, schematic parity is great but getting all the connection to work together was a nightmare. I guess I need to go and google KiCAD netlists and see what I can figure out.
Thanks for all the great comments. They are much appreciated.

WD

If you share your KiCad project here I’m sure someone will look at it and tell you key things you have a problem with.
Or you can ask specific questions about errors you get showing probably some screen shots.

You asked for nets in such a way that it looked you worked without schematic.
But as you made schematic then when updating PCB to schematic you automatically get nets at PCB.

No one will stop you, but have you read:

Hi @Witchdoc59

The nets in the Schematic are the wires connecting the pins on symbols to other pins on the same or different symbols.

The purpose of nets is to transfer the wire connections between symbols in the schematic to the copper track connections between footprints on the PCB so the Schematic and PCB match each other.

Using nets serves many purposes.
This means you can only connect tracks between pads (on the PCB) identically to the wires between pins (on the schematic)
This means, if you use the DRC, any copper tracks you have forgotten or not completed correctly will show as errors (so you can correct those problems).
This also means there are various other time and effort saving functions that can be used when designing a PCB.

Descriptions like that do not have useful information for us to help you. I guess you miss some fundamental concept in PCB design and to find out what part it is that does not work we need more information about your nightmares.

With prototypes it’s common to make a few bodge wires to get the PCB to work. It looks ugly, but the electrons don’t care and when done properly it also does not have averse effects. It’s even common to see bodge wires in the first production runs of commercial products. For the next production run it is of course more cost effective to make a new revision of the PCB, but a few faulty connection is no reason to throw away the PCB’s.

KiCad also has the ability to:

BASICALLY,
The ‘.NET’ (NETLIST) is what generates the PCB Components & Copper Track Connections…

Create Schematic.
Connect ALL Components with ‘wires’ and add ‘Power Flags’ and GND where necessary.
REQUIRED!
Assign Footprints to ALL Components.
Run ERC (Electronic Rule Checker).
IF O.K.
‘Save’ or ‘Save As’ [ProjectFilename.kicad_sch]

GOTO → File → Export → Netlist…
‘Save’ or ‘Save As’ [ ProjectFilename .net ]

exportnet

Open PCB Editor.
GOTO OR CREATE [ProjectFilename.kicad_pcb]
MUST BE SAME NAME AS ORIGINAL SCHEMATIC [PROJECTFILENAME]
GOTO → File → Import → Netlist…
Arrange ALL Components and use ‘Track Tool’ (Jagged Blue Line on Right)
to add Copper Tracks to Top (RED) and/or Bottom (BLU).
Run DRC (Design Rule Checker).
IF O.K.
Resave as [ProjectFilename.kicad_pcb]

HINT:
EASY ROUTING INSTRUCTIONS
When adding the Top/Bottom Copper Layer Tracks optionally resize Track width and Vias (Upper Left Corner).
VIAs are used to connect Top and Bottom Copper Tracks so they can be overlayed.
A VIA must be placed on a pre-existing Copper Track for it to be ‘.net’ recognizable and connectable.
(Budhapesht! is connectable a word?)

When dragging a Copper Track it can be temporarily ‘finished’ (Right Click Context Menu) and then added onto.
Example: Create/Drag a Horizontal Track of a visible ‘.net’ (white line) and arbitrarily temp ‘finish’ it.
Drag a corresponding connected ‘.net’ Track Vertically SLIGHTLY PAST THE JUNCTION POINT and Mouse Click to end…
Mouse Click on the overextended ‘blurb’ Track end and delete it!
Mouse Click directly at the junction point to 'X-RAY’if there is any additional hidden blurb(s)
and if so delete.

I think, if you want to get forward. you should post few detailed a pictures of your breadboard. This way somebody can draw the schematic for you. And go through the process for you.

It is very common that beginners have hard time copying their breadboards out to a new board. It is far from natural for most people to follow the thing systematically. Hell most people can not implement a schematic on a breadboard without a lot of help, let alone copy the one they made into a schematic.

Anyway Design is hard, its just that those who know how to design tend to make it seem easy. And in simple cases it is, once you accept to take on all responsibilities which goes with designing anything. If you dont accept them all then you will keep being frustrated.

I have found the KiCAD getting started page and I’m going to work through that before I do anything else. That reverse engineering tutorial looks like it might be very useful. From the little bit of the Getting started tutorial that I’ve read I may be doing my schematics wrong. This might be throwing off the PCB editor. For instance in the tutorial the schematic simply used ground symbols for grounds where as I have been drawing lines back to the actual ground. Likewise with power. I will try and figure out how to post my schematic and pcb design for another project that I’m working on.

Either way works, sometimes it’s neater one way, but you probably made some slips along the way.

I know my condensed instructions post may look easy but a beginner will still need a lot more info.
I began working with eCAD based systems almost 30 yrs. in the past.
I advanced to Commercial Licensed Semi-Pro Version
DesignSoft TINA (Texas Instruments Network Analysis) Complete Electronics Lab.
Rather Expensive $$$
I kept checking out KiCad and by v.6 in my opinion this Software is Superior Freeware.
Even so, when I actually fired it up for the fire time … it drove me nuts!
Patiently, I persevered and now can safely say the only difference between Tina & KiCad
is the ‘Flavor’ of Commands and GUI (Graphics User Interface) utilized.
I recently upgraded to KiCad v8.0.3 (need to go to v.8.0.4).
By the way, jumping from old to new major versions is almost like breadboard to pcb difficult.
It appears that v8 has almost conquered this ‘Grand Canyon’ for if/when v9 comes out.

My first etched PC Board was a copy of a Univox SuperFuzz.
Back in the 70’s one had to physically examine the top and bottom
of a pcb and carefully hand draw the schematic and multi-task draw/copy it to the board to etch.

The only difference now is that the drawing is electronic.
Everything else is still basically manual labor.

Keep studying Electronics Theory.
Learn about Gerber Files and SPICE.

As advised, post some pix if you accept public viewing.
This forum format allows simply dragging an image into a thread post or reply!

Yeah, and the most perplexing ERC warning are those missing or duplicate ‘Power Flags’
I prefer the one ground/one power source with wires attached to find these loose ends.
It may be ‘Ancient Old School’ but multiple gnds/power symbols are visually
kinda like ghosting on a cellphone when ERC Flags it.

You can do either way. But the primary reason doing it with symbols is that you can keep the design coherent to the reader.

Drawing everything separately allows you to structure the design in a similar kind of way as you structure text. This makes it easier for others and yourself later to follow the train of thought. Since its structured by functionality, in separate sentences and paragraphs so to speak. The benefit of the lines at all places is it mimics how its being done in reality better.

But the application is actually meant to overcome this. This is why its split into 2 parts doing the design and then layout. So you don’t actually need to concern yourself with the layout in the schematic stage and you can concentrate on making things as readable as possible. Which helps when you move away from simple designs. Not that all connected lines can not be readable, but a lot of lines crossing can be confusing and takes more time to draw well.

I do use the lines strategy sometimes when I need to work with very beginners so that they can breadboard the design easier for testing. Also lines strategy is better if you intend to actually make a IC design, but off course kicad is not designed for this.

One thing I don’t think anyone has mentioned yet . . . are you running KiCad, loading your project and then launching the Schematic Editor and PCB Editor from there ? or are you running them stand alone ? if you run them from outside the project they won’t be linked so you won’t get the benefit of the Netlist.

Last time I was doing it was 2017.
Are you still using KiCad 4.0.7?
Since V5 you have direct connection between schematic and PCB and need not go through netlist.
At PCB you just click “Update PCB from schematic” icon in toolbox.

Double click is faster than selecting anything from Context Menu.

While editing your message you can drag file onto it and at right you see how it will be looking when posted.

There are different schools of how people draw their schematics. Here I have shown how my schematics looks like:

Fridge_Alarm.kicad_sch (67.6 KB)
This is the schematic for a project I’m working on. I didn’t do a breadboard for fhis my first step was the schematic then I created the PCB design and then I started breadboarding. I’m calling it Fridge Alarm. We have a second fridge in the kitchen that has a stubborn door. Many a morning we’ve woken up to find the door had been partially open all night long and most stuff on the top shelf are garbage. The fridge alarm will monitor temperature and light and sound an alarm if either the light is on for too long or the temperature rises too high. Since I did this schematic I’ve learned that I might not need the transistor on the buzzer.
Hope I did this right.

Both GNDs ought to be connected together but they are not. It’s unclear if they are connected internally on the devkit but why take the chance? Thus you only need one GND PWR_FLAG.

You can rotate and mirror the DS18B20 symbol to make the wires from it neater. Similarly you can mirror the ESP32 module so that sensor inputs are on the left, and buzzer output is on the right.

Nice drawing.
Pin 23 needs fixing.
I’d connect pins 2 & 23 with a wire so they are on the same net.

I prefer reading L to R, so, if it was my drawing, I’d place the power in on the Left with the Gnd connection on the bottom and I’d rotate and mirror U2 so pin 2 faced U1 and U2 Gnd was under U2 VDD. That way Gnd was at the bottom of the drawing and V+ is at the top of the drawing.
Note: I write, “I prefer”. You may not agree. :slightly_smiling_face: