Sign in with STEVE

steve/slide-switch-tht

Miniature through-hole SPDT slide switches, C&K OS102011: vertical (MS2Q) and right-angle (MA1Q), from C&K's OS series data sheet.

v1.0.0 STEVE MIT 0
Isometric
part.py 104 lines · Python · STEVE runtime · checked
Download
1"""Miniature through-hole SPDT slide switch, C&K OS series OS102011: a steel shell over a phenolic base, a square actuator through a
2slot in the shell, three terminals in a row and a snap-in leg at each end. MS2Q stands upright (actuator up); MA1Q is the right-angle
3version (actuator along -Y, parallel to the board). The origin is at terminal 2, on the board's top face (the XY plane); the terminals
4and legs lie along X. Dimensions from C&K's data sheet, in the README."""
5from steve import Model
6
7kind = "MS2Q" # MS2Q: vertical (straight); MA1Q: right angle
8position = 2 # Actuator position (1 or 2)
9
10# Each entry: (shell length, shell width or depth, shell height, actuator out of the shell, actuator axis height (right angle only),
11# base's lower edge above the board (4.7 less its distance below the top), right angle).
12# C&K "OS Series, Miniature Slide Switches", 8 aug 17 (datasheet.lcsc.com copy), inches (mm):
13# OS102011MS2QN1 (page I-37): shell .339 (8,60) x .169 (4,30), .185 (4,70) high; actuator .079 (2,00) square, .157 (4,00) above the
14# shell; the base .157 (4,00) below the shell's top; the shell's top to the tips .295 (7,50).
15# OS102011MA1QN1 (page I-42): shell .339 (8,60) long, .173 (4,40) deep, .185 (4,70) high; actuator .079 (2,00) square, .157 (4,00)
16# out of the shell, its axis .102 (2,60) above the board; the base .154 (3,90) below the shell's top.
17KINDS = {
18 "MS2Q": (8.6, 4.3, 4.7, 4.0, 0.0, 0.7, False),
19 "MA1Q": (8.6, 4.4, 4.7, 4.0, 2.6, 0.8, True),
20}
21# Both pages: actuator travel .079 (2,00); terminals 1-2-3 .079 (2,00) apart, .020 (0,50) wide and .012 (0,30) thick; the legs .016
22# (0,40) thick and .047 (1,20) wide, their barbs .059 (1,50); the tips .110 (2,80) below the board. PC mounting: legs .323 (8,20) apart
23# in 2X Ø.059 (1,50) holes, .083 (2,10) from terminals 1 and 3 in 3X Ø.031 (0,80) holes.
24ACTUATOR = 2.0
25TRAVEL = 2.0
26PITCH = 2.0
27PIN_W = 0.5
28PIN_T = 0.3
29LEG_T = 0.4
30LEG_W = 1.2
31BARB_W = 1.5
32LEG_PITCH = 8.2
33TIP = 2.8
34# Proportions, for looks only (the drawings don't dimension them): the shell's sheet thickness (the legs' .016), where the barb sits on
35# the leg, and the V notch in the actuator's end.
36SHELL_T = 0.4
37BARB = (-0.4, -1.4)
38NOTCH = 0.6
39
40if kind not in KINDS:
41 raise ValueError(f"no type {kind!r}: {', '.join(KINDS)}")
42if position not in (1, 2):
43 raise ValueError("position is 1 or 2")
44length, width, height, out, axis, base_low, angled = KINDS[kind]
45slide = (position - 1.5) * TRAVEL # pos. 1 and 2 are a travel apart, centred on terminal 2
46L, W = length / 2, width / 2
47inner = L - SHELL_T
48
49model = Model()
50# Shell: the end walls (whose legs reach through the board), the top, and the long sides (upright) or the front face (right angle); the
51# actuator's slot, the actuator plus its travel long, in the top (upright) or in the front face (right angle).
52model.box("shell_top", length, width, SHELL_T, at=(0, 0, height - SHELL_T / 2), op="new", body="shell_body", name="Shell top")
53for side, sx in (("right", 1), ("left", -1)):
54 model.box(f"end_{side}", SHELL_T, width, height, at=(sx * (L - SHELL_T / 2), 0, height / 2), op="join", body="shell_body",
55 name=f"End wall, {side}")
56 model.box(f"leg_{side}", LEG_T, LEG_W, TIP + 0.01, at=(sx * LEG_PITCH / 2, 0, -(TIP - 0.01) / 2), op="join", body="shell_body",
57 name=f"Leg, {side}")
58 model.box(f"barb_{side}", LEG_T, BARB_W, BARB[0] - BARB[1], at=(sx * LEG_PITCH / 2, 0, (BARB[0] + BARB[1]) / 2), op="join",
59 body="shell_body", name=f"Leg barb, {side}")
60if angled:
61 model.box("shell_front", length, SHELL_T, height, at=(0, -W + SHELL_T / 2, height / 2), op="join", body="shell_body", name="Shell front")
62 model.box("slot", ACTUATOR + TRAVEL, SHELL_T + 0.2, ACTUATOR, at=(0, -W + SHELL_T / 2, axis), op="cut", body="shell_body", name="Slot")
63else:
64 for side, sy in (("back", 1), ("front", -1)):
65 model.box(f"side_{side}", length, SHELL_T, height - base_low, at=(0, sy * (W - SHELL_T / 2), (height + base_low) / 2), op="join",
66 body="shell_body", name=f"Shell side, {side}")
67 model.box("slot", ACTUATOR + TRAVEL, ACTUATOR, SHELL_T + 0.2, at=(0, 0, height - SHELL_T / 2), op="cut", body="shell_body", name="Slot")
68# Base: the phenolic block inside the shell, from its lower edge up to the top.
69front = -W + SHELL_T
70back = W if angled else W - SHELL_T # the right-angle shell has no back
71model.box("base", 2 * inner, back - front, height - SHELL_T - base_low, at=(0, (front + back) / 2, (base_low + height - SHELL_T) / 2),
72 op="new", body="base_body", name="Base")
73# Actuator: square, out of the slot by `out`, a V notch in its end.
74if angled:
75 a_in = -W + SHELL_T
76 a_end = -W - out
77 model.box("actuator", ACTUATOR, a_in - a_end, ACTUATOR, at=(slide, (a_in + a_end) / 2, axis), op="new", body="actuator_body",
78 name="Actuator")
79 with model.sketch("notch_sketch", on="XY", name="Actuator notch") as sk:
80 sk.polyline("notch_outline", [(slide - NOTCH / 2, a_end - 0.01), (slide + NOTCH / 2, a_end - 0.01), (slide, a_end + NOTCH)],
81 closed=True)
82 model.extrude("notch", "notch_sketch", distance=height, op="cut", body="actuator_body", name="Actuator notch")
83else:
84 a_low = height - SHELL_T
85 a_end = height + out
86 model.box("actuator", ACTUATOR, ACTUATOR, a_end - a_low, at=(slide, 0, (a_low + a_end) / 2), op="new", body="actuator_body",
87 name="Actuator")
88 model.plane("notch_plane", on="XZ", offset=-(ACTUATOR / 2 + 0.1), name="Actuator notch")
89 with model.sketch("notch_sketch", on="notch_plane", name="Actuator notch") as sk:
90 sk.polyline("notch_outline", [(slide - NOTCH / 2, a_end + 0.01), (slide + NOTCH / 2, a_end + 0.01), (slide, a_end - NOTCH)],
91 closed=True)
92 model.extrude("notch", "notch_sketch", distance=ACTUATOR + 0.2, op="cut", body="actuator_body", name="Actuator notch")
93# Terminals 1-3: straight down from the base's lower edge to the tips.
94for i in range(3):
95 model.box(f"terminal_{i + 1}", PIN_W, PIN_T, base_low + TIP, at=((i - 1) * PITCH, 0, (base_low - TIP) / 2), op="new",
96 body=f"terminal_{i + 1}_body", name=f"Terminal {i + 1}")
97# Materials (page I-37, Materials): base phenolic resin (bakelite), actuator POM, black (pom-copolymer), housing plate SPCC, tin plated
98# (steel-c10), terminals brass, silver plated (brass, silver coloured).
99model.material("steel-c10", bodies=["shell_body"], color="#c9ccd0")
100model.material("bakelite", bodies=["base_body"], color="#a5562a")
101model.material("pom-copolymer", bodies=["actuator_body"], color="#222325")
102model.material("brass", bodies=[f"terminal_{i + 1}_body" for i in range(3)], color="#d6d8db")
103result = model.result()
104

