How to add footprint of six pin male SIL connectors + newbie kicad setup problems

I have the schematic. So if I change the schematic, I hope the rest of the layout file (routing, components etc) will not change? Pls. confirm before I proceed. As for the layer to be deleted, I am sending the screenshot.

Regards,
Arvind Gupta

Update: It seems to be a ground connection/ ground plane. (in white box)

Arvind Gupta

Press b to refill zones (or run drc)

Also normally if you change the schematic nothing will be deleted (that you did not delete in the schematic itself of course.)

Just find your connector in the schematic. Press e and set the footprint field to the newly created footprint.

The footprint browser looks like this. The libs are on the left and the footprints in the selected lib are in the middle. On the right you see a preview of the selected footprint.
(Just remember that you need to add your footprint to a library that is under your controll. For example a library in the project directory. This library needs to be added with the library wizard found in the footprint editor -> preferences -> library wizard.)

Than export the netlist and import it in pcb new and it should be done. (If the pin pitch of the new connector is similar to the old connector you might not even need to change anything in the pcb.)

1 Like

I was trying to edit the scematic. Deleted the old connector component and was trying to add a new component as you mentioned. Again ran into problem. I am not able to browse to the component library in the schematic. I am getting a (most probably) a predefined library. Pls. tell me how to browse the component library in the schematic.

You do not need to delete the connector symbol (assuming you have the same number of pins in the new connector.)
Just edit the footprint field as i showed above. No need to get your libs setup.

But if for some reason you really need a new symbol (or just want to learn how to do this sort of thing.) Here a short how to (with a bit of trouble shooting mixed in)
It seems your project has no libraries added. It could be that you don’t have them installed or whoever setup the project deleted the libs.

First check if the project has libs added. go under eeschema->preferences->component libraries
You should see a lot of libs in the upper box (The one i circled red)
If this is empty then we have your problem.

Now lets find the libs.
Look under c:/programms/kicad/share/library (or similar i’m not a windows user so i can’t test it here) if the .lib files are in there. (you can look in the main menu of kicad under preferences->configure path to get an idea where this stuff is located.)

If the libraries are on disk then go into eeschema->preferences->component library and use the add button (in the red area of my screenshot) to add the installed libs. (the add button opens a file browser. simply navigate to the correct directory and select everything in there.)

If this directory is empty then reinstall kicad and make sure you install the libs. (In the installer there is a tickbox for installing libraries.)

Or download the library from github


(maybe select tag 4.0.6 in the branch dialog to be sure that your library setup is compatible with the stable release.)
You don’t need to install these libs in the default directory. You can even install them in your user folder. But then you need to add the directory to the searchpath of kicad. (The green part of the dialog screenshot.)

2 Likes

OK. I added the libraries into the schematic of the design. Next I replaced the old 7X2 connector by a 1X6 pin connector and saved the design (screenshot below). How do I update the layout file now (it still has the old connector). Do you suppose I have to manually update the layout?

First you must annotate the schematic. (Give each component a unique reference designator)
In your case i would do this by hand and give the connector the same reference as the old connector had. (This makes importing the changes to pcb_new easier.)
Tools->annotate schematic

Make sure your connector has the correct footprint assigned. (Either start cvpcb to see if all symbols are connected with a footprint, look at each symbol separatly or wait for the error output of the netlis import.)

In a normal workflow you would also run the electrical rules check at this point. (This might give you a lot of errors. It is up to you if you trust the schematic as is or if you want to clean it up.)
Tools->electrical rules checker

After you are happy with the schematic export the netlist
Tools->Generate netlist file

Switch to pcb_new
Import the netlist
Tools->netlist
A few notes for this dialog.
If the new and old connector have the same reference designator, setting the exchange footprints setting to change should do the trick. (The new connector should be placed at the same position as the old connector and the old connector is deleted.)
Be careful with the delete extra footprints setting. This might delete footprint that you don’t want deleted. (Example: mounting holes that are not connected to a symbol, a logo, …)
If the exchange footprints flag does not delete the old connector you can delete it by hand. (Might be the safest option.)

A good beginners tutorial that explains all this in great detail is the getting to blincky video series by @ChrisGammell (Might be of interest for you as an alternative source of information. A video can go into a lot more detail than a bit of text plus a screenshot. I think video 6 has the information i described in this post.)

2 Likes

I changed the reference of the new connector to that of old one (P1) I tried to do ERC. But there was no response in the window (ie. when I clicked on Run, there was no change/ messages in the window). Then I generated the netlist and opened pcbnew. Next I imported the netlist using the settings as per your diagram. It showed a lot of errors like “Error: No footprint defined for component ‘C2’.”. And yes, the old connecor footprint is still there in the layout. What should I do next?

