Enterprise class requirements for PCB tools that KiCAD lacks

I use kicad at work. We’re 6 people though, and I’m the only hardware designer. My boss has no clue either, but sometimes I feel like telling him he’s lucky not having to pay for those enterprise minded packages. One of the benefits of working in small companies is that you’re not forced upon a different package than you already know, besides when working on legacy design before my time there.

Of course this was only remotely related to the topic.

1 Like

Item (1) Presumably means an ODBC connector. In the open source world this would mean interfacing to Postgresql, Compiere ERP or one of its derivatives. In business SAP or similar heavyweights

Item (2) others above have explained that KiCad already meets
Item (3) IP-2581 is downloadable here http://webstds.ipc.org/2581/documents/IPC-2581witham1pub.pdf

There is some helpful explanation here https://www.ucamco.com/files/downloads/file/22/Kick_Starting_a_Revolution_IPC-2581_Meets_Gerber.pdf?1dfa3cdbaa8c6162009a05c458f5a3f4

You should look at Kicost, it is a pretty slick BOM tool for Kicad.

Also just FYI you can add as many part fields you want to your parts to create manufacturer part number fields etc. Here is a good link that shows how to do that.

Number 2 is the most serious and obvious and most…

I just cannot understand why this tool had no proper part concept.

No one ever looked at other tools before hacking away?

Also, libraries should stand by themselves and being tied into projects.

Schematic pages standaline entities, possible to copy paste between projects.

Proper ways to copy complete projects.

It just doesn’t cut it.

It doesn’t build a bullet proof atomic part.

Also you cannot use arbitrary symbols, but need to use units within same symbol/part.

You can’t copy paste between units even.

It’s just wrong.

No checks are done for over/under run pins.
Not a proven part comes out of the process beacuse the part concept is absent.

Professional people won’t take it as pointed out by OP.

It does - I have atomic parts that are defined via the symbol with:

  • a unique value so it can be found (for my library collection)
  • a link to a footprint (that can, but must not be modified later)
  • a link to a datasheet
  • a manufacturer part number
  • a manufacturer name

You could also go down @Andy_P 's path and instead of:

  • a manufacturer part number
  • a manufacturer name

You would just have an internal part number that links this part together with the value field via other 3rd party tools (I think some python scripts) to a list with manufacturer part numbers.

I really don’t see what your problem is, just set up symbols as parts and restrain yourself from clicking anything in cvpcb and it’s bulletproof.

Explain, as afaik the libs are stand alone. Each project creates a cache lib of the parts used in that project to make it transportable without the need to send the libs with it.
If anything changes KiCAD will ask you what version of symbols/parts you want (either cached ones or the ones from the local libs).

Just navigate to a projects folder… copy the .sch file from it to another one and voila, you got your standalone entities.

KiCAD main window… 5th button from the left (clamp with orange block depicted on it).
Zip up the whole project with all that’s needed to run it on another machine and save it where you want to?
OK, it’s missing the 3d files…

Explain please.

EEschema will be refurbished down the road… copy&paste between schematics/projects/etc should come with that. It’s been wanted for years, the developers know that…

2 Likes

Symbols loose from the part.

Top level 1: Part
Level 2, symbols and footprint.
Level 3; padstack, library of pad shapes (optional and not very useful)

Loose symbols / units:
Can be copied around with all normal mechanisms.

Not possible to edit once tied up to a part.
Beacuse that would break part integrity.
Can edit only cosmetics, not change pins, but can move around pins, change loose texts etc.

Do away with the rescue concept in eeschema.
It doesn’t work properly even.
Very often minor changes just jumps right in, unoticed by eeschema.

You should be able to update your parts in eeschema same way as you update footprints in pcbnew.
Only on your own initiative.
No confusing automatic rescue part thing.

I really don’t understand why it is so important to defend the anomalies of kicad instead of just quickly fixing them into a professional grade tool and get into the game with the big boys.

This way kicad will be stuck.
It’s quite an old tool by now and needs to move on.

OK, so you want to have symbols that represent a part, but that can be modified from one incarnation to another… even in the same schematic?
I can see that this would be useful for connectors sometimes, splitting up pins all over the place to not have wires need to go there - people just use labels - but besides that?
What is the use case for that?

If one doesn’t understand the purpose of something it’s pretty hard to convince them why they should do the leg work to get the feature in.
Imagine that most of the developers aren’t enterprise level layout-ers and do this in their freetime and mostly like to work on features THEY are interested in and need and not what an enterprise tool needs - you get the idea.

That’s why I wrote this in my first post in this very thread:

if you have a 2000 pin bga as mentioned before

you need 15-20 symbols

gnd symbol, you may have so many gnd that you will need 3.4 of those, 300 pin gnd maybe
power symbol
nc pin symbol

and all possible functional pin symbols

yes you want to avoid global pins buses etc

schema is a logical representation of the physical world

its whole purpose is to be logical and create abstraction and be easy to read understand and maintain.

its the absolute key to success in deign.

drawing a big qfp100, square and everything right up the middle in the schematics just as it look in reality is the oposite of making use of schematics as a logical tool
it all end up in what we say a “car schematic” if you remember those 1 page “schematics” that came with your old car or motorcycle.

a true ratsnest of wires impossible to trace and totally illogical.

