What are nets for?

Seems that my biggest problem with creating a PCB design or the nets. There are no nets on my breadboad prototype so I’m wondering why they exist in KiCAD. Can a pcb design have NO nets?

All and any comments greatly appreciated!

A net is a collection of connections. Such as one side of a resistor is connected to a capacitor and it is connected to pin 3 of an IC.

All the nets together are called the netlist.

Yes, it is possible, but it is not advisable.
Without a netlist, KiCad does not know how to keep clearances between different connections. Random tracks may overlap with each other. It is also possible to manually create the netlist inside the PCB editor, but it is a bit of a tedious process. Overall, drawing the schematic first is the easiest and quickest way to create the netlist that is necessary for KiCad to work properly.

This is also a recurring topic on this forum, and a very similar question was asked 9 days ago. In that thread I did a few experiments to see what could be done in KiCad.

1 Like

There are no nets on my breadboad prototype

Almost certainly it has nets your just not telling the computer what they are.

You can work without telling the cad what you are doing. But as a workflow that’s a bit problematic because you now don’t benefit from the better features of the CAD application namely the verification that it matches your electrical design. You might as well use any drawing application instead.

You can have similar issues in many other kinds of applications. Lets take a few examples:

  • you can write in a word processor, text editor without tagging anything. You dont need to use paragraphs, headers, bullet points. Or god forbid styles. But if you do so there is a definitive downside when you start to edit and format your text.

  • You can use a mechanical CAD application without modelling the relevant parts of surroundings, or assembling your separate parts. But then the validation tools can not help you to realize things don’t fit together.

The most common issue that leads to where you are is that your beginning the CAD journey at the wrong point. People who design mostly for a living start using the cad application at the point where they have no breadboarded design. After all there still needs to be a pre planning step before you start connecting wires and they then continue doing so while they connect the wires.

The benefit of doing this is that soon you realize that you don’t necceserily need to breadboard the whole thing to begin with for a lot of cases. This allows you to build the straightforward things in a much more streamlined manner.

The benefit of skipping this step is that from where you are it is slightly faster to just skip this phase. But if you ever need to change anything it quickly, or remind yourself what you did, this stops being true.

Theres usually no point is skipping the step though, even if you have a rather busy 2 beradboard design it is usually not much work to draw the schematic as it helps you verify that you indeed did the same thing as on the breadboard.

1 Like

Agree.

@Witchdoc59 almost certainly started with a schematic. That schematic was either drawn on paper or copied/modified from another source. The drawing was then bread boarded for proof of operation.

As @joojala also writes; to get the best out of this CAD, that final working drawing should be transferred to the schematic with all the appropriate footprints allocated to their respective symbols.
Designing the PCB layout is all downhill after that.
If that procedure is followed, Kicad will place the chosen footprints on a board, draw lines so you know which pins on which footprints are to connect to which other pins on other footprints, not allow you to make wrong connections and finally tell you if you have made any mistakes or omissions by using the DRC tester.

I fully agree with the others here, and maybe I should have made that more clear from the start.
Working without a netlist is quite troublesome in KiCad, while schematic entry is simple, and once you have the schematic, you also have the netlist.

If you have a schematic on a piece of paper before you started on your breadboard, then enter that schematic into KiCad. If you build your breadboard “from memory” then it’s now time to create some documentation in the form of a schematic first.

Your question is so vague and short, not giving any background or hints about you knowledge level, that I suspect if the posters above have actually understood what you’re asking – and I’m not sure you understand it, either.

“Net” is an abstract concept. An EDA program implements it in some kind of data structure. Does your breadboard have nets? In abstract level, yes, because it has connections between components which in theory are thought to have 0 ohm resistance. The most simple net is a connection between two leads of a component or two components.

This connection is represented in an EDA in an semi-abstract functional level in a schematic. In KiCad a net is created by connecting some symbol pins together with “wires”. In the normal standard workflow this net as a data structure is propagated to the PCB design and used there with great benefits which you don’t have if you don’t have the schematic. You can actually create net representations in the PCB editor without a schematic, but usually it just means more work.

Now we come to the very heart of the existence of and EDA program. Any circuit has “nets” in abstract level. This means that certain pins must be connected together and they must not be connected with other pins. In physical, concrete level in a PCB board this is done with copper connections which have some practical requirements, for example minimum width and minimum clearance. (In breadboard you think only on/off, connected or not.)

Now, the implementation of nets is the way the program lets you easily create the wanted connections and prevent unwanted connections. Add here possibilities to define different kinds of restrictions, track widths, clearances between different items and nets, and you have a system which allows you to create as error-free PCB design with as little effort as possible. This is actually the most important feature of an EDA program. Without nets you could as well use any graphical design program. You can’t have an EDA program without nets.

Does this answer to question at all? You have abstract nets in your breadboard, the reason for existence of KiCad or any other EDA program is to make them concrete.

You can just create an empty KiCad project, open the PCB editor, add some footprints there and connect pins with tracks. If there’s some problem with that, it depends on some settings which can be changed. Then you don’t create explicit nets as KiCad implements nets, you just create the same connections in the PCB which you already created in the breadboard. You still have the abstract idea of nets in both. But you loose almost everything KiCad is good at.

Yah, quite a lot of assumptions and speculation in this thread.
Some pictures of the breadboard and what’s on it or other info on the project will help here to narrow it down a bit and give more fitting answers.

What is this abstract and concrete thing? The nets are usually made from copper. No matter if you put wires in breadboard or draw tracks on a PCB. Anytime you put a wire in your breadboard, you make an electrical connection between different parts, and that is what the net is. All the wires together, forming the different connections of a whole circuit are the physical representation of the abstract netlist.

That’s possible too. Some people “abuse” PCB manufacturing services for things like front panels with routed out holes for potentiometers, knobs and such, but with not any electrical connection to it. But I guess that is not the intention here.

I don’t think its true that they started with a schematic. For example in the audio synth building workshops i have been part of, its perfectly normal that people build stuff by just connecting things to see what works.

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.