kicad-footprints
kicad-footprints copied to clipboard
Add NEG-12 package
Add NEG-12 package
https://www.idt.com/package/neg12
Footprint comes from https://gitlab.com/librespacefoundation/lsf-kicad-lib
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:
- [x] Provide a URL to a datasheet for the footprint(s) you are contributing
- [x] An example screenshot image is very helpful
- [x] If there are matching symbol or 3D model pull requests, provide link(s) as appropriate
- [x] Check the output of the Travis automated check scripts - fix any errors as required
- [x] Give a reason behind any intentional library convention rule violation.
I did not do a full review, so just a few points that popped up while looking at the symbol:
- [x] The datasheet suggests to put vias into the exposed-pad
- [x] The Name of the footprint is not according to KLC. Please take a look at KLC 2.x. Something like "IDT_NEG12_1EP_2x2mm_P0.5mm_EP1.1x1.1mm_ThermalVias"
- [x] Please use this as datasheet link https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn
- [ ] Courtyard distance is 0.5mm. It should be 0.25mm
- [ ] The Pad-Size seems to be good (0.25*0.475), but none of the positions I checked are okay.
- [x] The Exposed-Pad should have a 0.2mm chamfer
- [ ] The vias should not have a solder-paste margin set
- [ ] B.Mask is not to be enabled on the B.Cu pad so mask is present
- [x] 3D-Model Filename is not consistent
And one question: I can't seem to find the information on how to chamfer the pads. Where did you get them from?
Where did you measure 0.5 courtyard? It was 0.25 and adjusted when i moved the pads.
Pad chamfer was estimated from package chamfer and adapted to pad size (45 deg angle)
Regarding the courtyard - my bad, I measured from the body outline. Which is wrong.
The name originally suggested by me is not good either. Sorry about that. Similar footprints do have the pin-count in separated by dashes.
For example MLF-8-1EP_3x3mm_P0.65mm_EP1.55x2.3mm_ThermalVias
.
Following that scheme, this FP should be named IDT_NEG-12-1EP_2x2mm_P0.5mm_EP1.1x1.1mm_ThermalVias
Estimating values is not good. Did you try to import the .pdf into a CAD Software? One option is to use evince (print to svg) and inkscape to get a vector representation of the datasheet. That allows you to extract the missing dimensions (chamfer angle & distance of pads, corner-radius of exposed-pads).
I found more issues with the pads:
- [ ] Pad-Dimension is 0.47mm, should be 0.475mm (this will influence the courtyard position as well)
- [ ] The chamfer is not 45° (45° line on Silk as reference)
- [ ] The exposed-pad not only has a chamfer, but also round corners on the other 3 edges.
Please take a look at other FP with thermal vias. One example is "QFN-12-1EP_3x3mm_P0.5mm_EP1.65x1.65mm_ThermalVias". It has SolderMask on the bottom copper. You can check that with the 3D-Viewer.
Again, sorry about the slow pace and mistakes. I am pretty new as a reviewer.
I would suggest this to be scripted with https://github.com/pointhi/kicad-footprint-generator/tree/master/scripts/Packages/Package_NoLead__DFN_QFN_LGA_SON (Uses IPC standard to generate a footprint from the package dimensions https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn)
It can chamfer your pads. I am however not yet certain that it is really a requirement for this part.
Edit: There are many issues with this footpirnt. First we do not know how the original author came to the pad layout. (The manufacturer does not give a suggestion here->which rules where used?) And there is the topic of licensing. The source repo is under a license that does not allow commercial use. And it does not allow relicensing (not even a symbol exception) This would be violated by the license of the kicad library.
I found more issues with the pads:
Can you please check the pad properties, pads are 0.475 (2 * 0.2375)
And there is the topic of licensing. The source repo is under a license that does not allow commercial use. And it does not allow relicensing (not even a symbol exception) This would be violated by the license of the kicad library.
We have changed the license to CC BY-SA 4.0
I can measure the pads in kicad. This is not the question. How did you get from package dimension to pad size? This is why we typically use the IPC generator scripts as that script uses industry standard rules to determine that. And it also makes future maintainance easier to have stuff scripted. (A change to the standard is easily implemented by just changing a central script parameter, regenerating all footprints and updating them here. The same for changes to the library convention.)
I used the recommended land pattern from page 2 of datasheet. I've also extracted missing dimensions from PDF using inkscape as suggested. I've also tried the generator script, it does create the pad chamfers but pad size will differ from datasheet.
If this is considered a qfn than it must use the generator. If not then it must be placed in a more specialized library. (And i am not yet certain that you will get me to agree that this is indeed such a specialized package as to not be best served with the IPC compliant version of the footprint. Only option would be that this is a very high frequency device or a MEMS that really need exact compliance with manufacturer footprints as otherwise mechanical or HF behavior differ from their assumptions. The former would then go into one of the RF_xxx libraries and the later into one of the Sensor libraries.)
Edit: ok i am now convinced that the generator is the way to go. See note 5 of the suggested footprint. (The name might still be best quite specific as this part has chamfered corner pads)
Edit2: yes pad sizes might differ as the manufacturer might have used different settings for the pcb manufacturing tolerance parameters. (These are ideally set by the user. We use the quite conservative settings suggested as the default by IPC as we can not really know the users ideal settings -> Another benefit to the generator. Users can easily generate the footprints with their settings by setting these parameters.)
Ok, so generated footprint looks like this
Should I force square pads?
Is there a way to achieve R 0.102 and chamfer for EP or leave it as it is?
Should I commit the non thermalVia version too?
Right now there is no support for chamfering the center pad. I do not believe this to be necessary. (Nearly all qfn packages have a chamfered lead to indicate pin 1, but a vast majority of datasheets suggest a non chamfered pad. This could of course be because of a lack of software support but if there would be a major benefit then they would still suggest it.)
There might however still be something not ideal with exposed pad creation right now. The more i think about it the less rounded corners for it make sense. So i kind of decided to roll this back https://github.com/KiCad/kicad-footprints/issues/1798 (benefit of the script. I just need to change the parameters and regenerate and even such a major decision is easily implemented.)
Script https://github.com/pointhi/kicad-footprint-generator/pull/418
I checked at the script and the generated FP.
- The Pads are 0.2mm wide. I would expect 0.2 + 0.05 (tolerance) - which is the same as the value recommended by the datasheet.
- The leads extend slightly longer than 2.4mm (2.7mm).
- The radius of the exposed-pad seems way bigger than the EP of the part. That might be an issue. But I cant see the radius defined in the datasheet. It it already mentioned as a possible issue above (https://github.com/KiCad/kicad-footprints/issues/1798)
That's most likely intended by the IPC generator.
Unsure how to handle this. Perhaps @poeschlr has some time to look at this.
Fixed pad width, can't find a way to control how much a pad will extend past the body size, any clue?
All fillet goals are controlled by the IPC document which governs the generator. IPC 7351B is not freely available but you can search for it online and reading the script contains the math part of it. You don't adjust anything, like the pad size above, manually (OK, maybe in rare cases) because the footprint is generated the way it's supposed to be according to IPC. The footprint in the datasheet is discarded in favor of the scripted one.
The inputs to the script are the package drawing, not the footprint drawing. So use page 1 of https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn, not page 2 as shown in the screenshot above.
@evanshultz The change of the lead-witdh to 0.25mm ist most likely a reaction to my previous post. I am still unsure why a lead-with of 0.20mm and tolerance of 0.05mm just gives a pad of 0.2mm. Is that the correct behavior of the IPC generator? Would you mind taking a look and handling this PR? I am not experienced enough with the generator scripts (yet).
Flat no lead has negative fillet sizes on the side (i can double check that but it kind of makes sense. If it is wrong then all our qfns are wrong right now.):
# Flat No Lead (DFN/QFN) with toe fillet
# | Minimum | Median | Maximum |
# | (Least) | (Nominal) | (Most) |
# | Density | Density | Density | round
# Lead Part | Level C | Level B | Level A | to
# ----------+---------+-----------+---------+-
# Toe | 0.2 | 0.3 | 0.4 | 0.05
# Heel | 0.0 | 0.0 | 0.0 | 0.05
# Side | -0.04 | -0.04 | -0.04 | 0.05
# Courtyard | 0.1 | 0.25 | 0.5 |
Confirmed the table Rene shared above is correct.