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.
Through-hole slide switches from the makers' drawings: C&K OS102011 SPDT, vertical (MS2Q) and right-angle (MA1Q); E-Switch EG1224 (SPDT) and EG2219 (DPDT), right-angle.
| 1 | """Through-hole slide switches: a steel shell over an insulating base, an actuator through a slot in the shell, terminals in a row and |
| 2 | legs from the shell. C&K OS102011MS2Q stands upright (actuator up); C&K OS102011MA1Q and E-Switch EG1224 (SPDT) and EG2219 (DPDT) are |
| 3 | right-angle (actuator along -Y, parallel to the board). The origin is at the centre of the shell's footprint, on the board's top face |
| 4 | (the XY plane); the terminals lie along X. Dimensions from the makers' drawings, in the README.""" |
| 5 | from steve import Model |
| 6 | |
| 7 | kind = "MS2Q" # MS2Q: C&K vertical; MA1Q: C&K right angle; EG1224, EG2219: E-Switch right angle |
| 8 | position = 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. |
| 17 | KINDS = { |
| 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. |
| 24 | ACTUATOR = 2.0 |
| 25 | TRAVEL = 2.0 |
| 26 | PITCH = 2.0 |
| 27 | PIN_W = 0.5 |
| 28 | PIN_T = 0.3 |
| 29 | LEG_T = 0.4 |
| 30 | LEG_W = 1.2 |
| 31 | BARB_W = 1.5 |
| 32 | LEG_PITCH = 8.2 |
| 33 | TIP = 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. |
| 36 | SHELL_T = 0.4 |
| 37 | BARB = (-0.4, -1.4) |
| 38 | NOTCH = 0.6 |
| 39 | # E-Switch, each entry: (terminal rows, the rows' Y). |
| 40 | # E-Switch drawing P040042 rev. A, "EG 1224 Non-Shorting", 4/27/98, and drawing P040170 rev. B, "EG 2219", 12/20/02 (datasheet.lcsc.com |
| 41 | # copies), mm: body 13.8 x 6.5, 8.5 high; actuator 5.0 wide and 4.0 high, its axis 5.5 above the board, 9.0 out of the body (8.5 beyond a |
| 42 | # 0.5 step); travel 4.0; terminals 4.0 apart, 0.5 wide and 0.4 thick, 3.5 below the board; four legs 0.8 wide and 0.5 thick, 12.0 apart |
| 43 | # along the terminals and 6.0 across. EG1224: one row of three terminals 1.75 from the back legs' row, the body's lower edge 1.5 above |
| 44 | # the board. EG2219: two rows 2.5 apart, between the legs' rows. |
| 45 | EG = {"EG1224": ((1.25,),), "EG2219": ((-1.25, 1.25),)} |
| 46 | EG_BODY = (13.8, 6.5, 8.5) |
| 47 | EG_LOW = 1.5 |
| 48 | EG_ACTUATOR = (5.0, 4.0) |
| 49 | EG_AXIS = 5.5 |
| 50 | EG_OUT = 9.0 |
| 51 | EG_STEP = 0.5 |
| 52 | EG_TRAVEL = 4.0 |
| 53 | EG_PITCH = 4.0 |
| 54 | EG_PIN = (0.5, 0.4) |
| 55 | EG_TIP = 3.5 |
| 56 | EG_LEG = (0.8, 0.5) |
| 57 | EG_LEGS = (12.0, 6.0) |
| 58 | # Proportions, for looks only: the shell's sheet thickness (the legs' 0.5), the actuator's step 4.0 x 3.0 (narrower than the knob, as |
| 59 | # drawn), and EG2219's body lower edge, 1.5 above the board as on EG1224's drawing (EG2219's doesn't dimension it). |
| 60 | EG_SHELL_T = 0.5 |
| 61 | EG_STEP_SIZE = (4.0, 3.0) |
| 62 | |
| 63 | if kind not in KINDS and kind not in EG: |
| 64 | raise ValueError(f"no type {kind!r}: {', '.join([*KINDS, *EG])}") |
| 65 | if position not in (1, 2): |
| 66 | raise ValueError("position is 1 or 2") |
| 67 | if kind in EG: |
| 68 | # E-Switch: right angle, the actuator a knob on a narrower step; four legs from the front and back walls. |
| 69 | (rows,) = EG[kind] |
| 70 | length, depth, height = EG_BODY |
| 71 | L, D, t = length / 2, depth / 2, EG_SHELL_T |
| 72 | slide = (position - 1.5) * EG_TRAVEL |
| 73 | aw, ah = EG_ACTUATOR |
| 74 | model = Model() |
| 75 | model.box("shell_top", length, depth, t, at=(0, 0, height - t / 2), op="new", body="shell_body", name="Shell top") |
| 76 | wall_h = height - EG_LOW |
| 77 | for side, sy in (("back", 1), ("front", -1)): |
| 78 | model.box(f"wall_{side}", length, t, wall_h, at=(0, sy * (D - t / 2), EG_LOW + wall_h / 2), op="join", body="shell_body", |
| 79 | name=f"Shell wall, {side}") |
| 80 | for side, sx in (("right", 1), ("left", -1)): |
| 81 | model.box(f"end_{side}", t, depth, wall_h, at=(sx * (L - t / 2), 0, EG_LOW + wall_h / 2), op="join", body="shell_body", |
| 82 | name=f"End wall, {side}") |
| 83 | lx, ly = EG_LEGS |
| 84 | for i, (sx, sy) in enumerate(((1, 1), (-1, 1), (-1, -1), (1, -1))): |
| 85 | model.box(f"leg_{i + 1}", EG_LEG[0], EG_LEG[1], EG_LOW + EG_TIP + 0.01, at=(sx * lx / 2, sy * ly / 2, (EG_LOW - EG_TIP + 0.01) / 2), |
| 86 | op="join", body="shell_body", name=f"Leg {i + 1}") |
| 87 | model.box("slot", aw + EG_TRAVEL, t + 0.2, ah, at=(0, -D + t / 2, EG_AXIS), op="cut", body="shell_body", name="Slot") |
| 88 | model.box("base", length - 2 * t, depth - 2 * t, height - t - EG_LOW, at=(0, 0, (EG_LOW + height - t) / 2), op="new", body="base_body", |
| 89 | name="Base") |
| 90 | sw, sh = EG_STEP_SIZE |
| 91 | model.box("actuator_step", sw, t + EG_STEP, sh, at=(slide, -D + t - (t + EG_STEP) / 2, EG_AXIS), op="new", body="actuator_body", |
| 92 | name="Actuator step") |
| 93 | knob = EG_OUT - EG_STEP |
| 94 | model.box("actuator", aw, knob + 0.01, ah, at=(slide, -D - EG_STEP - (knob - 0.01) / 2, EG_AXIS), op="join", body="actuator_body", |
| 95 | name="Actuator") |
| 96 | pins = [] |
| 97 | for r, y in enumerate(rows): |
| 98 | for i in range(3): |
| 99 | n = r * 3 + i + 1 |
| 100 | model.box(f"terminal_{n}", EG_PIN[0], EG_PIN[1], EG_LOW + EG_TIP, at=((i - 1) * EG_PITCH, y, (EG_LOW - EG_TIP) / 2), op="new", |
| 101 | body=f"terminal_{n}_body", name=f"Terminal {n}") |
| 102 | pins.append(f"terminal_{n}_body") |
| 103 | # Materials, for looks and a rough mass (the drawings name none): the shell sheet steel (steel-c10), the base black phenolic |
| 104 | # (bakelite), the actuator black POM (pom-copolymer), the terminals brass (brass), silver coloured. |
| 105 | model.material("steel-c10", bodies=["shell_body"], color="#c9ccd0") |
| 106 | model.material("bakelite", bodies=["base_body"], color="#2a2a2c") |
| 107 | model.material("pom-copolymer", bodies=["actuator_body"], color="#222325") |
| 108 | model.material("brass", bodies=pins, color="#d6d8db") |
| 109 | else: |
| 110 | # C&K OS102011. |
| 111 | length, width, height, out, axis, base_low, angled = KINDS[kind] |
| 112 | slide = (position - 1.5) * TRAVEL # pos. 1 and 2 are a travel apart, centred on terminal 2 |
| 113 | L, W = length / 2, width / 2 |
| 114 | inner = L - SHELL_T |
| 115 | |
| 116 | model = Model() |
| 117 | # Shell: the end walls (whose legs reach through the board), the top, and the long sides (upright) or the front face (right angle); the |
| 118 | # actuator's slot, the actuator plus its travel long, in the top (upright) or in the front face (right angle). |
| 119 | model.box("shell_top", length, width, SHELL_T, at=(0, 0, height - SHELL_T / 2), op="new", body="shell_body", name="Shell top") |
| 120 | for side, sx in (("right", 1), ("left", -1)): |
| 121 | model.box(f"end_{side}", SHELL_T, width, height, at=(sx * (L - SHELL_T / 2), 0, height / 2), op="join", body="shell_body", |
| 122 | name=f"End wall, {side}") |
| 123 | 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", |
| 124 | name=f"Leg, {side}") |
| 125 | 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", |
| 126 | body="shell_body", name=f"Leg barb, {side}") |
| 127 | if angled: |
| 128 | model.box("shell_front", length, SHELL_T, height, at=(0, -W + SHELL_T / 2, height / 2), op="join", body="shell_body", |
| 129 | name="Shell front") |
| 130 | model.box("slot", ACTUATOR + TRAVEL, SHELL_T + 0.2, ACTUATOR, at=(0, -W + SHELL_T / 2, axis), op="cut", body="shell_body", |
| 131 | name="Slot") |
| 132 | else: |
| 133 | for side, sy in (("back", 1), ("front", -1)): |
| 134 | model.box(f"side_{side}", length, SHELL_T, height - base_low, at=(0, sy * (W - SHELL_T / 2), (height + base_low) / 2), |
| 135 | op="join", body="shell_body", name=f"Shell side, {side}") |
| 136 | model.box("slot", ACTUATOR + TRAVEL, ACTUATOR, SHELL_T + 0.2, at=(0, 0, height - SHELL_T / 2), op="cut", body="shell_body", |
| 137 | name="Slot") |
| 138 | # Base: the phenolic block inside the shell, from its lower edge up to the top. |
| 139 | front = -W + SHELL_T |
| 140 | back = W if angled else W - SHELL_T # the right-angle shell has no back |
| 141 | model.box("base", 2 * inner, back - front, height - SHELL_T - base_low, at=(0, (front + back) / 2, (base_low + height - SHELL_T) / 2), |
| 142 | op="new", body="base_body", name="Base") |
| 143 | # Actuator: square, out of the slot by `out`, a V notch in its end. |
| 144 | if angled: |
| 145 | a_in = -W + SHELL_T |
| 146 | a_end = -W - out |
| 147 | model.box("actuator", ACTUATOR, a_in - a_end, ACTUATOR, at=(slide, (a_in + a_end) / 2, axis), op="new", body="actuator_body", |
| 148 | name="Actuator") |
| 149 | with model.sketch("notch_sketch", on="XY", name="Actuator notch") as sk: |
| 150 | sk.polyline("notch_outline", [(slide - NOTCH / 2, a_end - 0.01), (slide + NOTCH / 2, a_end - 0.01), (slide, a_end + NOTCH)], |
| 151 | closed=True) |
| 152 | model.extrude("notch", "notch_sketch", distance=height, op="cut", body="actuator_body", name="Actuator notch") |
| 153 | else: |
| 154 | a_low = height - SHELL_T |
| 155 | a_end = height + out |
| 156 | model.box("actuator", ACTUATOR, ACTUATOR, a_end - a_low, at=(slide, 0, (a_low + a_end) / 2), op="new", body="actuator_body", |
| 157 | name="Actuator") |
| 158 | model.plane("notch_plane", on="XZ", offset=-(ACTUATOR / 2 + 0.1), name="Actuator notch") |
| 159 | with model.sketch("notch_sketch", on="notch_plane", name="Actuator notch") as sk: |
| 160 | sk.polyline("notch_outline", [(slide - NOTCH / 2, a_end + 0.01), (slide + NOTCH / 2, a_end + 0.01), (slide, a_end - NOTCH)], |
| 161 | closed=True) |
| 162 | model.extrude("notch", "notch_sketch", distance=ACTUATOR + 0.2, op="cut", body="actuator_body", name="Actuator notch") |
| 163 | # Terminals 1-3: straight down from the base's lower edge to the tips. |
| 164 | for i in range(3): |
| 165 | model.box(f"terminal_{i + 1}", PIN_W, PIN_T, base_low + TIP, at=((i - 1) * PITCH, 0, (base_low - TIP) / 2), op="new", |
| 166 | body=f"terminal_{i + 1}_body", name=f"Terminal {i + 1}") |
| 167 | # Materials (page I-37, Materials): base phenolic resin (bakelite), actuator POM, black (pom-copolymer), housing plate SPCC, tin plated |
| 168 | # (steel-c10), terminals brass, silver plated (brass, silver coloured). |
| 169 | model.material("steel-c10", bodies=["shell_body"], color="#c9ccd0") |
| 170 | model.material("bakelite", bodies=["base_body"], color="#a5562a") |
| 171 | model.material("pom-copolymer", bodies=["actuator_body"], color="#222325") |
| 172 | model.material("brass", bodies=[f"terminal_{i + 1}_body" for i in range(3)], color="#d6d8db") |
| 173 | result = model.result() |
| 174 |
| 1 | name = "steve/slide-switch-tht" |
| 2 | version = "1.1.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Through-hole slide switches from the makers' drawings: C&K OS102011 SPDT, vertical (MS2Q) and right-angle (MA1Q); E-Switch EG1224 (SPDT) and EG2219 (DPDT), right-angle." |
| 6 | description = """Through-hole slide switch from the makers' drawings. C&K OS102011 (SPDT): steel shell 8.6 x 4.7 high over a phenolic base, 2.0 square actuator, 2.0 travel, terminals on 2.0, a leg at each end; MS2Q upright with the actuator 4.0 above, MA1Q right-angle. E-Switch EG1224 (SPDT) and EG2219 (DPDT): right-angle, body 13.8 x 6.5 x 8.5, a 5.0 x 4.0 actuator 9.0 out, 4.0 travel, terminals on 4.0, four legs. See the README.""" |
| 7 | tags = ["slide-switch", "switch", "spdt", "dpdt", "through-hole", "c-and-k", "e-switch", "electronics"] |
| 8 | |
| 9 | [parameters.kind] |
| 10 | type = "choice" |
| 11 | default = "MS2Q" |
| 12 | choices = ["MS2Q", "MA1Q", "EG1224", "EG2219"] |
| 13 | label = "Type" |
| 14 | description = "C&K MS2Q: vertical (actuator up); C&K MA1Q: right angle; E-Switch EG1224 (SPDT) and EG2219 (DPDT): right angle." |
| 15 | |
| 16 | [parameters.position] |
| 17 | type = "integer" |
| 18 | default = 2 |
| 19 | min = 1 |
| 20 | max = 2 |
| 21 | label = "Actuator position" |
| 22 | description = "1 or 2 (the C&K sheet draws position 2)." |
| 23 | |
| 24 | [[presets]] |
| 25 | id = "os102011ms2q" |
| 26 | title = "C&K OS102011MS2Q, SPDT miniature slide switch, vertical" |
| 27 | params = { kind = "MS2Q" } |
| 28 | aliases = ["C&K OS102011MS2Q", "OS102011MS2QN1", "OS102011MS2QN1C", "OS102011MS2QS1", "OS102011MS2QS1C"] |
| 29 | standard = "C&K OS" |
| 30 | |
| 31 | [[presets]] |
| 32 | id = "os102011ma1q" |
| 33 | title = "C&K OS102011MA1Q, SPDT miniature slide switch, right angle" |
| 34 | params = { kind = "MA1Q" } |
| 35 | aliases = ["C&K OS102011MA1Q", "OS102011MA1QN1", "OS102011MA1QN1C", "OS102011MA1QS1", "OS102011MA1QS1C"] |
| 36 | standard = "C&K OS" |
| 37 | |
| 38 | [[presets]] |
| 39 | id = "eg1224" |
| 40 | title = "E-Switch EG1224, SPDT slide switch, right angle" |
| 41 | params = { kind = "EG1224" } |
| 42 | aliases = ["E-Switch EG1224", "EG1224"] |
| 43 | standard = "E-Switch EG" |
| 44 | |
| 45 | [[presets]] |
| 46 | id = "eg2219" |
| 47 | title = "E-Switch EG2219, DPDT slide switch, right angle" |
| 48 | params = { kind = "EG2219" } |
| 49 | aliases = ["E-Switch EG2219", "EG2219"] |
| 50 | standard = "E-Switch EG" |
| 51 |
A through-hole slide switch with a steel shell over an insulating base, an actuator through a slot in the shell, terminals in a row, and legs from the shell:
The origin is at the centre of the shell's footprint, on the board's top face (the XY plane); for the C&K types that is terminal 2. The terminals 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 the middle terminal (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:
| Type | Circuit | Terminals |
|---|---|---|
| EG1224 | SPDT, non-shorting | one row of three, 1.75 from the back legs' row |
| EG2219 | DPDT, non-shorting | two rows of three, 2.5 apart, between the legs' rows |
For both:
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.
The sheet gives no weight.
E-Switch's drawings, both in mm, from the copies at datasheet.lcsc.com:
The drawings give no weight and name no materials.
Proportions, for looks only. The drawings don't dimension the following:
For C&K, 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. E-Switch's drawings name no materials, so the same are used for looks (the base black). EG1224 as modelled is 1.26 g shell + 0.59 g base + 0.26 g actuator + 0.03 g terminals = 2.14 g; no weight is stated.
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 old SW E-Switch EG1224 SPDT Angled and SW E-Switch EG2219 DPDT Angled models name these exact parts, so they map to EG1224 and EG2219. Measured on the reference models (2026-11-06), they match the drawings: body 13.8 x 6.5 x 8.5; actuator 5.0 x 4.0 on a 5.5 axis, 9.0 out with a 0.5 step (4.0 x 4.0 there); terminals 0.5 x 0.4 on 4.0, rows 1.75 from the back legs (EG2219 2.5 apart); legs 0.8 x 0.5, 12.0 by 6.0; 3.5 below the board. Their body lower edge is between 1.0 and 1.4 above the board, against EG1224's drawn 1.5, and their actuator sits in position 1.
The family's other switches (DIP switches, tactile switches and other makers' switches) are other parts. See COVERAGE.md.
| 1 | # Through-hole slide switch |
| 2 | |
| 3 | A through-hole slide switch with a steel shell over an insulating base, an actuator through a slot in the shell, terminals in a row, and legs from the shell: |
| 4 | |
| 5 | - C&K's miniature SPDT OS102011, with three terminals 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. |
| 6 | - E-Switch's EG1224 (SPDT, one row of three terminals) and EG2219 (DPDT, two rows), right-angle, with a large actuator knob and four legs. |
| 7 | |
| 8 | The origin is at the centre of the shell's footprint, on the board's top face (the XY plane); for the C&K types that is terminal 2. The terminals lie along X. The right-angle actuator points along -Y. |
| 9 | |
| 10 | `kind` is the type. `position` is where the actuator sits: positions 1 and 2 are the travel apart, centred on the middle terminal (position 1 connects terminals 1-2, position 2 connects 2-3). |
| 11 | |
| 12 | ## C&K OS102011 |
| 13 | |
| 14 | | Type | Parts | Shell (long x wide/deep x high) | Actuator | Base's lower edge | |
| 15 | |---|---|---|---|---| |
| 16 | | 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) | |
| 17 | | 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) | |
| 18 | |
| 19 | N1 parts are non-shorting and S1 shorting. A trailing C means a high-temperature actuator. All four are the same size. |
| 20 | |
| 21 | For both types: |
| 22 | |
| 23 | - The actuator travel is 2.0. |
| 24 | - Terminals 1, 2 and 3 are 2.0 apart, 0.5 wide and 0.3 thick. |
| 25 | - The legs are 0.4 thick and 1.2 wide, with barbs 1.5 wide, and are 8.2 apart. |
| 26 | - The terminals and legs reach 2.8 below the board. The vertical type's shell top is 7.5 above the tips. |
| 27 | - PC mounting: the terminals go in Ø0.8 holes, and the legs in Ø1.5 holes, 2.1 from terminals 1 and 3. |
| 28 | |
| 29 | ## E-Switch EG1224 and EG2219 |
| 30 | |
| 31 | | Type | Circuit | Terminals | |
| 32 | |---|---|---| |
| 33 | | EG1224 | SPDT, non-shorting | one row of three, 1.75 from the back legs' row | |
| 34 | | EG2219 | DPDT, non-shorting | two rows of three, 2.5 apart, between the legs' rows | |
| 35 | |
| 36 | For both: |
| 37 | |
| 38 | - The body is 13.8 x 6.5 and 8.5 high. |
| 39 | - The actuator is 5.0 wide and 4.0 high, its axis 5.5 above the board. It comes 9.0 out of the body: a 0.5 step, then the knob 8.5 long. The travel is 4.0. |
| 40 | - The terminals are 4.0 apart, 0.5 wide and 0.4 thick. |
| 41 | - Four legs, 0.8 wide and 0.5 thick, are 12.0 apart along the terminals and 6.0 across. |
| 42 | - The terminals and legs reach 3.5 below the board. |
| 43 | - EG1224's body lower edge is 1.5 above the board. |
| 44 | - PCB holes (EG2219's drawing): Ø1.2 for the legs and Ø0.9 for the terminals. |
| 45 | |
| 46 | ## Source |
| 47 | |
| 48 | 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. |
| 49 | |
| 50 | - 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). |
| 51 | - 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. |
| 52 | - 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. |
| 53 | |
| 54 | The sheet gives no weight. |
| 55 | |
| 56 | E-Switch's drawings, both in mm, from the copies at datasheet.lcsc.com: |
| 57 | |
| 58 | - Drawing P040042 rev. A, *EG 1224 Non-Shorting*, 4/27/98, scale 3:1 (<https://datasheet.lcsc.com/datasheet/pdf/81a8fbc03a60aba6b6e95cd6436e5e9a.pdf>, LCSC part C273395): body 13.80 x 6.50, 8.50 high; actuator 5.00 wide, 4.00 high, 9.00 out of the body and 8.50 beyond its step; actuator axis 5.50 above the board; body lower edge 1.50 above it; terminals 4.00 apart, 0.50 wide, 0.40 thick; legs 0.80 wide, 0.50 thick, 12.00 and 6.00 apart; terminals 1.75 from the back legs' row; 3.50 below the board; travel 4.0 mm (note 4). Tolerances ±0.4 (0.0) and ±0.25 (0.00). |
| 59 | - Drawing P040170 rev. B, *EG 2219*, 12/20/02, scale 2:1 (<https://datasheet.lcsc.com/datasheet/pdf/45b5d88da26f8e98312dcd5197ffd830.pdf>, LCSC part C3664594): body 13.8 x 6.5, 8.5 high; actuator 5.0 wide, 4.0 high, 8.5 beyond a 0.5 step; axis 5.5; terminals 4.0 apart, 0.5 wide, 0.4 thick, in two rows 2.5 apart; legs 0.8 wide, 0.5 thick, 12.0 and 6.0 apart; 3.5 below the board; travel 4.00 mm (note 5); PCB holes 4x Ø1.2 and 6x Ø0.9. |
| 60 | |
| 61 | The drawings give no weight and name no materials. |
| 62 | |
| 63 | **Proportions, for looks only.** The drawings don't dimension the following: |
| 64 | |
| 65 | - The shell's sheet thickness: 0.4 for C&K (the legs'), 0.5 for E-Switch (the legs'). |
| 66 | - E-Switch: the actuator's step, 4.0 x 3.0, narrower than the knob as drawn; and EG2219's body lower edge, 1.5 above the board as on EG1224's drawing (EG2219's doesn't dimension it). The base fills the shell from that edge, and the slot is the actuator plus its travel long. |
| 67 | - Where the barb sits on the leg: from 0.4 to 1.4 below the board. |
| 68 | - The V notch in the actuator's end, 0.6 wide and deep. |
| 69 | - 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. |
| 70 | |
| 71 | For C&K, 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. E-Switch's drawings name no materials, so the same are used for looks (the base black). EG1224 as modelled is 1.26 g shell + 0.59 g base + 0.26 g actuator + 0.03 g terminals = 2.14 g; no weight is stated. |
| 72 | |
| 73 | ## Catalogue models |
| 74 | |
| 75 | 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): |
| 76 | |
| 77 | | | Old models | C&K drawing | |
| 78 | |---|---|---| |
| 79 | | MS2Q shell | 8.6 x 4.3 x 4.7 | 8.6 x 4.3 x 4.7 | |
| 80 | | MS2Q actuator | 2.0 square, 4.0 above the shell, a V notch | 2.0 square, 4.0 above the shell | |
| 81 | | MS2Q base | 0.7 above the board, with four feet down to 0.3 | 0.7 above the board | |
| 82 | | MA1Q shell | 8.6 x 4.4 x 4.7 | 8.6 x 4.4 x 4.7 | |
| 83 | | MA1Q actuator | 2.0 square, 4.0 out, axis 2.6 above the board | 2.0 square, 4.0 out, axis 2.6 | |
| 84 | | MA1Q base | 0.8 above the board | 0.8 above the board | |
| 85 | | Terminals | 0.5 x 0.3, 2.0 apart, 2.8 below | 0.5 x 0.3, 2.0 apart, 2.8 below | |
| 86 | | 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 | |
| 87 | | Actuator position | between terminals 1 and 2 (position 1) | drawn in position 2 | |
| 88 | |
| 89 | The old `SW E-Switch EG1224 SPDT Angled` and `SW E-Switch EG2219 DPDT Angled` models name these exact parts, so they map to EG1224 and EG2219. Measured on the reference models (2026-11-06), they match the drawings: body 13.8 x 6.5 x 8.5; actuator 5.0 x 4.0 on a 5.5 axis, 9.0 out with a 0.5 step (4.0 x 4.0 there); terminals 0.5 x 0.4 on 4.0, rows 1.75 from the back legs (EG2219 2.5 apart); legs 0.8 x 0.5, 12.0 by 6.0; 3.5 below the board. Their body lower edge is between 1.0 and 1.4 above the board, against EG1224's drawn 1.5, and their actuator sits in position 1. |
| 90 | |
| 91 | The family's other switches (DIP switches, tactile switches and other makers' switches) are other parts. See `COVERAGE.md`. |
| 92 |
Through-hole slide switch from the makers' drawings. C&K OS102011 (SPDT): steel shell 8.6 x 4.7 high over a phenolic base, 2.0 square actuator, 2.0 travel, terminals on 2.0, a leg at each end; MS2Q upright with the actuator 4.0 above, MA1Q right-angle. E-Switch EG1224 (SPDT) and EG2219 (DPDT): right-angle, body 13.8 x 6.5 x 8.5, a 5.0 x 4.0 actuator 9.0 out, 4.0 travel, terminals on 4.0, four legs. See the README.
A through-hole slide switch with a steel shell over an insulating base, an actuator through a slot in the shell, terminals in a row, and legs from the shell:
The origin is at the centre of the shell's footprint, on the board's top face (the XY plane); for the C&K types that is terminal 2. The terminals 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 the middle terminal (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:
| Type | Circuit | Terminals |
|---|---|---|
| EG1224 | SPDT, non-shorting | one row of three, 1.75 from the back legs' row |
| EG2219 | DPDT, non-shorting | two rows of three, 2.5 apart, between the legs' rows |
For both:
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.
The sheet gives no weight.
E-Switch's drawings, both in mm, from the copies at datasheet.lcsc.com:
The drawings give no weight and name no materials.
Proportions, for looks only. The drawings don't dimension the following:
For C&K, 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. E-Switch's drawings name no materials, so the same are used for looks (the base black). EG1224 as modelled is 1.26 g shell + 0.59 g base + 0.26 g actuator + 0.03 g terminals = 2.14 g; no weight is stated.
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 old SW E-Switch EG1224 SPDT Angled and SW E-Switch EG2219 DPDT Angled models name these exact parts, so they map to EG1224 and EG2219. Measured on the reference models (2026-11-06), they match the drawings: body 13.8 x 6.5 x 8.5; actuator 5.0 x 4.0 on a 5.5 axis, 9.0 out with a 0.5 step (4.0 x 4.0 there); terminals 0.5 x 0.4 on 4.0, rows 1.75 from the back legs (EG2219 2.5 apart); legs 0.8 x 0.5, 12.0 by 6.0; 3.5 below the board. Their body lower edge is between 1.0 and 1.4 above the board, against EG1224's drawn 1.5, and their actuator sits in position 1.
The family's other switches (DIP switches, tactile switches and other makers' switches) are other parts. See COVERAGE.md.
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.
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.
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.
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.