Enterprise class requirements for PCB tools that KiCAD lacks

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.

Thanks for your comments.

  1. Everyone does this differently unfortunately, so even if we had such tools there would still be a large cost to switch (but if someoneā€™s just selecting a tool rather than switching it would be another story). If there are any detailed descriptions of particular workflows, that could help develop future work plans.

  2. At the moment the best hope I see for this is a 3rd party tool. Unfortunately no one has (yet) come up with the resources for such a task. I have had it on my list of things to do for over 2 years now but itā€™s at the bottom of a long list and itā€™s a fairly large project.

  3. IPC-2581 is on my list of things to do after IGES + STEP export. Unfortunately STEP export is perhaps a year away and IPC-2581 will take a while to implement and certify.

So there are various plans which may or may not be helpful in the future, but one thing is for sure: at the current pace of development itā€™s going to be a long wait before KiCad has all the bits you want right now. All devs are aiming to improve things and kicad is currently used by a variety of commercial outfits, but there is certainly much work still needed before we have what some would consider the most basic set of tools for their operations.

2 Likes

KiCAD has gotten leaps and bounds better in the past few years. Thatā€™s why I put in the effort to come make this post, in hopes that a few more of the (fairly low hanging fruit) barriers to Enterprise use could be removed.

Adding support for the first option should not be that big a deal. Itā€™s a configurable database mapping for your library browser, using symbols from your usual symbol library. I may investigate the source in between hardware projects (which are what I care about), and I would definitely be willing to help with testing and integration.

As for #2, KiCAD is in fact hopelessly broken there if you are designing serious hardware. The library keying on Value is the show-stopping decision that was made. Key on part number. I have and use 5 different 0.1uF capacitors, and I canā€™t do that in KiCAD and still be able to tie footprints to part numbers. A 1kV 0.1uF cap has a wildly different footprint than a 6.3V (1812 vs. 0201). You can hack it by adding other info to the Value attribute, but thatā€™s a no-fly for Enterprise. When you start saying things like ā€œwell, you store the value in the simple_value field we add to parts, and the Value field has the part numberā€ the QC guys ask what other tools are available. Similarly, adding python scripts for basic functionality gets it dropped from most folksā€™ lists in comparison to the competition.

The spec is, as I believe others have responded below, available for free. Yes, PCB suppliers take Gerbers, but Gerbers donā€™t contain the data necessary to get a functional standards-compliant USB device fabricated, for example; you need layer stackup, dielectric, copper weight, and dieelectric thickness info at a minimum. With Gerbers, this is typically communicated through an accompanying mechanical drawing, and a human reads the data from it and configures the machines. This is both error prone and time consuming (which means expensive). As a result, the tier 1 PCB fab houses all support one or more of the stackup info standards like IPC-2581, and even tier 2 houses are implementing IPC-2581.

2 Likes

@Drew_Van_Zandt
New Gerber-X2 or IPC-2581?
https://blog.live.altium.com/Blogs/pcb-production-file-format-wars


still a battle to fight :smiley:
kicad is in very good contact with Ucamco ā€¦ so probably the direction of developers would be GX2
http://bayareacircuits.com/the-gerber-format-an-interview-with-ucamco/

How well has the new Gerber X2 format been adopted by PCB design software vendors?
Karl Tavernier: Rather well. We have reviewed and accepted X2 output from KiCad, Pulsonix, Easy-PC, Diptrace (beta) and Altium.

Only a few months ago there was a question about IPC-2581 and many responded with ā€œno, thereā€™s nothing wrong with Gerberā€ and ā€œbut Mentor owns ODB+ā€. However one of the IPC2581 consortium members has been very encouraging and has stated that the consortium is keen to help us work through an implementation. We will no doubt have a mix of Gerber and IPC2581 for many years and my own opinion on the matter is (a) although Gerber has been updated it still shows its archaic roots and (b) thereā€™s a large push from various industry sectors to go for IPC2581 and since IPC is an actual standards institute you can guess who will ultimately win the specifications wars.

