Sign in with STEVE

steve/push-in-terminal-block

PCB terminal block with push-in spring connection, Phoenix Contact types: SPT 1,5 (3.5 mm), SPT 2,5 (5.0 mm, also -EX) and SPT 5 (7.5 mm, also -ZB), horizontal or vertical.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 139 lines · Python · STEVE runtime · checked
Download
1"""PCB terminal block with push-in spring connection, Phoenix Contact SPT 1,5 (3.5 mm), SPT 2,5 (5.0 mm) and SPT 5 (7.5 mm) types,
2horizontal (wire entries at the front) or vertical (wire entries on top). Pin 1 (its back pin) is at the origin, the row along +X, the
3housing on the XY plane with its front facing -Y, the solder pins down through the board. Dimensions from Phoenix Contact's data sheets
4in the README."""
5from steve import Model
6
7series = "SPT 2,5" # Series
8style = "horizontal" # horizontal: wires enter at the front (-H-); vertical: from the top (-V-)
9positions = 2 # Positions
10pins = "double" # double: two solder pins per position; zigzag: one per position, alternating rows (SPT 5 ...-ZB)
11approval = "standard" # standard, or EX: the Ex eb version of SPT 2,5 (...-EX), the same housing and pins
12
13# series: (pitch, pin 1 from the left end, width past dimension a (a = pitch x (positions - 1)), solder pin across the row, along it,
14# solder pin length, positions offered)
15# SPT 1,5: data sheet SPT 1,5/ 3-H-3,5 (1990740, 07/26/2021), Dimensions p. 2, drilling diagram p. 5 and dimensional drawing p. 6:
16# width a + 4.9, pin 1 1.3 from the left end, pins 0.8 x 0.8, 2.5 long.
17# SPT 2,5: data sheets SPT 2,5/ 2-H-5,0 (1990973, 01/17/2021) p. 3 and drawings p. 5, and SPT 2,5/ 2-H-5,0-EX (1732386, 03/27/2014)
18# drawings p. 2: width a + 6.4 (11.4 for 2 positions), pin 1 2.3 from the left end, pins 0.8 x 0.8, 2.5 long.
19# SPT 5: data sheet SPT 5/ 4-H-7,5-ZB (1719215, Feb 17, 2010) p. 1 and drawings pp. 3-4: pin 1 6.55 from the left end (drilling plan),
20# width a + 7.5 plus a 1.8 end plate (a + 9.3), pins 1.7 x 0.8 (1.7 across the row, as the front view draws them), 4.6 long.
21# Positions offered are the old catalogue's range for each series; the drawings give the width for any count.
22SERIES = {
23 "SPT 1,5": (3.5, 1.3, 4.9, 0.8, 0.8, 2.5, 2, 12),
24 "SPT 2,5": (5.0, 2.3, 6.4, 0.8, 0.8, 2.5, 1, 12),
25 "SPT 5": (7.5, 6.55, 9.3, 1.7, 0.8, 4.6, 1, 12),
26}
27# series and style: (length front to back, height above the board, back pin row from the back face, front pin row behind the back row)
28# SPT 1,5 horizontal: 1990740 p. 2 and p. 6: length 14.4, height 13.5 without the solder pins, rows 8.2 apart, the back row 2.53 from the back.
29# SPT 2,5 horizontal: 1990973 p. 3 and p. 5, 1732386 p. 2: length 14.4, height 13.5, rows 8.2 apart, the back row 2.53 from the back.
30# SPT 2,5 vertical: SPT 2,5/ 2-V-5,0-EX (1732496, Mar 27, 2024) Dimensions p. 3 and drilling plan p. 5: length 13.5, installed height 14.4,
31# rows 8.2 apart, the back row 2.75 from the back; SPT 2,5/ 3-V-5,0 (1991105) dimensional drawing p. 6 draws the same housing.
32# SPT 5 horizontal: 1719215 pp. 3-4: length 24.15, height 19.6, rows 13.2 apart, the back row 1.9 from the back.
33# SPT 5 vertical: SPT 5/ 1-V-7,5 (1719309, 13/02/2015) p. 1 and p. 5, and SPT 5/ 3-V-7,5-ZB (1719325, 10.10.2012) p. 5: length 18.5,
34# height 24.15, rows 14 apart, the back row 2.58 from the back.
35BODY = {
36 "SPT 1,5 horizontal": (14.4, 13.5, 2.53, 8.2),
37 "SPT 2,5 horizontal": (14.4, 13.5, 2.53, 8.2),
38 "SPT 2,5 vertical": (13.5, 14.4, 2.75, 8.2),
39 "SPT 5 horizontal": (24.15, 19.6, 1.9, 13.2),
40 "SPT 5 vertical": (18.5, 24.15, 2.58, 14.0),
41}
42# Pin layouts: SPT 1,5 and SPT 2,5 have two pins per position (linear double pinning; drilling diagrams). SPT 5 ...-ZB: one pin per
43# position, odd positions in the back row and even ones in the front row (drilling plans of 1719215 and 1719325); SPT 5/ 1-V-7,5
44# (1719309): two per position. The double-pinned SPT 5 horizontal block's drawing hasn't been read.
45DOUBLE = {"SPT 1,5 horizontal", "SPT 2,5 horizontal", "SPT 2,5 vertical", "SPT 5 vertical"}
46ZIGZAG = {"SPT 5 horizontal", "SPT 5 vertical"}
47
48key = f"{series} {style}"
49if series not in SERIES or key not in BODY:
50 raise ValueError(f"no {style} {series} here: {', '.join(BODY)}")
51pitch, LEFT, WIDTH_ADD, PIN_W, PIN_D, PIN_LENGTH, low, high = SERIES[series]
52LENGTH, HEIGHT, BACK, ROWS = BODY[key]
53if pins == "double" and key not in DOUBLE:
54 raise ValueError(f"{key}: only the zigzag (...-ZB) pin layout has been read")
55if pins == "zigzag" and key not in ZIGZAG:
56 raise ValueError(f"{key} has two pins per position")
57if pins == "zigzag":
58 low = 2
59if not low <= positions <= high:
60 raise ValueError(f"{key} comes with {low} to {high} positions")
61if approval == "EX" and series != "SPT 2,5":
62 raise ValueError("the EX version is SPT 2,5")
63
64width = (positions - 1) * pitch + WIDTH_ADD
65x0 = -LEFT
66front = BACK - LENGTH
67# Proportions, for looks only (the drawings don't dimension them): the chamfers on the housing's top edges, the wire entry, the release
68# slot above (horizontal) or in front of (vertical) it, and how deep they go.
69CHAMFER = 0.06 * HEIGHT
70ENTRY = 0.62 * pitch
71SLOT_W = 0.5 * pitch
72SLOT_H = 0.16 * HEIGHT
73ENTRY_DEPTH = 0.55 * LENGTH
74SLOT_DEPTH = 0.3 * LENGTH
75
76model = Model()
77# The housing: its side outline in the YZ plane, extruded along +X.
78profile = [(front, 0), (BACK, 0), (BACK, HEIGHT - CHAMFER), (BACK - CHAMFER, HEIGHT), (front + CHAMFER, HEIGHT), (front, HEIGHT - CHAMFER)]
79model.plane("side_plane", on="YZ", offset=x0, name="Side")
80with model.sketch("body_sketch", on="side_plane", name="Housing") as sk:
81 sk.polyline("body_outline", profile, closed=True)
82model.extrude("body", "body_sketch", distance=width, op="new", body="housing_body", name="Housing")
83if style == "horizontal":
84 # The XZ plane's normal is -Y: offset -front puts the plane on the front face, and a negative distance cuts towards +Y.
85 entry_z = 0.38 * HEIGHT
86 slot_z = 0.72 * HEIGHT
87 model.plane("front_plane", on="XZ", offset=-front, name="Front")
88 with model.sketch("entries_sketch", on="front_plane", name="Wire entries") as sk:
89 for i in range(positions):
90 if series == "SPT 5":
91 sk.rect(f"entry_{i}", (i * pitch - ENTRY / 2, entry_z - ENTRY / 2), (i * pitch + ENTRY / 2, entry_z + ENTRY / 2))
92 else:
93 sk.circle(f"entry_{i}", (i * pitch, entry_z), ENTRY / 2)
94 model.extrude("entries", "entries_sketch", distance=-ENTRY_DEPTH, op="cut", body="housing_body", name="Wire entries")
95 with model.sketch("slots_sketch", on="front_plane", name="Release slots") as sk:
96 for i in range(positions):
97 sk.rect(f"slot_{i}", (i * pitch - SLOT_W / 2, slot_z - SLOT_H / 2), (i * pitch + SLOT_W / 2, slot_z + SLOT_H / 2))
98 model.extrude("slots", "slots_sketch", distance=-SLOT_DEPTH, op="cut", body="housing_body", name="Release slots")
99else:
100 entry_y = BACK - 0.33 * LENGTH
101 slot_y = front + 0.25 * LENGTH
102 model.plane("top_plane", on="XY", offset=HEIGHT, name="Top")
103 with model.sketch("entries_sketch", on="top_plane", name="Wire entries") as sk:
104 for i in range(positions):
105 if series == "SPT 5":
106 sk.rect(f"entry_{i}", (i * pitch - ENTRY / 2, entry_y - ENTRY / 2), (i * pitch + ENTRY / 2, entry_y + ENTRY / 2))
107 else:
108 sk.circle(f"entry_{i}", (i * pitch, entry_y), ENTRY / 2)
109 model.extrude("entries", "entries_sketch", distance=-0.55 * HEIGHT, op="cut", body="housing_body", name="Wire entries")
110 with model.sketch("slots_sketch", on="top_plane", name="Release slots") as sk:
111 for i in range(positions):
112 sk.rect(f"slot_{i}", (i * pitch - SLOT_W / 2, slot_y - 0.16 * LENGTH / 2), (i * pitch + SLOT_W / 2, slot_y + 0.16 * LENGTH / 2))
113 model.extrude("slots", "slots_sketch", distance=-0.3 * HEIGHT, op="cut", body="housing_body", name="Release slots")
114# Contacts: each position's solder pins and the bar joining them inside the housing's floor are one solid. The bar is a proportion
115# (BAR_W x BAR_T, from the back pin to the front pin's row), standing for the current bar and spring the sections draw, so that the
116# mass comes out near the data sheets' weights.
117BAR_W = 0.5 * pitch
118BAR_T = 1.0
119bar_y = (-ROWS - PIN_D / 2, PIN_D / 2)
120with model.sketch("bars_sketch", on="XY", name="Contact bars") as sk:
121 for i in range(positions):
122 sk.rect(f"bar_cut_{i}", (i * pitch - BAR_W / 2, bar_y[0]), (i * pitch + BAR_W / 2, bar_y[1]))
123model.extrude("bar_room", "bars_sketch", distance=BAR_T, op="cut", body="housing_body", name="Room for the contacts")
124model.plane("pin_plane", on="XY", offset=-PIN_LENGTH, name="Solder pins")
125contacts = []
126for i in range(positions):
127 rows = [0.0, -ROWS] if pins == "double" else [0.0 if i % 2 == 0 else -ROWS]
128 with model.sketch(f"pins_{i}_sketch", on="pin_plane", name=f"Solder pins {i + 1}") as sk:
129 for j, y in enumerate(rows):
130 sk.rect(f"pin_{i}_{j}", (i * pitch - PIN_W / 2, y - PIN_D / 2), (i * pitch + PIN_W / 2, y + PIN_D / 2))
131 model.extrude(f"pins_{i}", f"pins_{i}_sketch", distance=PIN_LENGTH + BAR_T / 2, op="new", body=f"contact_{i}_body", name=f"Solder pins {i + 1}")
132 model.box(f"bar_{i}", BAR_W, bar_y[1] - bar_y[0], BAR_T, at=(i * pitch, (bar_y[0] + bar_y[1]) / 2, BAR_T / 2), op="join",
133 body=f"contact_{i}_body", name=f"Contact bar {i + 1}")
134 contacts.append(f"contact_{i}_body")
135# Materials: the housing is PA, green RAL 6021 (data sheets); the contacts copper alloy, tin plated.
136model.material("pa6", bodies=["housing_body"], color="#89ac76")
137model.material("copper", bodies=contacts, color="#c9cbc8")
138result = model.result()
139