Miniature through-hole SPDT slide switch, C&K OS series OS102011, from C&K's data sheet (8 aug 17): a steel shell 8.6 long and 4.7 high over a phenolic base, a 2.0 mm square actuator with 2.0 mm travel, three terminals on a 2.0 mm pitch and a snap-in leg at each end, 8.2 apart. MS2Q stands upright with the actuator 4.0 above the shell; MA1Q is the right-angle version with the actuator 4.0 out of the shell's front, 2.6 above the board. See the README.

Through-hole slide switch, miniature SPDT

A miniature through-hole SPDT slide switch, C&K's OS series OS102011. It has a steel shell over a phenolic base, a square actuator through a slot in the shell, three terminals in a row, and a snap-in leg at each end. MS2Q stands upright with the actuator on top. MA1Q is the right-angle version: the actuator comes out of the shell's front, parallel to the board.

The origin is at terminal 2, on the board's top face (the XY plane). The terminals and legs lie along X. The right-angle actuator points along -Y.

kind is the type. position is where the actuator sits: positions 1 and 2 are the travel apart, centred on terminal 2 (position 1 connects terminals 1-2, position 2 connects 2-3).

Type Parts Shell (long x wide/deep x high) Actuator Base's lower edge
MS2Q OS102011MS2QN1, MS2QN1C, MS2QS1, MS2QS1C 8.6 x 4.3 x 4.7 2.0 square, 4.0 above the shell 4.0 below the shell's top (0.7 above the board)
MA1Q OS102011MA1QN1, MA1QN1C, MA1QS1, MA1QS1C 8.6 x 4.4 x 4.7 2.0 square, 4.0 out of the front, its axis 2.6 above the board 3.9 below the shell's top (0.8 above the board)

