-
Notifications
You must be signed in to change notification settings - Fork 712
Use unique and IPC package sizes for R, L, and C, Fuse, LED, Inductor #2280
Conversation
A bit late to the party but have been dealing with a very similar thing at work recently. I don't have access to the IPC standards but if I understand correctly, the latest relevant standard for this is IPC-7351B (which replaced IPC-7351A, IPC-7351 and IPC-SM-782 in that order). Has anyone access to the IPC standards? Was there any change between IPC-SM-782 and IPC-7351B which affects this PR (and the related ones like pointhi/kicad-footprint-generator#420)? Thanks! |
Yes, B is the latest release. We have switched to rounded rectangle pads in all generators as that is shown as the best pad shape for all circumstances in the draft C releases, but otherwise all generators adhere to B. Rene and I have the standards. 782 had body sizes for chip parts. 7351 started an algorithmic way of determining footprints. So we use the body sizes from 782 as they're still valid and match real parts in the market, but derive pad sizes from 7351B. Originally, the resistor body sizes from 782 were errantly being used for capacitor and inductors, and this PR fixes that. Does that make sense? |
Thanks for your reply. Sorry if I make a few more questions on this, but not having access to the standards (or not to the latest versions, at least) makes this a bit more complicated.
I have seen in IPC-7351 Feb. 2005: "The land form may be rectangular with straight or rounded corners. In the latter case the area of the smallest circumscribed rectangle shall be equal to that of one with straight corners." If I understand that correctly, that makes the pads with rounded corners bigger than the ones with straight corners. Is that still the case in IPC-7351B and IPC-7351C (draft)? Is that what we're doing in KiCad?
And no version of IPC-7351 includes body sizes and that is why we refer to IPC-SM-782A, right?
Yes, that makes it more clear. I think I'm starting to understand the puzzle. Somehow related to this, I'm a bit confused with some of the rounding terminology used on IPC-7351 Feb. 2005 On Page 23: Round off to the nearest two place even decimal, i.e., 1.00, 1.20, 1.40 Round off to the nearest two place decimal, i.e., 1.00, 1.05, 1.10, 1.15 That made me wonder whether the rounding on ipc_smd_two_terminal_chip.yaml is correct, although I guess we don't use that file anymore but only ipc7351B_smd_two_terminal_chip.yaml? Many thanks! |
I'm not the authority on IPC 7351, but I'll share my understanding... Rev B was released in 2010, after the doc you mention, and things have changed. It switched to oblong/oval pads. Draft rev C info from Tom Hausherr was online in a presentation titled "what is new in ipc-7351c", but the link we had is broken so here's a screenshot: It's correct that 782 gave body sizes and 7351 gives an algorithm to determine pad sizes. We put them together to end up with the KiCad library's footprints. You can see at https://github.com/pointhi/kicad-footprint-generator/blob/master/scripts/SMD_chip_package_rlc-etc/size_definitions/size_default_chip_devices_smaller_0402.yaml that 0201 and 01005 body sizes were taken from a Vishay resistor datasheet. Regarding rounding, I checked the 7351B YAML file against the doc for >=0603 and <0603 chip parts and it's correct. The IPC doc has changed since 7351 (no suffix) that you linked and I think our YAML file is good. The other YAML file is available to use, but since rev B is using later and more updated info we aren't using it in the current library footprints. I hope that answers everything as best as I can. |
This remove ALL footprints which are not script generated. Some of there was created during updated on the script and should not have been included in the last commit, though.
Footprints updated. There were a number of non-scripted capacitor footprints which I removed since I didn't find that body size available at DigiKey. Also, handsolder footprints adjust the footprint name based on the pad size. That seems rather unhelpful. What if the pad size in the footprint name was discarded and just keep the |
@cpresser |
Sorry for the delay, I was building our hacker-space yesterday. I will look at the tantalum caps now.
Did you make a list that I can verify? Or should I just look at the git log?
TBH, I don't like it.
|
I'd rather pick up the discussion about including MMC and LMC footprints alongside default level B ones again for v6 (leaving it to the forum regulars to tell people to use the MMC ones if they don't have a steady hand ;) .) I'm not very fond of the arbitrary |
I'm not fond of the |
I vote for just having |
Parts I can also not find
Parts that are removed, but I could find them
Parts that are still included, but I could not find:
|
The tantalum caps are unchanged but the timestamp. That means they are good enough for now. I would keep them like this and revisit them in a dedicated PR. |
@evanshultz @cpresser |
No, I don't assume so. Here is a list of all footprints touched by this PR. All of them are covered by
Off-Topic: I got one more low hanging fruit (not yet tagged with 5.1.7) |
@evanshultz Can you please re-add those parts?
I how about removing the tiny fuse and LEDs? I could not verify their existence.
|
C_0504 (and smaller) was there, but not the handsolder version. Same with small resistors. And all small castellated footprints. The reverse LED was an accidental delete when I was cleaning out old footprints. (I assumed anything with an old file date should be removed since there were lots of handsolder footprints with now-bogus pad sizes, but I missed that one.) The resistor was a mistake in the generator that is fixed. I removed the tiny fuses and LED footprints. All of the above should be corrected. Let me know if I missed anything that I didn't catch. |
I merged this, and opened a PR to fix that inductor here: #2487 edit: Reasoning is that the release is overdue - and I have to go to bed now. The fix-pr is rather simple, but I don't like merging my own stuff without a review. So I hope that we can get RLC stuff for the release with that approach now. |
* Use unique and IPC package sizes for R, L, and C (cherry picked from commit 0008170)
Chip capacitors were using resistor package information when IPC-SM-782 shows distinct resistor and capacitor packages; to fix this some chip package info was modified based on datasheet anlysis was tweaking. Also, the same IPC doc includes unique chip inductor package sizes and they were again using resistor package information. See pointhi/kicad-footprint-generator#420.
The script update is at pointhi/kicad-footprint-generator#438 and you should find the most useful information there and the file diff to assess this.
Related:
#3
#469
#711
#712
pointhi/kicad-footprint-generator#420
The only significant changes are on some R, L, and C footprints, but most of the changes are quite close to the existing footprints which had made-up info to suit packages found in datasheets (especially see the 0805 capacitor footprint); this validates that the IPC-SM-782 doc is reasonable and that chip component manufacturers were roughly adhering to it all along. All chip footprints are re-generated here since there are a handful of typos.
Marking as a bug since the library claimed to be IPC-compliant and called out IPC-SM-782 but the footprints didn't actually adhere to those documents.
All contributions to the kicad library must follow the KiCad library convention
Thanks for creating a pull request to contribute to the KiCad libraries! To speed up integration of your PR, please check the following items:
Be patient, we maintainers are volunteers with limited time and need to check your contribution against the datasheet. You can speed up the process by providing all the necessary information (see above). And you can speed up the process even more by providing a dimensioned drawing of your contribution. A tutorial on how to do that is found here: https://forum.kicad.info/t/how-to-check-footprint-correctness/9279 (This is optional!)