Skip to content

Conversation

@Uks2
Copy link

@Uks2 Uks2 commented Feb 18, 2023

I've written a generator for QFN packages, largely by copying and changing the on for QFPs.

Reasons why this is a draft:

  • Are the < 200µm between pad warnings really false positives or am I being thick somehow (I'm using librepcb 0.1.7)
  • At the moment, VQFNs and WQFNs are separate packages despite having exactly the same footprint, just different heights. Should they be merged and have the height information deleted from the description? Should they be done as package variants somehow?
  • I haven't written any tests yet.
  • Code formatting :-)

Uks2 added 2 commits February 18, 2023 16:28
It tests the generation of QFPs, not QFNs.
Largely copied from generate_qfp.py

The relevant standard is JEDEC MO-220.  Each variation is put into a
config class object and realised similarly to the QFPs.  The main
difference is that getting the pin positions is now a function of the
config class and it can handle non-square packages.

The maximum dimensions for pad sizes from JEDEC MO-220 are what's used.
Sometimes this doesn't leave 200µm between pads in which case, the
length of the edge pads and the width and height of the centre pad is
reduced equally until there's space.  *** Sometimes librepcb still
complains about there being >200µm between corner pads, e.g VEEE,
VHHE-1, VFFD-1, VHHD-2.  I think, this is a false positive; if you get
the ruler tool and measure the distance between corners, it's fine.
You do only get errors in footprints have had to be tweaked though so,
I don't know. ***

The silkscreen is little right angles on each corner, positioned just
outside the package outline, minus that line that would go down to pin
1.  Configs have a function for getting how far along the side their
pins go for this purpose.  If there's not enough space to draw a line
at least `line_width' down the side, the silkscreen is pushed out a bit
further.

Naming!  Packages are named with their IPC name plus their JEDEC MO-220
variation name, e.g VQFN50P900X900X100-64-VMMD-3.  This is because, some
variations have the same pitch, dimensions and pin number and would
overwrite each other if we just used IPC naming.
@eto-
Copy link
Contributor

eto- commented Jan 26, 2025

Is there any news on this?
I was going to start a similar script.

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.

2 participants