son module#

class SONLead(length, width, lead_type=LeadProtrusion(name='SmallOutlineNoLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.3, heel=0.0, side=0.05, courtyard_excess=0.2), <DensityLevel.B: 'B'>: LeadFillets(toe=0.2, heel=0.0, side=0.0, courtyard_excess=0.15), <DensityLevel.C: 'C'>: LeadFillets(toe=0.1, heel=0.0, side=-0.05, courtyard_excess=0.1)}))[source]#

Bases: SMDLead

SON Lead

This class specifies the default lead for SON landpatterns.

Parameters:
lead_type: LeadProtrusion = LeadProtrusion(name='SmallOutlineNoLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.3, heel=0.0, side=0.05, courtyard_excess=0.2), <DensityLevel.B: 'B'>: LeadFillets(toe=0.2, heel=0.0, side=0.0, courtyard_excess=0.15), <DensityLevel.C: 'C'>: LeadFillets(toe=0.1, heel=0.0, side=-0.05, courtyard_excess=0.1)})#

Lead Protrusion Type

The default value for SOP leads is SmallGullWingLeads.

class SONBase(*, num_rows=None, num_leads=None)[source]#

Bases: ThermalPadGeneratorMixin, PackageBodyMixin, DualColumn

Small Outline No-Lead (SON) Landpattern

This class generates a full SON landpattern. By default, it creates a soldermask-bounds-based silkscreen outline, a circular pad 1 marker, and a courtyard based on the bounds of all features buffered by an excess amount. It can also optionally generate a thermal pad.

Parameters:
  • num_rows (int | None)

  • num_leads (int | None)

class SONDecorated(*args, **kwargs)[source]#

Bases: SilkscreenOutline, Pad1Marker, ReferenceDesignatorMixin, ExcessCourtyard, SONBase

Decorated SON Landpattern Generator, with no pad numbering scheme.

class SON(*args, **kwargs)[source]#

Bases: LinearNumbering, SONDecorated

Small Outline No-Lead (SON) Landpattern

This class generates a full SON landpattern. By default, it creates a soldermask-bounds-based silkscreen outline, a circular pad 1 marker, and a courtyard based on the bounds of all features buffered by an excess amount. It can also optionally generate a thermal pad.

Note that this class will use LinearNumbering for the pad numbering. To use a different numbering scheme, create a subclass of SONBase and inherit a different one.

>>> class MySON(Component):
...     # A 14-lead SON
...     landpattern = (
...         SON(
...             num_leads=14,
...         )
...         .lead_profile(
...             LeadProfile(
...                 span=Toleranced.min_max(6.2, 6.6),
...                 pitch=0.65,
...                 type=SONLead(
...                     length=Toleranced.min_max(0.5, 0.75),
...                     width=Toleranced.min_max(0.19, 0.3),
...                 ),
...             ),
...         )
...         .package_body(
...             RectanglePackage(
...                 width=Toleranced.min_max(4.3, 4.5),
...                 length=Toleranced(5.0, 0.1),
...                 height=Toleranced.min_max(1.0, 1.2),
...             )
...         )
...     )
>>> MySON().landpattern.p[1]
SMDPad