How to create nets, and tag things to nets, inside pcbnew (without a schematic)

So maybe it’s a feature request for pcbnew. But I’d like to create/manage possible net names. And then simply tag pads and wires and polygons to those names. Seems simple!

Why? So that the “Add filled zones” feature can connect my filled zones up to those nets automatically without me having to add tons of little tracks leading into the filled zones. :frowning: .

Here, someone asked my question - but it’s never solved / doesn’t work for me.

Here’s what I tried:

  • WireIt doesn’t work on MacOS kicad (freezes the app after clicking wireit, typing a net name, then OK).

  • At the end of the thread - bobc says “just create a text file and save as .net”. So I created a text file with GND and 5V on separate lines… but nothing happened. I also created a dummy schematic and exported that, but it had too much information, labeling wires and pads and such.

Neither work.

Here’s what I’d like to do inside pcbnew:

  • click properties for an element, inside there, create a new net name right there and select that one

Anyone got a method that works for MacOS kicad pcbnew?
(i’m really not looking for a lecture on should I be creating a schematic - I’m familiar).

This sounds odd. I am sure you may be doing something conceptually wrong, or you tied all your shoelaces together instead of just tying each shoelace to itself — and then you run and fall.

Please stat your kicad version and attach a kicad_pcb file to show your issue.

You may have set some bad clearance values or properties for pads.

There are no nets to choose from in the netlist right now. So I cant assign a fill zone to any net list. This pcbnew file is NOT from a schematic. Was created completely inside pcbnew. As I understand it - this is a common problem when creating a pcb layout without a schematic. But I would like to work around it - without creating a schematic of course.