Report***

Info: Reading netlist file “D:\jtag_programmer\Xilinx_parallel_cable\Xilinx_parallel_cable.net”.

Info: Using references to match components and footprints.

Error: No footprint defined for component ‘C2’.

Error: No footprint defined for component ‘P1’.

Error: No footprint defined for component ‘U1’.

Error: No footprint defined for component ‘U2’.

Error: No footprint defined for component ‘D1’.

Error: No footprint defined for component ‘D2’.

Error: No footprint defined for component ‘R3’.

Error: No footprint defined for component ‘R4’.

Error: No footprint defined for component ‘R5’.

Error: No footprint defined for component ‘R6’.

Error: No footprint defined for component ‘R2’.

Error: No footprint defined for component ‘R1’.

Error: No footprint defined for component ‘C1’.

Error: No footprint defined for component ‘C5’.

Error: No footprint defined for component ‘C3’.

Error: No footprint defined for component ‘C4’.

Error: No footprint defined for component ‘R11’.

Error: No footprint defined for component ‘R10’.

Error: No footprint defined for component ‘R14’.

Error: No footprint defined for component ‘R12’.

Error: No footprint defined for component ‘R13’.

Error: No footprint defined for component ‘P2’.

Error: No footprint defined for component ‘R7’.

Error: No footprint defined for component ‘R9’.

Error: No footprint defined for component ‘R8’.

Info: Checking netlist component footprint “C1:/4D68A5C4:”.

Changing component “C1:/4D68A5C4” pin “1” net name from “N-000030” to “Net-(C1-Pad1)”.

Info: Checking netlist component footprint “C2:/4D68A5CC:”.

Changing component “C2:/4D68A5CC” pin “1” net name from “N-000008” to “Net-(C2-Pad1)”.

Info: Checking netlist component footprint “C3:/4D68A5CE:”.

Changing component “C3:/4D68A5CE” pin “1” net name from “N-000021” to “Net-(C3-Pad1)”.

Info: Checking netlist component footprint “C4:/4D68A5D0:”.

Changing component “C4:/4D68A5D0” pin “1” net name from “N-000009” to “Net-(C4-Pad1)”.

Info: Checking netlist component footprint “C5:/4D68BC9A:”.

Changing component “C5:/4D68BC9A” pin “1” net name from “N-000006” to “Net-(C5-Pad1)”.

Info: Checking netlist component footprint “D1:/4D68A462:”.

Changing component “D1:/4D68A462” pin “2” net name from “N-000006” to “Net-(C5-Pad1)”.

Info: Checking netlist component footprint “D2:/4D68A472:”.

Changing component “D2:/4D68A472” pin “1” net name from “N-000006” to “Net-(C5-Pad1)”.

Changing component “D2:/4D68A472” pin “2” net name from “N-000005” to “Net-(D2-Pad2)”.

Info: Checking netlist component footprint “P1:/5937F377:”.

Changing component “P1:/4D68A2E5” value from “CONN_7X2” to “CONN_01X06”.

Info: Changing component path “P1:/4D68A2E5” to “/5937F377”.

Changing component “P1:/5937F377” pin “1” net name from “GND” to “VCC”.

Changing component “P1:/5937F377” pin “2” net name from “VCC” to “GND”.

Changing component “P1:/5937F377” pin “3” net name from “GND” to “/TCK”.

Changing component “P1:/5937F377” pin “4” net name from “/TMS” to “/TDO”.

Changing component “P1:/5937F377” pin “5” net name from “GND” to “/TDI”.

Changing component “P1:/5937F377” pin “6” net name from “/TCK” to “/TMS”.

Clearing component “P1:/5937F377” pin “7” net name.

Clearing component “P1:/5937F377” pin “8” net name.

Clearing component “P1:/5937F377” pin “9” net name.

Clearing component “P1:/5937F377” pin “10” net name.

Clearing component “P1:/5937F377” pin “11” net name.

Clearing component “P1:/5937F377” pin “13” net name.

Info: Checking netlist component footprint “P2:/4D68BA7D:”.

Info: Checking netlist component footprint “R1:/4D68A507:”.

Changing component “R1:/4D68A507” pin “1” net name from “N-000022” to “Net-(R1-Pad1)”.

Info: Checking netlist component footprint “R2:/4D68A506:”.

Changing component “R2:/4D68A506” pin “1” net name from “N-000022” to “Net-(R1-Pad1)”.

Info: Checking netlist component footprint “R3:/4D68A4DB:”.