PCB terminal block with push-in spring connection, of the Phoenix Contact SPT 1,5 (3.5 mm, horizontal), SPT 2,5 (5.0 mm, horizontal or vertical, standard or Ex eb) or SPT 5 (7.5 mm, horizontal or vertical, two pins per position or zigzag -ZB) type, with wire entries, release slots and solder pins. Width, length, height and pins from Phoenix Contact's data sheets. See the README.

Push-in PCB terminal block

A PCB terminal block with push-in spring connection, of the Phoenix Contact SPT type:

  • SPT 1,5: 3.5 mm pitch, horizontal.
  • SPT 2,5: 5.0 mm pitch, horizontal or vertical, standard or the Ex eb version (-EX).
  • SPT 5: 7.5 mm pitch, horizontal or vertical. It has either two solder pins per position or one per position in alternating rows (zigzag, -ZB).

Pin 1 is at the origin; with two pins per position, that's pin 1's back pin. The row runs along +X. The housing sits on the XY plane with its front facing -Y, and the solder pins go down through the board. A horizontal block (-H-) takes its wires at the front, under a release slot for a screwdriver. A vertical block (-V-) takes them from the top, with the release slot in front of the wire entry.

Series, style Pitch Width Pin 1 from the left end Length Height above the board Solder pins Pin rows Back row from the back face
SPT 1,5 horizontal 3.5 a + 4.9 1.3 14.4 13.5 0.8 x 0.8, 2.5 long 8.2 apart 2.53
SPT 2,5 horizontal 5.0 a + 6.4 2.3 14.4 13.5 0.8 x 0.8, 2.5 long 8.2 apart 2.53
SPT 2,5 vertical 5.0 a + 6.4 2.3 13.5 14.4 0.8 x 0.8, 2.5 long 8.2 apart 2.75
SPT 5 horizontal 7.5 a + 9.3 6.55 24.15 19.6 1.7 x 0.8, 4.6 long 13.2 apart 1.9
SPT 5 vertical 7.5 a + 9.3 6.55 18.5 24.15 1.7 x 0.8, 4.6 long 14 apart 2.58