Application: Pcbnew
Version: (5.1.5-0-10_14), release build
Libraries:
wxWidgets 3.0.4
libcurl/7.54.0 LibreSSL/2.6.5 zlib/1.2.11 nghttp2/1.24.1
Platform: Mac OS X (Darwin 18.7.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
wxWidgets: 3.0.4 (wchar_t,STL containers,compatible with 2.8)
Boost: 1.69.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.54.0
Compiler: Clang 9.0.0 with C++ ABI 1002

Build settings:
USE_WX_GRAPHICS_CONTEXT=ON
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

1 Like

For real though, you should be creating a schematic.

Edit: anybody in the ‘community’ care to explain why this post was flagged and hidden?

1 Like

You can reproduce the problem this way:

  1. Inside pcbnew - File/New
  2. Create a Module / Arduino UNO R3
  3. “Add filled zones” and notice there is no “nets” in the list to choose from
  4. Start to think about how you would get some nets added to the list! :slight_smile:

For real though, you should be creating a schematic.

for sure - I know the workflow to start from schematic - I am asking instead how I can add a net from pcbnew

(i’m really not looking for a lecture on should I be creating a schematic - I’m familiar).

Some responses I think could help me:

  • If I can manually create a .net file, and have it modify the net list dropdowns in pcbnew - could someone explain how?
  • If someone knows why WireIt is freezing the app on MacOS… ?
  • Alternatively - Feels like a simple add to add a “create net” button wherever there is a netlist dropdown…

Mmm, yeah, that workflow is not supported, because it is not a sane workflow IMHO. You need something to tell you what nets are available and what nets pads should have. You need to construct the netlist and load it in pcbnew. Usualy it is done via eeschema, but there exists tools that generate netlists from other kinds of sources via scripts. There is no GUI for adding arbitrary nets directly in pcbnew.

Well, it’s sane for me :slight_smile:
But understood that is not supported. Any hacks or work arounds?

You need to construct the netlist and load it in pcbnew.

I’ve read this a few times in various places…
Can you briefly outline the steps?
Here’s where I’m getting stuck, e.g:

  1. Launch eeschema
  2. “Place Symbol”, select GND from the list, then Place a GND
  3. “Place Symbol”, select +5V from the list, then Place a +5V
  4. Tools / Generate Netlist

a. Inside pcbnew - File/New
b. Create a Module / Arduino UNO R3
c. Tools / Load netlist
d. “Add filled zones” and notice there is no “nets” in the list to choose from

But then I dont see options in the net list in pcbnew… I guess I was assuming I would get 2 nets, +5V and GND… I did try to add labels within eeschema - https://kicad.txplore.com/index-p=153.html… and tried adding a dummy resistor connected to 5V and GND with wires. Still no list of net names in pcbnew after doing step 4 and 5 again

By the way, I have to say I really love kicad’s pcbnew for quick hobby boards! (thank you for this great tool)

Really love that I can get in and get out with some gerbers in no time at all, without a lot of complexity/overhead or any other tools. Invaluable.

Should or not, the issue report reveals that there are quite many users who don’t have schematic. This is one of the most re-occurring expectations in this forum. Luckily Jeff got interested in implementing something for it. Meanwhile, @subatomicglue and others interested can give a thumb up to that issue.

1 Like

I added my thumbs up - would appreciate this feature. Thanks Eeli!

This is not creating a net list in the way that you think. A net list describes the connections between symbol pins. I.e. a wire connecting two components is a net.

If you haven’t connected anything in Eeschema, there won’t be any nets in the net list.

1 Like

To be honest we might need to focus on that. Did you already report an issue on the wireit github page?

1 Like

Yes

1 Like

When you place the symbol GND you tell KiCad: "Something what is connected to that symbol should be connected to all other things which are connected to GND. But there have to be that ‘something’.

You are going in right direction.
When I add resistor then I have everything OK, but I use only made by me libraries where each symbol is directly connected with specific footprint. Before I have done first KiCad schematic I have done my libraries.

I suppose you added the generic resistor symbol - so you still don’t have that something real at PCB to be connected to. You should assign footprint to your symbol. A moment ago I have tried to do it (first time in my life) at the clear KiCad installation (few days ago I installed those day pre 1.5.6 version).
Here is what I get when added GND zone to PCB:

Test1.zip (3.3 KB)

It is certainly not the way you should go. It is like using graphic program and not using any tools it gives you (lines, circles) but making all pictures by hand.

1 Like

I think the main problem nowadays is that people don’t read even Getting Started and assume everything should be obvious. May be most of them have done some tries and failed with going from schematic to pcb so decided I will try to do only PCB as I know what I wont to get.
I think that libraries with generic symbols don’t help in that case.
The opposite is also wrong. I have started from printing all documentation pdf-s and reading all them (with marker in my hand). After long time I decided: “I know enough to try KiCad for the first time” and found that all I have read is far away from how the programs really look like :slight_smile:

May be the good idea would be to add to libraries the special one ‘For beginners to first try’ and make it being the first in the list anyone sees when run schematic for the first time. That library could contain a limited list of elements but fully defined.
Also may be after first run the window with step by step instruction (with pictures, but without explanation why) what to do to make schematic and pcb (much simpler than in Getting started - just 2 elements from those beginner library connected parallel) could be opened.

Thanks for the tips Piotr. I think I’m understanding Schematic, and can get that to work. I really appreciate your advice

It is certainly not the way you should go. It is like using graphic program and not using any tools it gives you (lines, circles) but making all pictures by hand.

I understand that may be true today, given the current capability and culture around KiCad.

So this is more philosophical, and involves product design of KiCad… My opinion on that follows:

Starting from pcbnew should (IMHO) be a valid workflow. Maybe it isn’t now, but, it’s quite valid - pragmatically speaking - why not - it works 97% of the way, really really well. Up till you want to do some copper fills and discover you have no net lists and they dont work well!

So, From a product design point of view - you’re almost there. All you need is some label tagging for the wires/pads in pcbnew - and have the copper fill pay attention to that!

The reason that starting with pcbnew is so efficient for me is that my schematic would change connection depending on the layout. So I needed to start with layout first. The pins I use highly depend on the logistics of where the wires can route on the PCB. And I needed to split my PCB in 2 to save cost - so I had to split the entire circuit. A major PITA to start with an “ideal” schematic to find it just doesn’t represent reality on the PCB side. So. Starting with the schematic is quite backwards for me - and involves extra work I didn’t want to do. In fact - I proved (to myself) that pcbnew workflow is quite productive (for myself). Just hit the one snag. With WireIt, I’d be 100%… if it worked, anyways, I’ll focus on the WireIt Issue in github, and maybe will get some traction there.

And for sure. I have a 100% done and shippable pcb diagram. To go back and create schematic symbols for all of it now seems like a waste of time. Time is money, etc… connecting the copper fills with tabs is the most pragmatic thing to do at this point. Painted myself into a corner. Yep. Could pcbnew have a feature to tag things and have the copper fills consider those tags? It’d be a nice feature that allow people to avoid being painted into a corner for what seems like not that difficult a feature to implement…

That is also my case. When routing and I see that wires should be connected differently I go back to schematic and make correction. In that case the correction is to swap two labels at microcontroller pins. Then I go back to PcbNew and press “Update PCB from schematic” button. That’s all.
There are (or are in plans) the opposite way - to correct at PCB and update the schematic for it. But I have never used that way so I’m not sure at what stage it is.
Searching at PCB (real or at screen) where each track is going instead of having it clearly written at schematic while writing the software for that PCB is unimaginable for me.

Since ‘always’ the schematic is more important for me than layout.

I use the same way to propagate changes: originate at the schematic, and propagate forward to layout. At layout stage you usually don’t have all the information necessary for reconnecting, e.g. which mcu features are available on which pin. Except for very simple projects that don’t use advanced peripheral much, any other approach would become very error-prone.
But maybe for simple stuff like change the LED from this GPIO pin to that could be performed “faster” on the PCB level, the difference however would be negligible.

Hi, I am using protel in the same way. There is a feature in protel 2.7v which allows the pcb file with nets the way you want, by entering the new net names and it will be assigned by clicking on the pads of the components added from the footprint library. I am doing pcb layout in this way without creating a single schematic dig. since so many years. I would love if the same feature is incorporated with the Kicad. The plugin WireIt was of similar type but sadly it does not work in 5.1.5 ver of Kicad.

1 Like

I find it really hard to imagine what the advantage is for a PCB without a schematic.
There are alternative way for KiCad to generate net lists.
First, the netlist file is a pretty simple format, and you can make it with a text editor.
(Just use netlist from some existing schematic as an example), and you can also easily download the description of the file format from:
https://www.kicad.org/help/file-formats/

There is also a side project for kicad called “skidl”. It is a python library for generating netlists. Think of it as a sort of VHDL for schematic entry.

1 Like