texas instruments beagle-board schematic is an example of this, not partioned well at all, the sitara MPU just sits like a huge fat chunk.

if you have an lcd port on a chip or an Ethernet port on a chip, you make loose symbols for this things and put the Ethernet part in the Ethernet schematic,
the lcd symbol in the lcd schematic.
the jtag symbol in the jtach schematic page ans so on.

all symbols with visible arbitrary names (SYMBOL NAME attribute)
like:
Z80_DATA
Z80_ADDR
Z80_MISC

Z80 just an example :slight_smile:

refdes shall not change in schematic to U5A, U5B etc ut will just remain U5 for all U5 symbols.

you need the constraints editor

no way to do professional jobs without it.

proper diff-pair routing.

trace length matching by algoritms

with this comes the need for proper stack-up definition within the tool

material specification of prepreg, expoxy and copper.

need to speficy all dimensions for all classes of traces.
trace width
via to via
via to pad
trace to trace
trace to pad.
trace to via

need to be able to strip all unconnected via rings from inner layers.
need to be able to specify pads for via, not only outer layer pad diameter but also inner layer pad diameter.
(maybe you can)

2 Likes

That’s the only thing that’s not possible at the moment (as far as I know) from the whole feature set you describe above.

So to make you happy and get a foot into the enterprise door the developers would need to allow user definable IDs besides the standard multi-part labeling of {REF}x (x=A,B,C,D…).
Good chance they might be able to do that when they refurbish EEschema… just talk with them and convince them.
Link is above, chance is yours.

PS: I also use logically sorted symbols only… don’t had to deal with more than 64 pins yet, so multiparts are not my bread&butter (probably never will), but I know how they work and what I can use them for.
I’d suggest some discussion with @Andy_P and probably @devbisme as they seem to do things like that and have more knowledge of how the KiCAD developers think about this.

PPS: usually in open source stuff only get’s done by somebody if they need it or are convinced that they need it. Your task is to convince the people who do the work that they need it and or chipping in and helping them by getting involved (on a friendly basis).

1 Like

OK, that one is a class above what KiCAD currently delivers…
Pretty sure the developers would like stuff like this too, but the manpower needed to implement that will be twice as high as what’s currently there.

Again, if you’re an enterprise and need those features get involved with the developers and see where you can help and how to make this real.

1 Like

there is no check today that your pins match the footprint at all

it not atomic

because you can edit the symbol/footprint anytime, and symbols slips trough the rescue check
its not bullet proof because you can break it however you want.
you wont even ever get into a proven confirmed part state because the footprint is not tied together, its just a suggestion of a possible or multiple possible footprints., no one checks your “part” because there is no part.
So there is nothing to break.

humans make errors computers dont , we need to use them.
make a part, check the pins, enforce integrity.

you keep saying, kicad can do this.
yes it can make design its proven, but it could be more useful

imagine how many human errors kicad has “helped” to slip into production
imagine the frustration, time and cost for that.

I would even say its even more important that the tool enforce a check for people who are less used to EDA tools.

yes it is optional with constraints, that true.

but part concept is not optional

it would be a bliss for everyone, even those who cannot see it today will love it tomorrow-

Eh, you can link KiCAD to libs/repos that are read only… the whole github thing is organized that way.

KiCAD will allow you to change footprint links in cvpcb and doesn’t force you to do anything if you have these settings from the symbols, but then the compulsive problem sits in front of the computer.

As for DRC check of symbol pins vs footprint pins - pretty sure it’s doable by some python script and can’t be that hard. Get involved with the development of KiCAD and make it…

you cannot defend the way things are done in kicad just because thats the way they are done in kicad

you cannot love kicad some much that you kill it.

could we agree on one single easy to do feature ?

do not change anything keep symbol/units data-structures embedded with part data structure as it is today.

no change

add only a verify button that verifies your .symbols toward the list of footprints you have in the part.

its only a check-

will not alter any state no nothing, just inform you for example:

you have 2 pins A3 in unit(s)
unit A pin XYZ is not to be found in footprint X
pins a,b,c in footprint is not in any unit(s)

just an information nothing else.

i admit my errors earlier in the thread, to many to number just now.

Hey we two can agree on anything, no problem.
I’m just not a dev, not even on the dev list… I’m just a user with a little bit too much enthusiasm and time that helps out on the support forums to the best of his abilities.
:flushed: :heart_eyes:

I’m pretty sure I’d be able to do the feature somehow in phyton inside/outside of KiCAD, given enough time and motivation… problem is, I don’t have that time (besides stalking the forums) and I’m not in desperate need of those features, but they surely would be nice to have.
I got like 10-20 projects on my hands already, I won’t be adding one more that’s called ‘software development for KiCAD’, I’m sorry.
Maybe when I retire in 20-30 years…
:blush:

1 Like

I could write them in C++.

I know from experience that you always make errors in complex parts and the mentor tool helped me many many times.

No matter how careful you are with Excel sheets and marker pens and all possible tricks, small errors will enter, mostly in symbols, but sometimes even footprints.

As I am about to tape-out I am very motivated to make an automated checker using the netlist that scrutinize my relationship between symbols and footprints.

Beacuse history tells there are sure to be errors in there.

1 Like

I am “retired” in Thailand for time being.
That’s why I have time to make fun projects now.

But I only have about 5 of them cooking.

2 in design.
3 on wishlist, reading up on the topics in between.