Here a = pitch x (positions - 1). SPT 1,5 and SPT 2,5 have two pins per position (linear double pinning). SPT 5 with zigzag pins (-ZB) has pin 1 in the back row, pin 2 in the front row, and so on. The SPT 5 width is the drawing's a + 7.5 plus its 1.8 end plate. Its pins are 1.7 across the row and 0.8 along it, as the front view draws them.

Positions offered: SPT 1,5 and vertical SPT 2,5, 2 to 12; horizontal SPT 2,5 and SPT 5, 1 to 12; zigzag, 2 to 12. These are the old catalogue's range. The drawings give the width for any count.

Source

Phoenix Contact data sheets, each generated from Phoenix Contact's online catalogue. Copies are from Chip and Dip (static.chipdip.ru), SIC Components (datasheet.sic-components.com), Datasheets.com (static.datasheets.com) and Chipsmall (datasheet.chipsmall.com), because Phoenix Contact's own site refuses automated downloads.

  • PCB terminal block - SPT 1,5/ 3-H-3,5 - 1990740 (07/26/2021), https://static.chipdip.ru/lib/778/DOC031778622.pdf: weight 3.150 g (page 1); length 14.4, width 11.9, height 13.5 without the 2.5 solder pins, pins 0.8 x 0.8, pin spacing 8.2 (page 2); drilling diagram (page 5): 1.3 to pin 1, the back row 2.53 from the back; dimensional drawing (page 6): width a + 4.9.
  • PCB terminal block - SPT 2,5/ 2-H-5,0 - 1990973 (01/17/2021), https://static.chipdip.ru/lib/778/DOC031778624.pdf: weight 2.800 g (page 1); length 14.4, width 11.4, height 13.5 without the 2.5 solder pins, pin spacing 8.2, pins 0.8 x 0.8 (page 3); drilling diagram and dimensional drawing (page 5): 2.3 to pin 1, width a + 6.4, the back row 2.53 from the back. The 04/06/2015 edition, https://static.chipdip.ru/lib/026/DOC038026507.pdf, gives the same dimensions and 2.65 g.
  • PCB terminal block - SPT 2,5/ 2-H-5,0-EX - 1732386 (03/27/2014), https://datasheet.sic-components.com/1732386.pdf: drilling diagram and dimensioned drawing (page 2), the same dimensions as 1990973.
  • SPT 2,5/ 2-V-5,0-EX - PCB terminal block, 1732496 (Mar 27, 2024), https://static.chipdip.ru/lib/319/DOC043319292.pdf: weight 3.053 g (page 1); Dimensions (page 3): width 11.4, height 16.9, length 13.5, installed height 14.4, solder pins 2.5 long and 0.8 x 0.8; drilling plan (page 5): 2.3 to pin 1, rows 8.2 apart, the back row 2.75 from the back. The dimensional drawing of SPT 2,5/ 3-V-5,0 - 1991105 (page 6), https://static.chipdip.ru/lib/778/DOC031778632.pdf, draws the same housing: 13.5, 14.4, a + 6.4, 2.3, 8.2, 2.75.
  • SPT 5/ 4-H-7,5-ZB, Order No. 1719215 (Feb 17, 2010), https://static.datasheets.com/doc/14748888-phoenix-contact-1719215-ds.pdf: weight 0.016102 kg, dimension a 22.5 (page 1); pins 1.7 x 0.8, pin spacing 7.5, holes 2.1 (page 2); drilling plan (page 3): 6.55 to pin 1, the back row 1.9 from the back, the front row 13.2 ahead, pins alternating between the rows; dimensioned drawing (page 4): length 24.15, height 19.6, pins 4.6 long, width a + 7.5 and a 1.8 end plate.
  • PCB terminal block - SPT 5/ 1-V-7,5 - 1719309 (13/02/2015), https://static.chipdip.ru/lib/731/DOC026731163.pdf: weight 4.48 g, pins 1,7 x 0,8, pin spacing 14 (page 1); drilling diagram and dimensioned drawing (page 5): 6.55 to the pin, the back row 2.58 from the back, two pins 14 apart, length 18.5, height 24.15, pins 4.6 long, width 7.5 and a 1.8 end plate.
  • PCB terminal block - SPT 5/ 3-V-7,5-ZB - 1719325 (10.10.2012), https://datasheet.chipsmall.com/1719325/594825.pdf: drilling diagram and dimensioned drawing (page 5): the same housing as 1719309, a + 7.5 and 1.8, pins alternating between the rows.