Changing component “R3:/4D68A4DB” pin “1” net name from “N-000030” to “Net-(C1-Pad1)”.

Info: Checking netlist component footprint “R4:/4D68A4F2:”.

Changing component “R4:/4D68A4F2” pin “1” net name from “N-000008” to “Net-(C2-Pad1)”.

Info: Checking netlist component footprint “R5:/4D68A4F3:”.

Changing component “R5:/4D68A4F3” pin “1” net name from “N-000021” to “Net-(C3-Pad1)”.

Info: Checking netlist component footprint “R6:/4D68A4F4:”.

Changing component “R6:/4D68A4F4” pin “1” net name from “N-000009” to “Net-(C4-Pad1)”.

Info: Checking netlist component footprint “R7:/4D68BBF4:”.

Changing component “R7:/4D68BBF4” pin “1” net name from “N-000006” to “Net-(C5-Pad1)”.

Changing component “R7:/4D68BBF4” pin “2” net name from “N-000021” to “Net-(C3-Pad1)”.

Info: Checking netlist component footprint “R8:/4D68BC8D:”.

Changing component “R8:/4D68BC8D” pin “1” net name from “N-000006” to “Net-(C5-Pad1)”.

Info: Checking netlist component footprint “R9:/4D68BC51:”.

Changing component “R9:/4D68BC51” pin “2” net name from “N-000005” to “Net-(D2-Pad2)”.

Info: Checking netlist component footprint “R10:/4D68A7A7:”.

Changing component “R10:/4D68A7A7” pin “2” net name from “N-000011” to “Net-(R10-Pad2)”.

Info: Checking netlist component footprint “R11:/4D68A789:”.

Changing component “R11:/4D68A789” pin “2” net name from “N-000015” to “Net-(R11-Pad2)”.

Info: Checking netlist component footprint “R12:/4D68A7C8:”.

Changing component “R12:/4D68A7C8” pin “2” net name from “N-000012” to “Net-(R12-Pad2)”.

Info: Checking netlist component footprint “R13:/4D68A7D1:”.

Changing component “R13:/4D68A7D1” pin “2” net name from “N-000013” to “Net-(R13-Pad2)”.

Info: Checking netlist component footprint “R14:/4D68A7B2:”.

Changing component “R14:/4D68A7B2” pin “2” net name from “N-000014” to “Net-(R14-Pad2)”.

Info: Checking netlist component footprint “U1:/4D68A1A5:”.

Changing component “U1:/4D68A1A5” pin “1” net name from “N-000015” to “Net-(R11-Pad2)”.

Changing component “U1:/4D68A1A5” pin “2” net name from “N-000012” to “Net-(R12-Pad2)”.

Changing component “U1:/4D68A1A5” pin “3” net name from “N-000008” to “Net-(C2-Pad1)”.

Changing component “U1:/4D68A1A5” pin “4” net name from “N-000013” to “Net-(R13-Pad2)”.

Changing component “U1:/4D68A1A5” pin “6” net name from “N-000021” to “Net-(C3-Pad1)”.

Changing component “U1:/4D68A1A5” pin “8” net name from “N-000009” to “Net-(C4-Pad1)”.

Changing component “U1:/4D68A1A5” pin “9” net name from “N-000014” to “Net-(R14-Pad2)”.

Changing component “U1:/4D68A1A5” pin “10” net name from “N-000015” to “Net-(R11-Pad2)”.

Changing component “U1:/4D68A1A5” pin “11” net name from “N-000030” to “Net-(C1-Pad1)”.

Changing component “U1:/4D68A1A5” pin “12” net name from “N-000011” to “Net-(R10-Pad2)”.

Changing component “U1:/4D68A1A5” pin “13” net name from “N-000015” to “Net-(R11-Pad2)”.

Info: Checking netlist component footprint “U2:/4D68A261:”.

Changing component “U2:/4D68A261” pin “3” net name from “” to “Net-(U2-Pad3)”.

Changing component “U2:/4D68A261” pin “6” net name from “” to “Net-(U2-Pad6)”.

Changing component “U2:/4D68A261” pin “8” net name from “N-000022” to “Net-(R1-Pad1)”.

Changing component “U2:/4D68A261” pin “9” net name from “N-000021” to “Net-(C3-Pad1)”.

Changing component “U2:/4D68A261” pin “11” net name from “” to “Net-(U2-Pad11)”.


Did you really have the finalized files from which the original pcb was created?
It seems like none of your symbols have a footprint connected.

Can you look into CvPcb if all symbols have a footprint?
In my nightly build version it is under Tools->assign component footprints but it might be called differently in your version.
(Make a screenshot.)

