sot module#

Small Outline Transistor (SOT) Landpattern Generator#

This module provides a base class for generating SOT landpatterns, and a set of concrete subclasses for specific SOT packages. A LeadProfile must be provided for the landpattern to be complete or an error will be raised, but everything else is optional. The SOTLeadProfile class is provided as a shorthand for common lead profile values.

A trivial example of a three-port SOT component is shown below:

>>> from jitx import Component, Port, Toleranced as T
>>> from jitxlib.landpatterns.generators.sot import SOT23_3, SOTLeadProfile
>>> from jitxlib.landpatterns.package import RectanglePackage
>>> from jitxlib.symbols.box import BoxSymbol
>>> class MyComponent(Component):
...     "Trivial three-port SOT component."
...     VCC = Port()
...     OUT = Port()
...     GND = Port()
...
...     landpattern = SOT23_3().package_body(
...         RectanglePackage(
...             width=T.min_max(1.2, 1.4),
...             length=T.min_max(2.8, 3.0),
...             height=T.min_max(0.9, 1.15),
...         )
...     ).lead_profile(
...         SOTLeadProfile(
...             span=T.min_max(2.25, 2.55),
...         )
...     )
...
...     symbol = BoxSymbol()
class SOTLead(length=Toleranced(0.425, 0.125, 0.125), width=Toleranced(0.4, 0.1, 0.1), lead_type=LeadProtrusion(name='SmallGullWingLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.55, heel=0.45, side=0.01, courtyard_excess=0.5), <DensityLevel.B: 'B'>: LeadFillets(toe=0.35, heel=0.35, side=-0.02, courtyard_excess=0.25), <DensityLevel.C: 'C'>: LeadFillets(toe=0.15, heel=0.25, side=-0.04, courtyard_excess=0.1)}))[source]#

Bases: SMDLead

SOT Lead

This class specifies the default lead for SOT landpatterns. Please examine the values to make sure they are correct for your application, and override them with the values from the datasheet as necessary.

Parameters:
length: Toleranced = Toleranced(0.425, 0.125, 0.125)#

Length of the SMT lead in mm, default 0.3 to 0.55 mm

width: Toleranced = Toleranced(0.4, 0.1, 0.1)#

Width of the SMT lead in mm, default 0.3 to 0.5 mm

lead_type: LeadProtrusion = LeadProtrusion(name='SmallGullWingLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.55, heel=0.45, side=0.01, courtyard_excess=0.5), <DensityLevel.B: 'B'>: LeadFillets(toe=0.35, heel=0.35, side=-0.02, courtyard_excess=0.25), <DensityLevel.C: 'C'>: LeadFillets(toe=0.15, heel=0.25, side=-0.04, courtyard_excess=0.1)})#

Lead Protrusion Type

The default value for SOT leads is SmallGullWingLeads.

class SOTFlatLead(length=Toleranced(0.425, 0.125, 0.125), width=Toleranced(0.4, 0.1, 0.1), lead_type=LeadProtrusion(name='SmallOutlineFlatLeads', 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: SOTLead

SOT Flat Lead

This class specifies the default lead for flat SOT landpatterns.

Parameters:
lead_type: LeadProtrusion = LeadProtrusion(name='SmallOutlineFlatLeads', 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 SOT flat leads is SmallOutlineFlatLeads. Used for packages like SOT-23F or SOT538.

class SOTLeadProfile(span, pitch=0.95, type=SOTLead(length=Toleranced(0.425, 0.125, 0.125), width=Toleranced(0.4, 0.1, 0.1), lead_type=LeadProtrusion(name='SmallGullWingLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.55, heel=0.45, side=0.01, courtyard_excess=0.5), <DensityLevel.B: 'B'>: LeadFillets(toe=0.35, heel=0.35, side=-0.02, courtyard_excess=0.25), <DensityLevel.C: 'C'>: LeadFillets(toe=0.15, heel=0.25, side=-0.04, courtyard_excess=0.1)})))[source]#

Bases: LeadProfile

SOT Lead Profile

This is a convenience subclass that specifies a default set of lead profile values for SOT landpatterns, in particular it sets the pitch to 0.95 mm and uses the SOTLead lead type, but still requiring span to be defined by the user. Both pitch and lead type can naturally also be overridden, or a fully specified LeadProfile can be used instead.

Parameters:
pitch: float = 0.95#

Pitch - the distance between adjacent leads on the same side of the package, default 0.95 mm

type: SOTLead = SOTLead(length=Toleranced(0.425, 0.125, 0.125), width=Toleranced(0.4, 0.1, 0.1), lead_type=LeadProtrusion(name='SmallGullWingLeads', fillets={<DensityLevel.A: 'A'>: LeadFillets(toe=0.55, heel=0.45, side=0.01, courtyard_excess=0.5), <DensityLevel.B: 'B'>: LeadFillets(toe=0.35, heel=0.35, side=-0.02, courtyard_excess=0.25), <DensityLevel.C: 'C'>: LeadFillets(toe=0.15, heel=0.25, side=-0.04, courtyard_excess=0.1)}))#

The lead type for this profile, default SOTLead

class SOTBase[source]#

Bases: ThermalPadGeneratorMixin, PackageBodyMixin, DualColumn

Small Outline Transistor (SOT) Landpattern Generator Base

class SOTDecorated[source]#

Bases: SilkscreenOutline, Pad1Marker, ReferenceDesignatorMixin, ExcessCourtyard, SOTBase

Decorated SOT Landpattern Generator, with no pad numbering scheme

class SOT[source]#

Bases: LinearNumbering, SOTDecorated

SOT Landpattern Generator, with a linear numbering scheme. It’s a base class for SOT devices, and should not be used directly, instead use one of the subclasses that define actual pad layouts, e.g. SOT23_3.

class SOT23[source]#

Bases: SOT

SOT-23 base class. This is currenetly only used as a marker base class. Please use one of the subclasses that define actual pad layouts, e.g. SOT23_3.

class SOT23_3[source]#

Bases: SOT23

SOT-23-3 Landpattern Generator

Pads are generated in the following layout:

1
  3
2
class SOT23_5[source]#

Bases: SOT23

SOT-23-5 Landpattern Generator

Pads are generated in the following layout:

1 5
2
3 4
class SOT23_6[source]#

Bases: SOT23

SOT-23-6 Landpattern Generator

Pads are generated in the following layout:

1 6
2 5
3 4