There seems to be an accelerating trend among board fabricators to “fix errors” by the board designer, without informing the designer. From scanning fabricators’ web pages I have identified two particular concerns:
Solder mask clearance is set to a uniform, fabricator-chosen, value across the whole board. If I specify a clearance value that is smaller than what the vendor routinely supplies, I want to know that so I can adjust parameters in KiCAD. If I specify a value larger than the fabricator’s default value, it is likely an engineered value (e.g., for RF characteristics, or related to safety requirements, or a place where I intend to apply adhesive or paint, etc) and I don’t want it changed!
Silkscreen - both text and graphics - is removed from areas where there is no soldermask. The intent is commendable: you DO NOT want silkscreen printed over places that will receive solder. Silkscreen is often the last item to receive attention in a board design. The KiCAD DRC has not checked for silkscreen violations (it’s coming in V6!) so it is easy to overlook, say, a component designator that overlaps an SMT pad. But chopping out bits and pieces of silkscreen that lop over into the silkscreen clearance leaves a ratty-looking board. It is ELECTRICALLY correct, but gives a bad impression to anybody who happens to view it. In the worst case, the chopped-up silkscreen is illegible, leading to assembly errors, troubleshooting difficulty, etc.
If a vendor is going to deviate in any way from the Gerber files I sent, i expect to at least get a notice to the effect, "We changed the following things, for the reasons shown . . . "
We often repeat this admonition on this Forum: The GERBER FILES are the final authority. The 3-D modeling is irrelevant. The KiCAD display on your computer screen doesn’t matter. There is no appeal if KiCAD, through some program error, creates a Gerber file different from what you intended. The board will be fabricated according to the Gerber files.
Fabricators have specs for minimum character size and minimum stroke width, though they are sometimes difficult to find. Many fabricators will attempt to print characters that violate these specs, even though the result may be illegible blobs of silkscreen ink.
So you think a BC560 is an acceptable substitute for a 2N3906? Check the pinouts! The TO-92 package may be the worst offender for lacking a universally recognized pin assignment, but the SOT-23 isn’t a shining example of standardization.
Ummmm . . . . . OK. This primarily affects troubleshooting techs, hence is more important for prototypes than production. Until recently, silkscreen on both sides was costly to both price and delivery schedule.
Just because your vendor doesn’t charge more for feature sizes down to, say, 6 mils (0.15mm), doesn’t mean it’s a good idea to do your whole board with 6 mil traces and 6 mil spacing. Don’t force him to work at the very edge of his process capability.
KiCAD includes footprints for the KiCAD logo, Lead-free logo, static-sensitive logo, RF emitter logo, hazardous voltage logo, and others. Look in the “Footprints” library under “Symbol.pretty”; and in the symbol library under “Graphic.lib”.
I wish KiCAD had an easy way to create tables of text information! I’d use 'em for “General Notes”, “Revision History”, “Alternative Part Values” (e.g., some versions get a 110V transformer and 2 amp fuse; others get a 220V transformer and 1 amp fuse), etc.
“Comments”, “Design Notes”, “Theory of Operation” are additional examples where text fields would be useful.
A year from now? Some of us need remedial training after a lunch break. Several incarnations ago I was doing software maintenance for some custom production test stands. On one occasion, my supervisor, a manufacturing engineer, some co-workers and I were studying a software module and wondering, “Why did some idiot code this module so elaborately? It only checks and displays a few straightforward parameters, that aren’t even used anywhere else in the test process.”. Eventually, we turned to the “Change Log” to see if it contained any clues (though Change Log entries were usually quite brief and cryptic - “What was changed”, not “Why was it changed.”). The last entry was something like “Major rewrite.”, and guess whose initials were attached to that entry? And I didn’t even remember working on that module!