It appears that the project he is modifying is this one : http://startingelectronics.org/projects/xilinx-parallel-programmer
Given the date, I expect it was done with the “old” KiCad, so the project will need porting. The way I fix the footprints is to export footprints from PCB, then import the association file into eeschema. Then go into cvpcb, and spend a few cycles fixing up the footprint references.

2 Likes

Yes… it seems that there are no footprints for the schematic components. Is there a way to update the footprints?

Yes, thats correct. My old programming cable is dead. I dont want to spend a ton buying a new one.

As @bobc said you can import the component list from pcb_new into the schematic.

First export the component list from pcb_new->File->Export->component (.cmb) file
and import it in eeschema->Edit->Import footprint selection. (or use the rightmost button in the top toolbar.)

I have never done this so i don’t really know what to expect.
(You might get into trouble because the footprints in the current lib might have very different names.)

Option two is to fill out cvpcb manually. (Some manual work might be needed anyway.)

Well … I did as per the first option (there were chances of getting some footprints updated and that’s what happened). But the tool is unable to find foot prints for 14 pin DIP ICs and pf range capacitors. I was manually able to add the exact footprints of the connectors with the pitch :slight_smile: . Pls. tell me in which library I will be able to find the footprints of both the components and steps for adding footprint of one of the components.
Thanks.

Capacitors should be in Capacitors_SMD (if you use surface mount devices) or Capacitors_THT (for through hole capacitors. The Capacitors_ThroughHole lib is the old library. you might want to add the new library to your lib table. See description below.)

The DIP package will be found in Housings_DIP. You might need to look into the datasheet of your ICs to find out which of the 4 or so DIP_14 housings you need. (Main difference: the width of the housing => pin spacing in this direction.)

You could use CvPcb to set the footprints. Simply set the filter to Filter by library and pin number.
Select the library where your footprint is located (example housings_dip) in the left part of the dialog.
Select the component you want to connect to this footprint. (example U1)
In the right panel you should see a few (dip_14) footprints. Double-click on the one that fits your part.
Repeat for all symbols that do not yet have a footprint connected to them.

If you don’t have the housings_dip (or if you want to add the Capacitors_THT) library go to the footprint editor (or pcb_new) and open the footprint library wizard. (preferences->footprint library wizard)

In the dialog that opens select from github and deselect local copy. (or select local copy. This is your decision. If you want the footprint libs locally just read the tutorial by @bobc)
press next
select all (or only the lib you want to add. Your decision.)
press next until you can press finish
press finish

OK. I tried by first removing all associations of components to footprints (due to the problem mentioned below). I selected the caapcitor_THT library from the left, selected C1 in the central list. Then in the right side list, I got the names of few unrelated components (and not the entire list of components as when I had selected Housing_DIP in the left coulumn and then U1 in the central coloumn) – snapshot attached. What to do next?

Wrong filter settings. (You need the one i marked green plus the one i marked blue in my previous post.)

1 Like

OK thanks. I was able to associate footprint with each component and update the layout. But since footprints of all capacitors and both ICs were updated, it seems that I have to re route the layout from air wires. So I was thinking that since I only wanted to update the footprint of the 7X2 connector to 1X6 connector, can I not delete the old footprint in the layout, add the new footprint from the library and re-route the necessary signal wires?

Yes. That is what I would do when only a few footprints are involved, for exactly the reason you mentioned: to preserve as much of the work already completed as possible.

In PCBNew, use either the “E” shortcut key, or right-click, while hovering over a footprint. Depending on your version, you will select either “Edit Parameters” or the “Properties” menu. Click the “Change Footprint” button, and enter the new footprint’s name . (The format is {Registered Library Name} : {Footprint Name}. ) Click “Apply” and you should get a message saying “Change footprint . . . . . OK”.

The “new footprint name” might be identical to the “old” name! This is useful if you had to make some change to an existing footprint - say, change a hole size, for example. The footprint on your board will NOT get updated unless you bring the changed footprint onto your board using either the “Change Footprint” feature, or importing a netlist.

Also notice the choices in the “Options” section of the “Change Footprint” menu. They allow you to define the scope of the change process, from a single instance of one footprint, to all the footprints on the board.

After changing a footprint on a board you really should change the footprint name in the schematic, then generate a new netlist. At the very least, this keeps DRC happy.

Dale

2 Likes

I was able to place a footprint of 1X6 pin connector on the PCB. But when I was trying to extend the VCC wire to pin no. 2, I was unable to do so and got error in the box below. Since I have to change the pin connection ordering, I am re-routing the wires.