Symbol Editor Multiple Units


#1

Is there a specific reason why the number of units per symbol is limited to 64?

For some reason all of our schematics at my company treat connector pins as individual units of 1 symbol. This could have just been someone’s preference and the EDA tool used at the time allowed for it. For example I know DxDesigner does this.

We have connectors with 300+ pins. Making a gigantic box with all the pins attached is cumbersome placing it in the schematic and you are essentially forced to use labels to connect everything. I could make it 3 units with 100 pins each or some similar breakdown but to me it’s much easier to just place 1 pin at a time wherever needed.

There are of course pros and cons of this approach, one being connector pins can be placed all over the schematic making locating them difficult. But a pro is if I am not using all X pins I don’t have to place them or use NC symbols.

If the limitation is 64 units per symbol no matter what that is fine I can work around but figured I would check anyways.


#2

Also I noticed when testing this out that if you use the max number of units allowed (64) the drop down menu only shows units A through AX which is 50 units. Is this a bug?


#3

I wonder if this is a limit in the software or just the editor. The editor would be a clumsy way to make this anyhow. I’m really poor at scripting but I think even I could pull this one off if I looked at the format. Make one part with three individual unit pins and look at the resulting file since it would be a human readable text file.


#4

Hmm, I can write Matlab scripts but never tried anything else, lol. I will take a look at one of the files and see if I can hack one together.


#5

Just to follow-up I went ahead and edited my library file to copy one of the connectors I already had, added the new pins and updated a few fields and then reloaded eeschema and it appears to have worked. The symbol editor even shows all 68 pins so must be some weird field in the symbol generation wizard prevent more unit than 64.

I don’t know exactly what all the fields correlate to (some are obvious) but luckily I didn’t need to decipher them all. Thanks for the suggestion!


#6

I understand why you want to just follow what others did before you. It is extremely hard to say to your colleges that what they did might not be the best option.
For small connectors (<20 or so pins) i could even see a benefit to doing it this way. (If i squint very hard.)

It might even make sense to do it for larger connectors in pure flat designs. But even here i would say that there is a limit how large a connector can be for this making any sense. A much better solution would be a project specific symbol that groups pins into logical units as needed.


In hierarchical design (which is what kicad excels at) i would say that it is a bad idea in general to have the connectors pins split over many subsheets. (Which is the only usecase i see for even wanting it as separate units in the first place.) My reasoning is that such a connector would create knowledge dependencies between otherwise independent systems (it is comparable to a global label in this regard.)

I also guess that very high pin count connectors can be abstracted as a much smaller number of buses. So i would probably make a subsheet directly under the system level abstraction and have a number of bus entry pins for this sheet connected to the connector pins as needed.
The buses are then connected to the other systems at this system level as needed. (Yes i am aware that buses are kind of restricted in kicad version 5. This will become much more powerful in version 6.)

For more details see: Hierarchical or flat schematic design, what is best for me? (How to deal with multi page schematics?)


#7

Have you thought about drawing custom connector symbols?

For example, your connector is likely to have 50 or so GND connections, and these can all be put together in one of the “units” of your connector.
Same with a bunch of dedicated pins for a databus or whatever.
If you then put your connector (with named pins!) in a library you can also use that library for “the other side” of the cable (which is probably another KiCad project). This makes your schematic partly self checking. (Manually checking 300+ pin connectors is no fun and error prone).

300 pin connectors are unlikely to be used in a single sheet design, and putting parts of the connector on separate sheets is very common.

I think this is skipped over a bit lightly.
It may well be that some very old obsolete PCB program had a very cumbersome symbol editor, or had some limitation which made it cumbersome, and it has just been copied blindly for years.

If everybody kept doing things the same way they have always been done, the inventor of the wheel had been shunned and we’d still be living in caves.

So is your company full of dinosaurs, or filled with agile people open to progress?