I just started using KiCad and want to run PCB tracks manually on a fairly complex design.
I used to use early Protel, and doing this was a very easy task.
With many digital tracks, sometimes I have to start laying tracks from one end of the board and stop part way. Then I have to route back to there from another point on the board, etc. I might have to partly route many tracks in the manner to arrange them properly on the board.
KiCad won’t let me join the tracks doing this even though I have turned off everything I can find with regards track routing.
A couple of questions that will help us to narrow down a possible solution: are you working with an schematic ? Or are you trying to route a board directly ? Which version of KiCAD are you using? Did you try to allowing DRC errors on the interactive router settings ?
Try making a screenshot of the net names on the tracks as below and post it here:
I am wondering what is going on here below the surface.
Crippling the interactive router to force it to let you make (random) connections is not a good way of using KiCad. It may be possible to get decent results on relatively simple PCB’s, but when stuff gets more complicated you need all the help you can get from KiCad.
It is not only KiCad letting you make connections, but also KiCad knowing what should not be connected and enforcing clearance rules.
So the question becomes:
Do you have a schematic, and is the connection between the schematic and the PCB set up properly?
I have designed many PCBs over the years using Protel. I usually manually route them the way I want and use the auto route and design rule checker to validate it. Unfortunately, the design PCs that I used have broken down and are not worth repairing so Protel is gone for me.
The KiCad PCB has a netlist with 100 or so components, and if I manually place a large power trace on the board with KiCad I cannot attach another trace to it later on after I have worked out to “my” liking where the next one should be. KiCad starts drawing traces branching off in all directions. I thought if manual routing is available, and the manual says it is, then that it is what it actually means, Manual Routing, where the auto trace functions do nothing. Surely under these conditions KiCad knows a trace has been routed from A to B etc.
Not complaining, just a bit confused about the automation.
Your post is confusing me.
Your experience with Protel implies a decent amount of experience with PCB design, but your description of KiCad’s behavior suggests some basic things are not working or set up properly.
And that is why I asked:
Also, this does not compute:
There is no autorouter in KiCad. Kicad only puts traces where you tell it to put them.
This does not make sense to me:
When track segments belong to the same net, then KiCad is more then happy to connect them together. Usually it helps by creating snap points to fit the center lines of different track segments together.
You can disable this with the settings der.ule suggested but that is not a good way of using KiCad. Those settings are more like an “extra” ability to do unanticipated or weird things in KiCad.
Just for simplicity, say I have successfully loaded the net list into PCB and KiCad is in “Manual Mode” (as far as I can tell). I manually place the components where I roughly expect them to be.
I should now be able to draw any amount of traces on the board without KiCad caring where they go. I know where they go, so for me it is not a problem. The ends of the trace are not attached to anything yet. Again, from a manual point of view, who cares.
I then try to draw another trace, also not connected to anything specific at this stage. After placing a few of these I can then start to see what routing problems I am going to have to deal with and get a better idea of component placement, power routing etc.
Say I now want to connect a new trace to the first trace. KiCad does not want anything to do with the first and tries to route around it producing multiple bent traces where I don’t want them, probably because it can’t work out what net it is on. As I say though, for manual routing, it shouldn’t matter.
Normally for me, as I get to figure out the proper layout, power, data traces etc, I then begin to connect the dots. Obviously this is not everyone’s cup of tea, but it works fine for me.
I’m new to Forum and haven’t added images before, but I attach one showing a similar board I just completed before I have to make new design changes.
First some small things I want to get out of the way:
Generating netlist files and importing in Pcbnew has been deprecated for three or more years. Try: Eeschema / Tools / Update PCB from Schematic [F8] instead. The result is very similar, but it’s much quicker and more convenient.
What KiCad version are you using? There are some differences in the behavior of different versions.
That works. Quite some time ago I experimented with first drawing a bunch of tracks, and then later connecting them with footprints.
Another post in which I experimented with mass copies of tracks, and connecting them to connectors later in the process:
That is very likely the “walkaround mode” of the Interactive router, and is what der.ule mentioned.
Klick on: Pcbnew / Route / Interactive Router Settings, and then set the Mode to Highlight collisions
When you draw tracks in KiCad that are not connected to a pad, then the segments get assigned to “No Net”. If you set the interactive router into the Highlight collisions mode, then it should let you draw a track from a pad (so that new track is part of the same net as that pad) to connect to a track segment that is in the "No Net** part of the netlist.
I experimented (again) a bit with it. I can draw a track segment that connects a named net to a “No Net” track segment, but not from a “No Net” to a “Named Net” track.
If that does not work satisfactory, you can also turn on Options / Allow DRC Violations (der.ule put a red line through it, which is a bit unfortunate). If you combine these two settings, then KiCad lets you make any connection you like.
From that I understand that you just place track not starting from any pad and suppose it is a source of problem. I have never tried that way of working in KiCad and in Protel. Don’t want to get back to Protel to check it, but I suppose that there when you connect track from pad to such ‘no net’ track you will get an Error identification (lite green in my case).
When I want to preview how the connections will be done I draw tracks from one end (from pad) to some place to make connection line showing where the track will be finished later. Having that connection line there (out of place I am currently trying to untie) I have less mess in the place I am working on now.
The better way of using KiCad is to use its Interactive Router than trying to route everything manually, I think. That router was the main reason I decided in 2017 to move from Protel to KiCad.
I fully agree that the interactive router in KiCad is a very good and valuable feature in KiCad, but it’s not the only tool to lay tracks.
I linked to two examples in which first drawing tracks and making connections later is a valid way of working. The first example with the old fashioned memory chips is straight forward. For the second example with the two connectors I spend quite a while in figuring out an effective method. Not very productive for a one-off, but it does extend your skill set so you can use it in more situations.
This feels like a strange workflow to me. If you already know which pads the trace would connect, why not start from one pad? But if you insist, you can set the router to the Highlight Collision mode, then start from a pad and connect it to a nearby loose end of a no-net track. The track receives the new net from the pad. Paul already descibed this.
Another way, probably a bit more tedious, is to select a track segment, use U or I shortcut to select the whole track, open the Properties and change the assigned net to the wanted one. Then you can use the Push’n’Shove router normally.
BTW, the assisted routing, interactive routing or push and shove routing isn’t called auto routing. Autorouting means automatically finding a path for a track from beginning to end. “Manual” is an ambiguous word here – does it mean non-autorouting but still automatically assisted, or that you bypass every possible help from the program? In any case, as has been said, it’s better to use interactive routing (push’n’shove) as far as possible.