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

Hi,

I am new to KiCad and wanted to edit a existing layout. Instead of an old connector footprint used in the layout, I wanted to add the footprint of a six pin single inline connector (male) as here.

My queries are:

  1. Is there any footprint of the connector in Kicad. What is its name and how can I insert it in the layout. (pls. mention step by step process as I am new to Kicad.)

  2. Are there any general footprints of such connectors ie one terminal so that I can replicate it six times in the layout and get what I want (incase there is no footprint for 6 terminal SIL)

  3. How to export gerber file for the design.

Thanks,
Arvind Gupta.

There is a Connectors_JST lib. Sadly your specific connector has not yet been added to the library but i think one of the other connectors might be similar. (Reducing the work needed to get the footprint.)
Be carefull, JST gives the drill diameters in a non typical way. (They give the minimum diameter with a tolerance for how much it can be bigger. Your fab might want to get the diameter given such that they have a +/- tolerance.)
In this case i would choose 1.7mm and have a +/- 0.05mm tolerance.

Regarding gerbers: have a look at the plot dialog and report back with specific questions if you have any.

Thanks for your response. I ran into another problem. Need to get it solved first. I was trying to delete the previous connector. There was a layer underneath it (drawn sing back layer). I am unable to delete that layer. How should I go about deleting the layer pls. I tried by selecting the delete tool in the layers manager but that did not help.

Regards,
Arvind Gupta

I’m not sure what you mean here.
Could you post a screenshot that explains your problem?
(You as a new user should be able to drag and drop one picture per post. If you need more then make multiple answers. Or read some other posts to get promoted to basic user.)

Another question:
Do you have a schematic for the pcb you need to change or only a pcb_new file?
If you have the schematic, simply create your new connector footprint and change it in the schematic. export the netlist and reimport it into pcb new.
No need to delete anything.

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?