N1 parts are non-shorting and S1 shorting. A trailing C means a high-temperature actuator. All four are the same size.

For both types:

  • The actuator travel is 2.0.
  • Terminals 1, 2 and 3 are 2.0 apart, 0.5 wide and 0.3 thick.
  • The legs are 0.4 thick and 1.2 wide, with barbs 1.5 wide, and are 8.2 apart.
  • The terminals and legs reach 2.8 below the board. The vertical type's shell top is 7.5 above the tips.
  • PC mounting: the terminals go in Ø0.8 holes, and the legs in Ø1.5 holes, 2.1 from terminals 1 and 3.

Source

C&K, OS Series, Miniature Slide Switches, dated 8 aug 17, catalogue pages I-37 to I-43, from the copy at datasheet.lcsc.com (https://datasheet.lcsc.com/datasheet/pdf/9e68893bade4341f8dc17b91bf8fc979.pdf, LCSC part C221829; C&K's own site isn't used). Dimensions are in inches (mm); the mm values are used here.

  • Page I-37, OS102011MS2QN1: shell .339 (8,60) x .169 (4,30), .185 (4,70) high; actuator .079 (2,00) square, .157 (4,00) above the shell; the base .157 (4,00) below the shell's top; shell top to the tips .295 (7,50); terminals .079 (2,00) apart, .020 (0,50) wide, .012 (0,30) thick; legs .016 (0,40) thick and .047 (1,20) wide, barbs .059 (1,50); tips .110 (2,80) below; travel .079 (2,00). PC mounting: .323 (8,20), .083 (2,10), 3X Ø.031 (0,80), 2X Ø.059 (1,50).
  • Page I-42, OS102011MA1QN1: shell .339 (8,60) long, .173 (4,40) deep, .185 (4,70) high; actuator .079 (2,00) square, .157 (4,00) out of the shell, its axis .102 (2,60) above the board; the base .154 (3,90) below the shell's top; terminals, legs, travel and PC mounting as on I-37.
  • Page I-37, Materials: base phenolic resin; actuator POM, black (high temperature: PA46, black); housing plate SPCC, tin plated (Ni plated for the RoHS-compatible C parts); terminals brass, silver plated.

The sheet gives no weight.

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

  • The shell's sheet thickness, 0.4, as the legs'.
  • Where the barb sits on the leg: from 0.4 to 1.4 below the board.
  • The V notch in the actuator's end, 0.6 wide and deep.
  • The shell is drawn as plain plates: on the vertical type the top, the long sides down to the base's lower edge, and the end walls down to the board; on the right-angle type the top, the front (with the slot) and the end walls. The slot is the actuator plus its travel long.

Materials follow the sheet: the shell sheet steel (steel-c10), the base phenolic (bakelite), the actuator black POM (pom-copolymer), and the terminals brass (brass), silver coloured. Mass check: the sheet states no weight. As modelled, MS2Q is 0.41 g shell + 0.13 g base + 0.02 g actuator + 0.01 g terminals = 0.57 g, and MA1Q is 0.52 g.

Catalogue models

The old SW Slide SPDT Straight CK OS102011MS2Q and SW Slide SPDT Angled CK OS102011MA1Q models name these exact parts, so they map to MS2Q and MA1Q. They were measured on the reference models (2026-11-06):

Old models C&K drawing
MS2Q shell 8.6 x 4.3 x 4.7 8.6 x 4.3 x 4.7
MS2Q actuator 2.0 square, 4.0 above the shell, a V notch 2.0 square, 4.0 above the shell
MS2Q base 0.7 above the board, with four feet down to 0.3 0.7 above the board
MA1Q shell 8.6 x 4.4 x 4.7 8.6 x 4.4 x 4.7
MA1Q actuator 2.0 square, 4.0 out, axis 2.6 above the board 2.0 square, 4.0 out, axis 2.6
MA1Q base 0.8 above the board 0.8 above the board
Terminals 0.5 x 0.3, 2.0 apart, 2.8 below 0.5 x 0.3, 2.0 apart, 2.8 below
Legs 0.4 thick, 8.2 apart, up to 1.07 wide, narrowing to 0.59 at the tip 0.4 thick, 8.2 apart, 1.2 wide, barbs 1.5
Actuator position between terminals 1 and 2 (position 1) drawn in position 2

The family's other switches (DIP switches, tactile switches and other makers' switches) are other parts. See COVERAGE.md.

  1. 1.1.0 Latest Compare with 1.0.0
  2. 1.0.0
More #slide-switch
STEVEMIT

steve/right-angle-pushbutton-tht

Right-angle subminiature pushbutton from NKK's Series BB sheet: BB15AH, SPDT momentary, with a support bracket, without a cap or with a 5.1 or 7.5 mm slip-on cap.

0 7 sizes 0 1 hour ago v1.0.0
STEVEMIT

steve/right-angle-tactile-switch

Right-angle 6 x 6 mm through-hole tactile switches, C&K PTS645V: round actuators 3.15 to 8.35 mm from the front leads, or the 6.15 mm square actuator.

0 5 sizes 0 1 hour ago v1.0.0
STEVEMIT

steve/tht-tactile-switch

6 x 6 mm through-hole tactile switches from Omron's B3F data sheet: flat plungers 4.3 to 9.5 mm high, projected 7.3 mm, with or without a ground terminal.

0 9 sizes 0 3 hours ago v1.0.0
STEVEMIT

steve/small-tactile-switch-tht

6 x 3.5 mm through-hole tactile switches from APEM's MJTP sheet: MJTP1243 (4.3 mm actuator) and MJTP1250 (5.0 mm), two terminals 6.5 apart.

0 2 sizes 0 1 hour ago v1.0.0