Yeah - donā€™t take ā€˜Valueā€™ too literally there - itā€™s a mistake.

The ā€˜Valueā€™ field in KiCADs case for better or worse starts off as the parts identifier in the library collection and needs to be unique in your local environment.
If you pull in several libraries and they contain parts which have matching entries in the ā€˜Valueā€™ field KiCAD will ALWAYS take the part from the library thatā€™s first in the pecking order.

Putting only 0.1uF in the value field of parts in libraries is a BAD practice for exactly that reason.

Once you selected a part and placed it into a schematic, the ā€˜Valueā€™ field can be reduced to the actual value (or what have you) only, as the other fields will take it from there and stay with the part (if you have defined them as outlined above).
You then can have several different parts in a schematic whoā€™s value field is not unique anymore.
The part is not identified by it any longer.
But until then, you have to keep it unique.

PS: yes, thatā€™s bad implemented and Iā€™m sure the developers are thinking hard about it. As I said, get in contact and find out how the world looks through their eyes - EEschema is next on their list to be worked on.

I name the complete part to manufacturers part number

each and every resistor value is a part on its own.
(value on its own ??)

i think a true value filed is missing
as tolerance and type and rating

sure you can make any fields up

but some mandatory fields for type = resistor would be value gets to ohm
rating gets to be W, tolerance

maybe there is, and i missed it

I donā€™t know how unique that one isā€¦ do manufacturers make sure theirs is unique?

Ehā€¦ when you can identify the part in question without doubt in your part selection (KiCAD = symbol libs) then you should get a manufacturer number for it and a link to the datasheet.
Donā€™t think itā€™s useful to put all that information you list into the libs.
Whatā€™s nextā€¦ the pspice model also in there?

KiCAD screws up the key to find parts in the symbol libs by using a wrongly conceived value field, which really should be called part_name or part_identification. For uniqueness this field should not be filled with the manufacturer ID as you canā€™t be sure that no two or more manufacturers donā€™t use the same ID for different parts.

never had a problem with lack of uniqeness

library name = manufacturer name

also you can postprocess against your favourite assembly house to firt their internal part-no

cuts down on time and errors

its very handy to be able to browse all parameters in a library browser,not only description.
And edit parameters at the same time should you wish to.

capacitor attributes, size, footprint, ESR and dielectric material, tolerance
good to see in a list.with columns in ne single view.
now you need to put all into description, and the somewhat mysterious keyword attribute that i dont know what it does yet

Definitely no. This is why we used to use NATO stock numbers in military equipment and the CVXXXX numbers for the British Post Office.
Later at Racal, we used house numbers directly into Visula.
The main advantage was that manufacturers are frequently changing part numbers, thanks to constant take overs. House numbers decouple your schematics and BOM from this churn, saving a lot of change requests

1 Like

There was a time when this was handled by the Components Standards Engineer.
The job was to manage approving vendors for each house part and the mapping of suppliers part numbers to it. It also had the benefit of keeping most engineers at a distance from the purchasing function, always a corruption hazard

1 Like

Yeah, that guy always has/had a stack of samples of all sorts of things and when you needed something it was possible to obtain as samples most of the times.
Most loved person in that dept when you needed ā€˜stuffā€™ :wink:

Yes.

But a real part no can be the starting point / index into further databases as well as a made up number.

You can start with whatever name you want but a real part-no is likely to give a clue even as time goes by.

Also your schematics can be understood outside your own organization.

I know thus from Ericsson who also have RYTxxx

Takes a lot of time to learn to dechiper the part names alone.

Time not well spent for any designer.

The real part number might not be a key to the database. For example you might have 10k 0603 1% and 2%. The 1% real part could be used for both house parts.

Obscure house part numbers have long been used to make schematics hard to use by third party service and repair as a vendor lock in. Very useful when a contract demanded manuals, but you didnā€™t want to lose control of very profitable maintenance

have a look at here :smiley:


http://mikecrash.com/index.php?name=Content&pa=showpage&pid=10

1 Like