Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework DIP package generator #75

Merged
merged 5 commits into from
Sep 3, 2023
Merged

Rework DIP package generator #75

merged 5 commits into from
Sep 3, 2023

Conversation

dbrgn
Copy link
Member

@dbrgn dbrgn commented Jan 26, 2020

This is a total rework of DIP package generator. Another one of those PRs where I thought "let me quickly do those changes", but then I spent a total of 10-15 hours on it 😅 (Mostly research)

  • Updated dimensions (based on JEDEC and real-world package sizes)
  • Deprecated a few DIP packages: DIP-36, DIP-48, DIP-52 and DIP-64 (since they have practically no real-world use, and if they do the packages sometimes deviate from the standard sizes, so generic packages shouldn't be used)
  • New silkscreen conforming to IPC7351C recommendations
  • Use lead span for pad x-offset, not package width
  • Ported parts of the generator to the new entities wrapper types

Version has been bumped to v0.2.0.

This PR also includes the changes by @ouabache in #73. Fixes #32.

I'll create a PR against the base library for easier discussion.

@dbrgn dbrgn self-assigned this Jan 26, 2020
@dbrgn dbrgn force-pushed the dip-rework branch 2 times, most recently from 24ca43e to 10214e1 Compare January 26, 2020 12:36
dbrgn added a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Jan 26, 2020
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations
- Use lead span for pad x-offset, not package width

Version has been bumped to v0.2.0.
dbrgn added a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Jan 26, 2020
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations
- Use lead span for pad x-offset, not package width

Version has been bumped to v0.2.0.
dbrgn added a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Apr 19, 2022
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations
- Use lead span for pad x-offset, not package width

Version has been bumped to v0.2.0.
dbrgn added a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Apr 19, 2022
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations

Version has been bumped to v0.2.0.
@ubruhin
Copy link
Member

ubruhin commented Aug 31, 2022

Generally very nice rework & documentation! 🚀

I didn't review everything in detail yet, but my comments so far:

  • The terms "lead span" and "body width" are used misleading IMHO. In contrast to SMT packages where lead span usually means the distance between the outer edges of the leads, for THT packages it usually means the distance between the center of the leads. In both cases this is the number which is relevant for designing the footprint - for THT packages, only the pad distance is relevant, not the outer distance between the leads.
    • Therefore, the package name (e.g. DIP787W55P254L965H533Q8) is very confusing because the "787" is not a well-known DIP lead span. See for example here that they call it DIP762... for a nominal lead span of 7.62mm. Thus I'd highly recommend to adjust our package name as well to contain the nominal lead span, not the outer lead span.
    • In the description, I'd also adjust change the "Lead span:" to its nominal value.
    • The "Body width:" value should be smaller than the nominal lead span. I think here it's fine to just define some number by ourselves since this value is not really relevant. However, a reasonable value would avoid the body to extend up to the center of the pads, which would actually mean that the leads need to be bent towards the package center (which is not true of course):
      image
  • Maybe the outline & documentation polygons could be improved a bit? For example by using the IPC recommended pin-1 marking instead of a dot, and by removing the top line crossing the arc, to keep the gap due to the arc visible even after assembly?
    • Current look:
      image
    • Idea:
      image
      Optionally we could even keep the pin-1 dot, but move it to the documentation layer to see it in an assembly drawing 🤔
      However, of course these polygon changes are not that important, it's just an idea 🙈

If you agree on these changes but don't have the time to implement it, maybe we could do it the same way as for the LED generator that I implement the changes in a separate PR?

@ubruhin
Copy link
Member

ubruhin commented Sep 1, 2023

@dbrgn may I rebase this branch and apply the suggestions from #75 (comment)? Since this is almost ready it would be nice to finally get it merged :)

@dbrgn
Copy link
Member Author

dbrgn commented Sep 1, 2023

Sorry, I forgot about this PR... Sure, your suggestions sound reasonable, go ahead 🙂

@dbrgn dbrgn assigned ubruhin and unassigned dbrgn Sep 1, 2023
ouabache and others added 3 commits September 1, 2023 21:12
- Bumped version 0.1 -> 0.1.1
- UUIDs not affected
- Updated dimensions (based on JEDEC and real-world package sizes)
- Deprecated a few DIP packages:  DIP-36, DIP-48, DIP-52 and DIP-64
  (since they have practically no real-world use, and if they do the
  packages sometimes deviate from the standard sizes, so generic
  packages shouldn't be used)
- New silkscreen conforming to IPC7351C recommendations
- Use lead span for pad x-offset, not package width
- Port most of the generator to the new entity wrapper types
- Add courtyard

Version has been bumped to v0.2.0.
@ubruhin
Copy link
Member

ubruhin commented Sep 1, 2023

Alright, I rebased and added two commits with these changes:

  • Update to file format v1
  • Change lead span from the outer values to the nominal values 7.62mm & 15.24mm.
  • Reduce body width by 0.4mm on each side.
  • Merge notch polygon into top silkscreen polygon.
  • Extend top silkscreen polygon over pin-1.
  • Move pin-1 dot to documentation layer and move to the inner of the body.
  • Add a package outline polygon.
  • Reduce text to body distance from 0.8mm to 0.6mm.
  • Add an approval for the missing 3D models.

Result:

image

image

ubruhin pushed a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Sep 1, 2023
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations

Version has been bumped to v0.2.0.
- Change lead span from the outer values to the nominal values
  7.62mm & 15.24mm.
- Reduce body width by 0.4mm on each side.
- Merge notch polygon into top silkscreen polygon.
- Extend top silkscreen polygon to include a pin-1 marking.
- Move pin-1 dot to documentation layer and move to the inner of the
  body.
- Add a package outline polygon.
- Reduce text to body distance from 0.8mm to 0.6mm.
- Add an approval for the missing 3D models.
ubruhin added a commit to LibrePCB-Libraries/LibrePCB_Base.lplib that referenced this pull request Sep 2, 2023
This is the result of librepcb-parts-generator PR 75:
LibrePCB/librepcb-parts-generator#75

- IPC 7351-C conforming names
- Updated dimensions (based on JEDEC and real-world package sizes)
- New silkscreen conforming to IPC 7351-C recommendations

Version has been bumped to v0.2.0.
@ubruhin ubruhin merged commit af905e1 into master Sep 3, 2023
@ubruhin ubruhin deleted the dip-rework branch September 3, 2023 17:59
@dbrgn
Copy link
Member Author

dbrgn commented Sep 3, 2023

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Rename DIP packages
3 participants