steve/son-package
No-lead small-outline IC packages by TI outline: WSON-8/10/12/16, VSON-8 and X1SON-8, 0.4 to 0.8 mm pitch, with exposed thermal pad.
Small-outline transistor packages by TI outline: SOT-23, thin SOT-23-5/6/8, SC-70-3/6, SOT-553 and SOT-563.
| 1 | """Small-outline transistor package (SOT-23, thin SOT-23, SC-70, SOT-563/553) by TI package outline. Centred on the origin with the seating plane on the XY |
| 2 | plane; pins 1 to k on the -Y side running +X, the others on +Y running back. Dimensions from the TI outline named by `package`; see the README.""" |
| 3 | from steve import Model |
| 4 | |
| 5 | package = "DBZ0003A" # TI package outline |
| 6 | detail = "full" # full: body, pin-1 mark and leads; simple: the body only |
| 7 | |
| 8 | # outline: (label, lead form, pitch, pin slots on -Y, pin slots on +Y, body length along the pin rows, body width across them, lead tip to tip, height |
| 9 | # max, standoff, lead width, foot length, lead thickness), ranges as (min, max), all in mm. Pin slots are pin positions in pitches from the centre. |
| 10 | # TI package outlines, https://www.ti.com/lit/pdf/<doc>: DBZ0003A mpds108 (4214838/F 08/2024), DDC0005A mpds123 (4220752/C 08/2024), DDC0006A mpds124 |
| 11 | # (4214841/E 08/2024), DDF0008A mpds569 (4222047/E 07/2024), DCK0003A mpds295 (4220745/F 11/2024), DCK0006A mpds114 (4214835/D 11/2024), DRL0005A mpds158 |
| 12 | # (4220753/E 11/2024), DRL0006A mpds159 (4223266/F 11/2024). DDF0008A's tip to tip is given as typical. DRL leads are flat: the foot is the length on the |
| 13 | # underside, and the standoff the drawn 0.00 to 0.05 gap. |
| 14 | OUTLINES = { |
| 15 | "DBZ0003A": ("SOT-23", "gull", 0.95, (-1, 1), (0,), (2.80, 3.04), (1.2, 1.4), (2.10, 2.64), 1.12, (0.01, 0.10), (0.3, 0.5), (0.2, 0.6), (0.08, 0.20)), |
| 16 | "DDC0005A": ("SOT-23-5-thin", "gull", 0.95, (-1, 0, 1), (1, -1), (2.75, 3.05), (1.45, 1.75), (2.55, 3.05), 1.1, (0.0, 0.1), (0.3, 0.5), (0.3, 0.6), (0.12, 0.20)), |
| 17 | "DDC0006A": ("SOT-23-6-thin", "gull", 0.95, (-1, 0, 1), (1, 0, -1), (2.75, 3.05), (1.45, 1.75), (2.55, 3.05), 1.1, (0.0, 0.1), (0.3, 0.5), (0.3, 0.6), (0.12, 0.20)), |
| 18 | "DDF0008A": ("SOT-23-8-thin", "gull", 0.65, (-1.5, -0.5, 0.5, 1.5), (1.5, 0.5, -0.5, -1.5), (2.85, 2.95), (1.55, 1.65), (2.65, 2.95), 1.1, (0.0, 0.1), (0.22, 0.38), (0.3, 0.6), (0.08, 0.20)), |
| 19 | "DCK0003A": ("SC-70-3", "gull", 0.65, (-1, 1), (0,), (1.85, 2.15), (1.1, 1.4), (1.8, 2.4), 1.1, (0.0, 0.1), (0.15, 0.30), (0.26, 0.46), (0.08, 0.22)), |
| 20 | "DCK0006A": ("SC-70-6", "gull", 0.65, (-1, 0, 1), (1, 0, -1), (1.85, 2.15), (1.1, 1.4), (1.8, 2.4), 1.1, (0.0, 0.1), (0.15, 0.30), (0.26, 0.46), (0.08, 0.22)), |
| 21 | "DRL0005A": ("SOT-553", "flat", 0.5, (-1, 0, 1), (1, -1), (1.5, 1.7), (1.1, 1.3), (1.5, 1.7), 0.6, (0.0, 0.05), (0.15, 0.27), (0.2, 0.4), (0.08, 0.18)), |
| 22 | "DRL0006A": ("SOT-563", "flat", 0.5, (-1, 0, 1), (1, 0, -1), (1.5, 1.7), (1.1, 1.3), (1.5, 1.7), 0.6, (0.0, 0.05), (0.15, 0.27), (0.2, 0.4), (0.08, 0.18)), |
| 23 | } |
| 24 | # The gull wing's bend heights and the pin-1 mark are proportions, for looks. |
| 25 | |
| 26 | |
| 27 | def mid(pair): |
| 28 | return (pair[0] + pair[1]) / 2 |
| 29 | |
| 30 | |
| 31 | label, form, pitch, low, high, L, W, span, top, standoff, lead_w, foot, lead_t = OUTLINES[package] |
| 32 | length, width, span, standoff, lead_w, foot, lead_t = mid(L), mid(W), mid(span), mid(standoff), mid(lead_w), mid(foot), mid(lead_t) |
| 33 | model = Model() |
| 34 | model.plane("body_plane", on="XY", offset=standoff, name="Body") |
| 35 | with model.sketch("body_sketch", on="body_plane", name="Body") as sk: |
| 36 | sk.rect("body_rect", (-length / 2, -width / 2), (length / 2, width / 2)) |
| 37 | model.extrude("body", "body_sketch", distance=top - standoff, name="Body") |
| 38 | if detail == "full": |
| 39 | model.plane("top_plane", on="XY", offset=top, name="Top") |
| 40 | with model.sketch("mark_sketch", on="top_plane", name="Pin-1 mark") as sk: |
| 41 | sk.circle("mark_circle", (-length / 2 + 0.2 * width, -width / 2 + 0.2 * width), 0.07 * width) |
| 42 | model.extrude("mark", "mark_sketch", distance=-0.03, op="cut", name="Pin-1 mark") |
| 43 | arm_z = (top + standoff) / 2 |
| 44 | for tag, side, slots in (("low", -1, low), ("high", 1, high)): |
| 45 | y_out, y_body = side * span / 2, side * width / 2 |
| 46 | y_bend = side * (span / 2 - foot) if form == "gull" else y_body |
| 47 | y_in = y_bend if form == "gull" else side * (span / 2 - foot) |
| 48 | with model.sketch(f"feet_{tag}", on="XY", name="Leads") as sk: |
| 49 | for i, slot in enumerate(slots): |
| 50 | x = slot * pitch |
| 51 | sk.rect(f"foot_{tag}_{i}", (x - lead_w / 2, min(y_in, y_out)), (x + lead_w / 2, max(y_in, y_out))) |
| 52 | model.extrude(f"feet_{tag}_body", f"feet_{tag}", distance=lead_t, name="Leads") |
| 53 | if form == "gull": |
| 54 | model.plane(f"arm_plane_{tag}", on="XY", offset=arm_z, name="Leads") |
| 55 | with model.sketch(f"arms_{tag}", on=f"arm_plane_{tag}", name="Leads") as sk: |
| 56 | for i, slot in enumerate(slots): |
| 57 | x = slot * pitch |
| 58 | sk.rect(f"arm_{tag}_{i}", (x - lead_w / 2, min(y_body, y_bend) - lead_t / 2), (x + lead_w / 2, max(y_body, y_bend) + lead_t / 2)) |
| 59 | model.extrude(f"arms_{tag}_body", f"arms_{tag}", distance=lead_t, name="Leads") |
| 60 | with model.sketch(f"legs_{tag}", on="XY", name="Leads") as sk: |
| 61 | for i, slot in enumerate(slots): |
| 62 | x = slot * pitch |
| 63 | sk.rect(f"leg_{tag}_{i}", (x - lead_w / 2, y_bend - lead_t / 2), (x + lead_w / 2, y_bend + lead_t / 2)) |
| 64 | model.extrude(f"legs_{tag}_body", f"legs_{tag}", distance=arm_z + lead_t, name="Leads") |
| 65 | model.material("pla", color="#26282b") |
| 66 | result = model.result() |
| 67 |
| 1 | name = "steve/sot-package" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Small-outline transistor packages by TI outline: SOT-23, thin SOT-23-5/6/8, SC-70-3/6, SOT-553 and SOT-563." |
| 6 | description = """Small-outline transistor packages for board layouts: body, pin-1 mark and leads, each from a named TI package outline. See the README.""" |
| 7 | tags = ["ic-package", "sot-23", "sc-70", "sot-563", "smd", "electronics"] |
| 8 | |
| 9 | [parameters.package] |
| 10 | type = "choice" |
| 11 | default = "DBZ0003A" |
| 12 | choices = ["DBZ0003A", "DDC0005A", "DDC0006A", "DDF0008A", "DCK0003A", "DCK0006A", "DRL0005A", "DRL0006A"] |
| 13 | label = "TI package outline" |
| 14 | |
| 15 | [parameters.detail] |
| 16 | type = "choice" |
| 17 | default = "full" |
| 18 | choices = ["full", "simple"] |
| 19 | label = "Detail" |
| 20 | description = "full: body, pin-1 mark and leads. simple: the body only." |
| 21 | |
| 22 | [[presets]] |
| 23 | id = "SOT-23-DBZ0003A" |
| 24 | title = "SOT-23 (DBZ0003A), 3 pins, 0.95 mm pitch" |
| 25 | params = { package = "DBZ0003A" } |
| 26 | aliases = ["SOT-23", "SOT-23-3", "DBZ0003A", "SOT-23 (DBZ0003A), 3 pins, 0.95 mm pitch"] |
| 27 | standard = "TI package outline" |
| 28 | |
| 29 | [[presets]] |
| 30 | id = "SC-70-3-DCK0003A" |
| 31 | title = "SC-70-3 (DCK0003A), 3 pins, 0.65 mm pitch" |
| 32 | params = { package = "DCK0003A" } |
| 33 | aliases = ["SC-70-3", "SOT-323", "SC-70", "DCK0003A"] |
| 34 | standard = "TI package outline" |
| 35 | |
| 36 | [[presets]] |
| 37 | id = "SC-70-6-DCK0006A" |
| 38 | title = "SC-70-6 (DCK0006A), 6 pins, 0.65 mm pitch" |
| 39 | params = { package = "DCK0006A" } |
| 40 | aliases = ["SC-70-6", "SOT-363", "DCK0006A"] |
| 41 | standard = "TI package outline" |
| 42 | |
| 43 | [[presets]] |
| 44 | id = "SOT-23-5-thin-DDC0005A" |
| 45 | title = "SOT-23-5-thin (DDC0005A), 5 pins, 0.95 mm pitch" |
| 46 | params = { package = "DDC0005A" } |
| 47 | aliases = ["SOT-23-5-thin", "TSOT-23-5", "SOT-23-5 thin", "DDC0005A"] |
| 48 | standard = "TI package outline" |
| 49 | |
| 50 | [[presets]] |
| 51 | id = "SOT-23-6-thin-DDC0006A" |
| 52 | title = "SOT-23-6-thin (DDC0006A), 6 pins, 0.95 mm pitch" |
| 53 | params = { package = "DDC0006A" } |
| 54 | aliases = ["SOT-23-6-thin", "TSOT-23-6", "SOT-23-6 thin", "DDC0006A"] |
| 55 | standard = "TI package outline" |
| 56 | |
| 57 | [[presets]] |
| 58 | id = "SOT-23-8-thin-DDF0008A" |
| 59 | title = "SOT-23-8-thin (DDF0008A), 8 pins, 0.65 mm pitch" |
| 60 | params = { package = "DDF0008A" } |
| 61 | aliases = ["SOT-23-8-thin", "TSOT-23-8", "SOT-23-8 thin", "DDF0008A"] |
| 62 | standard = "TI package outline" |
| 63 | |
| 64 | [[presets]] |
| 65 | id = "SOT-553-DRL0005A" |
| 66 | title = "SOT-553 (DRL0005A), 5 pins, 0.5 mm pitch" |
| 67 | params = { package = "DRL0005A" } |
| 68 | aliases = ["SOT-553", "DRL0005A"] |
| 69 | standard = "TI package outline" |
| 70 | |
| 71 | [[presets]] |
| 72 | id = "SOT-563-DRL0006A" |
| 73 | title = "SOT-563 (DRL0006A), 6 pins, 0.5 mm pitch" |
| 74 | params = { package = "DRL0006A" } |
| 75 | aliases = ["SOT-563", "DRL0006A"] |
| 76 | standard = "TI package outline" |
| 77 | |
| 78 | [[presets]] |
| 79 | id = "SOT-23-DBZ0003A-simple" |
| 80 | title = "SOT-23 (DBZ0003A), simple" |
| 81 | params = { package = "DBZ0003A", detail = "simple" } |
| 82 | aliases = ["SOT-23 simple"] |
| 83 | standard = "TI package outline" |
| 84 |
Small-outline transistor packages (SOT-23, thin SOT-23, SC-70, SOT-553 and SOT-563), each modelled from a named TI package outline. The package is centred on the origin with the seating plane on the XY plane. Pins 1 to k are on the -Y side running +X, and the others are on +Y running back, at the positions the outline shows.
TI package outlines at https://www.ti.com/lit/pdf/<document>:
| Outline | Package | Pins | Pitch | Height max | Document | Drawing |
|---|---|---|---|---|---|---|
| DBZ0003A | SOT-23 | 3 | 0.95 mm | 1.12 mm | mpds108 | 4214838/F 08/2024 |
| DDC0005A | SOT-23, thin | 5 | 0.95 mm | 1.1 mm | mpds123 | 4220752/C 08/2024 |
| DDC0006A | SOT-23, thin | 6 | 0.95 mm | 1.1 mm | mpds124 | 4214841/E 08/2024 |
| DDF0008A | SOT-23, thin | 8 | 0.65 mm | 1.1 mm | mpds569 | 4222047/E 07/2024 |
| DCK0003A | SC-70 | 3 | 0.65 mm | 1.1 mm | mpds295 | 4220745/F 11/2024 |
| DCK0006A | SC-70 | 6 | 0.65 mm | 1.1 mm | mpds114 | 4214835/D 11/2024 |
| DRL0005A | SOT-553 | 5 | 0.5 mm | 0.6 mm | mpds158 | 4220753/E 11/2024 |
| DRL0006A | SOT-563 | 6 | 0.5 mm | 0.6 mm | mpds159 | 4223266/F 11/2024 |
Each outline gives body length and width, lead tip to tip, maximum height, standoff, lead width, foot length and lead thickness. The model uses the middle of each range, and the height is the maximum, so read it as an envelope. DDF0008A gives its tip to tip as typical. The SOT-553 and SOT-563 leads are flat on the underside: their foot is the lead length under the package.
The thin SOT-23 outlines (1.1 mm maximum) are what catalogues call TSOT-23. The standard-height SOT-23-5 and SOT-23-6 (1.45 mm maximum) aren't this part yet.
Proportions, for looks only: the gull wing's bend heights and the pin-1 mark.
Other SOT packages (SOT-89, SOT-223, SOT-143 and so on) aren't here yet; see COVERAGE.md.
| 1 | # Small-outline transistor package |
| 2 | |
| 3 | Small-outline transistor packages (SOT-23, thin SOT-23, SC-70, SOT-553 and SOT-563), each modelled from a named TI package outline. The package is centred on the origin with the seating plane on the XY plane. Pins 1 to k are on the -Y side running +X, and the others are on +Y running back, at the positions the outline shows. |
| 4 | |
| 5 | ## Source |
| 6 | |
| 7 | TI package outlines at `https://www.ti.com/lit/pdf/<document>`: |
| 8 | |
| 9 | | Outline | Package | Pins | Pitch | Height max | Document | Drawing | |
| 10 | |---|---|---|---|---|---|---| |
| 11 | | DBZ0003A | SOT-23 | 3 | 0.95 mm | 1.12 mm | mpds108 | 4214838/F 08/2024 | |
| 12 | | DDC0005A | SOT-23, thin | 5 | 0.95 mm | 1.1 mm | mpds123 | 4220752/C 08/2024 | |
| 13 | | DDC0006A | SOT-23, thin | 6 | 0.95 mm | 1.1 mm | mpds124 | 4214841/E 08/2024 | |
| 14 | | DDF0008A | SOT-23, thin | 8 | 0.65 mm | 1.1 mm | mpds569 | 4222047/E 07/2024 | |
| 15 | | DCK0003A | SC-70 | 3 | 0.65 mm | 1.1 mm | mpds295 | 4220745/F 11/2024 | |
| 16 | | DCK0006A | SC-70 | 6 | 0.65 mm | 1.1 mm | mpds114 | 4214835/D 11/2024 | |
| 17 | | DRL0005A | SOT-553 | 5 | 0.5 mm | 0.6 mm | mpds158 | 4220753/E 11/2024 | |
| 18 | | DRL0006A | SOT-563 | 6 | 0.5 mm | 0.6 mm | mpds159 | 4223266/F 11/2024 | |
| 19 | |
| 20 | Each outline gives body length and width, lead tip to tip, maximum height, standoff, lead width, foot length and lead thickness. The model uses the middle of each range, and the height is the maximum, so read it as an envelope. DDF0008A gives its tip to tip as typical. The SOT-553 and SOT-563 leads are flat on the underside: their foot is the lead length under the package. |
| 21 | |
| 22 | The thin SOT-23 outlines (1.1 mm maximum) are what catalogues call TSOT-23. The standard-height SOT-23-5 and SOT-23-6 (1.45 mm maximum) aren't this part yet. |
| 23 | |
| 24 | **Proportions, for looks only:** the gull wing's bend heights and the pin-1 mark. |
| 25 | |
| 26 | Other SOT packages (SOT-89, SOT-223, SOT-143 and so on) aren't here yet; see `COVERAGE.md`. |
| 27 |
Small-outline transistor packages for board layouts: body, pin-1 mark and leads, each from a named TI package outline. See the README.
Small-outline transistor packages (SOT-23, thin SOT-23, SC-70, SOT-553 and SOT-563), each modelled from a named TI package outline. The package is centred on the origin with the seating plane on the XY plane. Pins 1 to k are on the -Y side running +X, and the others are on +Y running back, at the positions the outline shows.
TI package outlines at https://www.ti.com/lit/pdf/<document>:
| Outline | Package | Pins | Pitch | Height max | Document | Drawing |
|---|---|---|---|---|---|---|
| DBZ0003A | SOT-23 | 3 | 0.95 mm | 1.12 mm | mpds108 | 4214838/F 08/2024 |
| DDC0005A | SOT-23, thin | 5 | 0.95 mm | 1.1 mm | mpds123 | 4220752/C 08/2024 |
| DDC0006A | SOT-23, thin | 6 | 0.95 mm | 1.1 mm | mpds124 | 4214841/E 08/2024 |
| DDF0008A | SOT-23, thin | 8 | 0.65 mm | 1.1 mm | mpds569 | 4222047/E 07/2024 |
| DCK0003A | SC-70 | 3 | 0.65 mm | 1.1 mm | mpds295 | 4220745/F 11/2024 |
| DCK0006A | SC-70 | 6 | 0.65 mm | 1.1 mm | mpds114 | 4214835/D 11/2024 |
| DRL0005A | SOT-553 | 5 | 0.5 mm | 0.6 mm | mpds158 | 4220753/E 11/2024 |
| DRL0006A | SOT-563 | 6 | 0.5 mm | 0.6 mm | mpds159 | 4223266/F 11/2024 |
Each outline gives body length and width, lead tip to tip, maximum height, standoff, lead width, foot length and lead thickness. The model uses the middle of each range, and the height is the maximum, so read it as an envelope. DDF0008A gives its tip to tip as typical. The SOT-553 and SOT-563 leads are flat on the underside: their foot is the lead length under the package.
The thin SOT-23 outlines (1.1 mm maximum) are what catalogues call TSOT-23. The standard-height SOT-23-5 and SOT-23-6 (1.45 mm maximum) aren't this part yet.
Proportions, for looks only: the gull wing's bend heights and the pin-1 mark.
Other SOT packages (SOT-89, SOT-223, SOT-143 and so on) aren't here yet; see COVERAGE.md.
No-lead small-outline IC packages by TI outline: WSON-8/10/12/16, VSON-8 and X1SON-8, 0.4 to 0.8 mm pitch, with exposed thermal pad.
Small-outline IC packages by TI outline: SOIC-14/16 and 20W, SSOP-16/20/28, TSSOP-8 and TSSOP-48/56 (6.1 mm body).
TSSOP package, 4.4 mm body, 0.65 mm pitch: 14, 16, 20 and 24 pins.
Quad flat no-lead IC packages by TI outline: VQFN-20 (0.65 mm pitch) and VQFN-24/32/48/64 (0.5 mm pitch), with exposed thermal pad.