soic module#

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

Bases: ThermalPadGeneratorMixin, PackageBodyMixin, DualColumn

Small Outline Integrated Circuit (SOIC) Landpattern

This class generates a full SOIC 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.

narrow(package_length, *, span=None)[source]#

Set the package body to be standard narrow SOIC

Sets the body to 3.8 to 4.0 mm wide, 1.35 to 1.75 mm high and package_length long, and sets the span of the current lead profile. It reuses the arguments already set, so call it at the end of the chain.

>>> class MySOIC(Component):
...     # A narrow body SOIC, 10 mm long, with 14 leads
...     landpattern = SOIC(num_leads=14).narrow(10)
>>> class MySOIC8(Component):
...     landpattern = SOIC(num_leads=8).narrow(
...         Toleranced.min_max(4.8, 5.0), span=Toleranced.min_max(5.8, 6.2)
...     )
Parameters:
  • package_length (Toleranced | float) – length of the package body

  • span (Toleranced | float | None) – span of the leads. If not specified, the span is set to the width of the package body

Return type:

Self

wide(package_length, *, span=None)[source]#

Set the package body to be standard wide SOIC (7.5mm body width).

Wide SOIC packages are typically used for larger ICs that need more internal die area or better thermal dissipation.

>>> class MyWideSOIC(Component):
...     # A wide body SOIC, 10 mm long, with 16 leads
...     landpattern = SOIC(num_leads=16).wide(10)

Like narrow(), it sets the span of the current lead profile, so call it at the end of the chain.

Parameters:
  • package_length (Toleranced | float) – length of the package body in mm

  • span (Toleranced | float | None) – span of the leads. If not specified, defaults to body width.

Return type:

Self

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

Bases: SilkscreenOutline, Pad1Marker, ReferenceDesignatorMixin, ExcessCourtyard, SOICBase

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

Bases: LinearNumbering, SOICDecorated

Small Outline Integrated Circuit (SOIC) Landpattern

This class generates a full SOIC 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 SOICDecorated and inherit a different one.

>>> class MySOIC(Component):
...     # A narrow body SOIC, 10 mm long, with 14 leads
...     landpattern = SOIC(num_leads=14).narrow(10)
>>> MySOIC().landpattern.p[1]
SMDPad