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:
SMDLeadSOT 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)
width (Toleranced)
lead_type (LeadProtrusion)
-
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:
SOTLeadSOT Flat Lead
This class specifies the default lead for flat SOT landpatterns.
- Parameters:
length (Toleranced)
width (Toleranced)
lead_type (LeadProtrusion)
-
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:
LeadProfileSOT 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
SOTLeadlead type, but still requiringspanto be defined by the user. Both pitch and lead type can naturally also be overridden, or a fully specifiedLeadProfilecan be used instead.- Parameters:
span (Toleranced)
pitch (float)
type (SOTLead)
- 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,DualColumnSmall Outline Transistor (SOT) Landpattern Generator Base
- class SOTDecorated[source]#
Bases:
SilkscreenOutline,Pad1Marker,ReferenceDesignatorMixin,ExcessCourtyard,SOTBaseDecorated SOT Landpattern Generator, with no pad numbering scheme
- class SOT[source]#
Bases:
LinearNumbering,SOTDecoratedSOT 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:
SOTSOT-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:
SOT23SOT-23-3 Landpattern Generator
Pads are generated in the following layout:
1 3 2