The housing is PA, green (RAL 6021), and the contacts are a tin-plated copper alloy (data sheets). The part uses pa6 and copper.

Proportions, for looks only. The drawings don't dimension the following:

  • the chamfers on the housing's top edges, 0.06 of the height;
  • the wire entry, 0.62 of the pitch across (round on SPT 1,5 and SPT 2,5, square on SPT 5, as the front views draw them), 0.55 of the length deep (horizontal) or 0.55 of the height (vertical);
  • the release slot, 0.5 of the pitch wide, above the wire entry (horizontal) or in front of it (vertical);
  • each position's contact bar, inside the housing's floor between its pin rows: 0.5 of the pitch wide and 1.0 thick. It stands for the current bar and spring that the drawings' sections show, and the pins and bar of a position are one solid.

Mass, with pa6 at 1.15 and copper at 8.96 g/cm³, against the data sheets' weights:

Part Model Data sheet
SPT 1,5/ 3-H-3,5 2.95 g 3.150 g
SPT 2,5/ 2-H-5,0 2.76 g 2.800 g
SPT 2,5/ 2-V-5,0-EX 2.76 g 3.053 g
SPT 5/ 4-H-7,5-ZB 17.41 g 16.10 g
SPT 5/ 1-V-7,5 4.88 g 4.48 g

The old catalogue's models

The catalogue's SPT models were measured against the drawings, 10 of them (2026-11-06): SPT 1,5 2-H, SPT 2,5 1-H, 2-H, 2-H-EX and 2-V-EX, SPT 5 1-H, 3-H, 2-H-ZB, 2-V and 3-V-ZB. Their housings have the drawings' length and height, and their pins are where the drawings put them. They differ as follows:

Models Theirs The data sheet (this part)
all solder pins 2.6 long and 1.1 square (SPT 1,5, SPT 2,5), round 2.1 dia. (SPT 5) 2.5 long and 0.8 x 0.8; 4.6 long and 1.7 x 0.8
SPT 2,5 horizontal, also -EX the housing ends 1.3 before pin 1 and 5.1 past the last pin 2.3 before pin 1 and 4.1 past the last pin (the width, a + 6.4, is the same)
SPT 5 horizontal the back face 1.85 behind the back row 1.9

The SPT 2,5 horizontal models' housing is shifted 1.0 along the row: Phoenix's drilling diagrams and drawings for both 1990973 and 1732386 put pin 1 2.3 from the end, as do the vertical models. They map to this part, which follows the data sheet.

The double-pinned horizontal SPT 5 blocks (SPT 5/ 1-H-7,5, 3-H-7,5) aren't here yet: no copy of their data sheet was found. See COVERAGE.md.

  1. 1.0.0 Latest
STEVEMIT

steve/screw-terminal-block

PCB screw terminal block, Phoenix Contact types: MKDS 1,5 (5.0, 5.08 mm), PT 1,5 (3.5 mm), MPT 0,5 (2.54 mm).

0 57 sizes 0 13 hours ago v1.1.0
STEVEMIT

steve/pluggable-terminal-header

PCB header for pluggable terminal blocks, Phoenix Contact types: MSTBA 2,5 (5.0, 5.08 mm), MC 1,5 (3.81, 5.08 mm), GMSTBA 2,5 (7.5 mm); vertical MSTBVA and MCV; MC/MCV with threaded flange (GF).

0 116 sizes 0 2 hours ago v1.4.1
STEVEMIT

steve/pin-socket

Pin socket (female header): 2.54 mm straight, 2.00 mm surface-mount, 1.27 mm surface-mount and right-angle, 1.00 mm straight and surface-mount, one or two rows.

1 440 sizes 0 8 hours ago v1.2.0
STEVEMIT

steve/pin-header

Pin header, 2.54 mm and 2.00 mm pitch in one or two rows, 1.27 mm in two rows, straight or right-angle through-hole, or 1.27 mm surface-mount.

0 329 sizes 0 8 hours ago v1.3.0