Can't connect pads - creating just board

Hello,

I’m very new to KiCad. I was creating boards a few years back in Sprint LAYOUT and that! 's the only PCB software I have experience with.

I’m trying to recreate an existing PCB that has burned. I don’t need a schematic. I scanned the board, added it to KiCad, and added the components. Now I need to create the tracks.

However there are some pads, that won’t connect to the tracks.

I couldn’t find how to get around this. I tried to turn off everything (ignore) in Board Setup → DRC, however I am still not able to connect the pads/tracks.

Can someone please help me? Is it even possible to build a PCB without a schematic?

Thank you very much for your help.

Yes, it is possible, but as far as I know it is more difficult then re-creating the schematic in the first place. The problem is that KiCad does not work properly without the netlist, and drawing the schematic is the easiest way to create the netlist.

There used to be a Wire It plugin in KiCad that could help with this, but I do not see it (anymore) in the plugin and content manager.

Having a schematic gives you the added benefit of verification whether you made mistakes in the PCB layout.

This also does not help:

Reverse-engineering is not the main focus for KiCad. It is doable, but you have to use some workarounds. Both learning KiCad, working with such workarounds and reverse-engineering a PCB all at the same time is not an easy task.

The way I would do it is:

  1. Make a good guess what the schematic looks like, and put schematic symbols on the schematic.
  2. Assign footprints to the schematic symbols.
  3. Schematic Editor / Tools / Update PCB from Schematic [F8] to put the footprints on the PCB.
  4. Draw some wires in the schematic.
  5. Update the PCB again.
  6. Draw the copper tracks on the PCB.

And then re-iterate over those steps and make adjustments until the whole project is done.

But overall, It’s more likely that I would scrape off all the black stuff from the PCB, and solder in some wires. PCB’s do not have to look nice to work properly.

I once was interested in Sprint (Before I used KiCad). I lost interest when I found out it does not work with a schematic at all, and thus no netlist. But I do guess that Sprint Layout may be more suitable for a job like this then KiCad. Maybe it is better to do this job first, and then start learning KiCad in the “forward” direction.

Does Sprint Layout generate Gerbers? It is possible to re-create a PCB in KiCad from a set of gerber files. See: Reverse engineering KiCad project from Gerber files

I’d definitely reverse engineer the schematic first. Not only makes it building the PCB much easier, it will also allow you to check that the circuit you’re building makes sense and you’re not forgetting any connections that might be badly visible on your PCB scan. It will also help you to place proper connector footprints. On your screenshot, the THT pads you place all have random distances.

1 Like

Not first, but at the same time. If you combine it as in my 6 step list, then you can build up the schematic (and PCB) one connection at a time, and you also automatically have a reference of what you have already done (tracks on the PCB) and what you still have to do (open pins on symbols and footprints).

Yes, that is a mess. Use proper footprints instead.

1 Like

The main Question @Dominik_Pechac asked is, about connecting tracks to pads…

I grabbed a photo off the internet, placed it in Kicad PCB (did not bother to correctly scale it…)

Set Interactive Router settings (Menu>Route>Interactive Router Settings)
Set (created) Track Width
Added a Terminal, tweaked it to Circular
Drew the the Tracks…

Did not bother to set the Grid/snapping… just did enough to answer the question…

KiCad 8.0.4 on Windows 11.

Interactive router settings:
ROUTER_SETTINGS

With the above settings I am able to connect tracks between pads on randomly placed footprints in the PCB Editor despite not having a corresponding schematic.

Without a schematic (netlist) the tracks will happily lay on top of anything, any pad, in their path.

Yes, that is one of the biggest problem if you do not have a netlist.
Also, clearance distances are not respected and it’s all too easy to create short circuits, or near shorts that may or may not get etched properly.

But I did a few short tests, and this works:

  1. Put a random footprint on the PCB (For example DIP or a dual row header).
  2. Draw a track from one pad to another.
  3. Draw another track.

All pads and tracks are by default of the type.

A better way is to do a partial reverse engineering of the schematic.

  1. Ad some parts with a big pin count on the schematic (For example a big connector, or some of the IC’s.
  2. Assign footprints, so you can use these footprints on the PCB.
  3. Put the connector on the PCB.

Pads now have net names in the form: unconnected-(J1-Pin_8-Pad8)
You can put labels on the pins in the schematic to give them shorter and more meaningful names. Tip: Try out the [Ins] key after placing a (numbered) label. KiCad has nice auto-numbering features for labels (and auto repeat for wire placement and more…)

If you select a pad, you can edit it’s properties, and then select any existing net name from the list. I changed pad 3 to pad 1, and as you can see (I did it twice) this also shows the ratsnest line, so you can draw a track afterwards.

It works, but it is a bit tedious. Making connections in the schematic first, and then pushing the netlist to the PCB editor is easier & quicker.

In addition,

when you are editing the properties of a net or a pad, you can type in any name in the Filter, and then click on to add a named net.

Another trick you can use is to first copy some random track over some unrelated pads (copy always ignores DRC) and then change the net properties and enter the new name. You then get an option to change the net of all connected copper to that new net name.

KiCad also has a: PCB Editor / Tools / Update Schematic from PCB, and with this you can also push changed net names back to the schematic.

This even creates local labels directly connected to pins:

image

But the same principles still apply, you have to create some kind of netlist for KiCad to be able to keep the nets apart. Without the netlist, the PCB editor is clueless about any sort of connections.

Hello, thank you for help, this solved my issue.

Have a nice day!

Thanks everyone for the swift answers. I was able to get around this with the interactive router settings. PCB is already being manufactured.

I know this wasn’t the best approach, however it was the fastest one to get the board working ASAP.

The next project will hopefully be done in the correct way :smiley:

2 Likes

I hope for you your PCB works.

It is easy to override the interactive router so (With both Highlight Collisions and Allow DRC violations

image

But how do you keep track of clearances in that case?
The simplest to do this would probably be to first draw some connections, and then assign a net name to either a track segment or a pad. This gives the new net name to all connected copper.

In addition:

I guess that a function to temporarily overrule the Interactive router settings may be a nice reverse-engineering function. Something like: you let it be in the shove mode, but when holding [Ctrl] you switch to the Allow DRC Collision mode so you can create new connections between different nets.

[Ctrl] seems a logical choice. When tracks already have DRC collisions and you attempt to move them, then [Ctrl] can be used to force a new position that still has a DRC collision: