SPST, SPDT, DPDT, ON-ON and ON-OFF-ON all describe what a toggle switch connects and in which lever positions. Once you can read those labels and find the common terminal with a meter, choosing and wiring a toggle switch becomes simple. This guide explains the terms, shows how to map any switch before wiring it, and covers common 12V and Arduino wiring.
In this guide
Poles and throws: SPST, SPDT and DPDT
A pole is one separate circuit the switch controls. A throw is a position that pole can connect to. The short names combine the two.
| Name | Means | Terminals | What it does |
|---|---|---|---|
| SPST | Single pole, single throw | 2 | Makes or breaks one circuit. A plain on/off switch. |
| SPDT | Single pole, double throw | 3 | Connects one common terminal to either of two outer terminals. Selects between two things. |
| DPDT | Double pole, double throw | 6 | Two SPDT switches inside one body, moved by the same lever. Switches two separate circuits at once. |
Every SPDT and DPDT pole has a common terminal, usually the centre one of its row. The lever decides which outer terminal the common connects to.

ON-OFF, ON-ON and ON-OFF-ON
The second part of the description tells you the lever positions and what each one does.
| Action | Positions | Typical use | Our example |
|---|---|---|---|
| ON-OFF | 2 | Turn one thing on or off | KN3C-101, SPST |
| ON-ON | 2 | Choose A or B, never neither | MTS-102, SPDT, and MTS-202, DPDT |
| ON-OFF-ON | 3 | Choose A, B or nothing, with a centre off | MTS-103, SPDT, and MTS-203, DPDT |
All of these positions are maintained: the lever stays where you leave it. A position written in brackets, such as (ON)-OFF, is momentary and springs back when released. For push-button behaviour, see our momentary vs latching switch guide.
Which toggle switch do I need?
| You want to | Choose |
|---|---|
| Turn a 12V light, pump or accessory on and off | SPST ON-OFF, such as the KN3C-101 with screw terminals |
| Pick one of two inputs, outputs or modes | SPDT ON-ON, MTS-102 |
| Choose between two things, with an off in the middle | SPDT ON-OFF-ON, MTS-103 |
| Switch two circuits together from one lever | DPDT, MTS-202 or MTS-203 |
| Forward, stop and reverse on a small DC motor | DPDT ON-OFF-ON, MTS-203, wired as shown below |
| A simple on/off using an SPDT switch you already have | Use the common and one outer lug, and leave the other outer lug empty |
A switch with more poles can do the job of one with fewer. An SPDT can act as an SPST, and one half of a DPDT can act as an SPDT. It does not work the other way round.
Map the terminals before wiring
Which outer lug connects in which lever position is not the same on every switch, and it is often the opposite of what you would guess. Checking takes a minute with a multimeter on its continuity or resistance setting.
- Keep it unpowered. Test the switch before it is wired into anything.
- Find the common. On an SPDT, put one probe on the centre lug. On a DPDT, test each column separately and start from its centre lug.
- Flip the lever one way. Touch the other probe to each outer lug. Note which one beeps.
- Flip it the other way. The other outer lug should now beep. On ON-OFF-ON switches, check that neither beeps in the centre.
- Write it down. A quick sketch of lever position against connected lug saves rewiring after soldering.
Wiring a 12V on/off switch
An on/off switch goes in series with the positive feed to the load. The load's negative goes straight to the supply negative.
- Fuse first. Fit an inline fuse close to the battery or supply positive, sized for the wire and load.
- Positive to the switch. Run the fused positive to one switch terminal.
- Switch to the load. Run the other switch terminal to the load's positive.
- Load negative to supply negative. Complete the circuit back to the battery or supply.
- Check the lever and plate. Confirm ON really is on with your meter, then fit the ON/OFF plate the right way round.
Screw terminals take ring or spade crimp terminals from our wire connectors range, matched to your wire size. Motors, pumps and other loads with a high starting current are better switched through a suitably rated relay, with the toggle switch controlling only the relay coil.
Toggle switches as Arduino inputs
At logic level, switch ratings stop mattering and wiring becomes very simple. Use the board's internal pull-up resistors so no extra parts are needed.
ON-OFF-ON as a three-position selector
Connect the MTS-103 common lug to GND and each outer lug to its own input. Each input reads LOW when the lever connects it to ground.
const int leftPin = 2;
const int rightPin = 3;
void setup() {
Serial.begin(9600);
pinMode(leftPin, INPUT_PULLUP);
pinMode(rightPin, INPUT_PULLUP);
}
void loop() {
bool left = digitalRead(leftPin) == LOW;
bool right = digitalRead(rightPin) == LOW;
if (left) {
Serial.println("Position A");
} else if (right) {
Serial.println("Position B");
} else {
Serial.println("Centre (off)");
}
delay(200);
}
An SPST or ON-ON switch works the same way with one input: common to GND and one outer lug to the pin. The same wiring works on a 3.3V ESP32. Because the switch only connects the pin to ground, it never puts a higher voltage on the input.
Labels depend on how you mount it. Once the switch is in the panel, flip the lever and see which name prints. If the result is backwards, swap the two wires or the two names in the code.
Reversing a small DC motor with DPDT
A single SPDT switch cannot reverse a two-wire DC motor, because both motor wires have to swap polarity. A DPDT switch can do it. With the MTS-203, the centre position is also a stop.
- Map the switch first using the continuity steps above. Call the columns A and B and the rows top, middle and bottom.
- Motor to the commons. Connect one motor wire to A middle and the other to B middle.
- Supply to one end row. Connect the fused positive to A top and the negative to B top.
- Cross the other end row. Link A top to B bottom, and B top to A bottom, with two short wires that cross over.
- Test at low voltage. One lever position runs the motor one way, the other reverses it, and the centre stops it.
Check the crossover before power. Before connecting the motor or supply, move the lever to each position and check that the two supply wires never show continuity with each other. Keep this method for small, low-current motors. For anything larger, use the switch to control relays or a motor driver.
Reading the ratings
The rating stamped on a switch applies only at the voltage and current type it names. The KN3C-101 is marked with separate AC and DC ratings, 15A at 250VAC and 30A at 12VDC. Our MTS mini toggles are marked with an AC rating only, 6A at 125VAC.
- Do not assume an AC rating carries over to DC. DC is harder on switch contacts, because the arc does not naturally stop as it does with AC.
- Motors, lamps and pumps draw a surge at start-up. Leave plenty of margin, or switch them through a relay.
- Heat and wire size matter too. A switch rating is not a reason to run undersized wire or leave out a fuse.
- Mains wiring needs a licensed electrician in New Zealand. This guide covers low-voltage DC and logic-level projects.
Panel holes
The MTS mini toggle switches fit a 6mm nominal panel hole with an M6 x 0.75 bushing. The KN3C-101 uses an M12 x 0.75 bushing and a nominal 12.2mm hole. Check the supplied switch against your hole before drilling a finished panel, and leave room behind it for the terminals and wire bends.
Troubleshooting
| Symptom | Likely cause and fix |
|---|---|
| ON and OFF are the wrong way round | The switch connects the lug opposite the lever. Swap the two outer wires, or turn the plate over. |
| Nothing happens in either position | The common is not connected. Find it with a meter, usually the centre lug. |
| Load stays on in every position | Both outer lugs are wired together, or the load is wired around the switch. Re-map the terminals. |
| Arduino input flickers | No pull-up resistor. Use INPUT_PULLUP and wire the common to GND. |
| Fuse blows when a DPDT motor switch is moved | The crossover is wired to the wrong row and shorts the supply. Disconnect it and check it with a meter. |
| Switch gets warm | The load is too heavy for the switch or the connection is loose. Use a relay and check the joints. |
| Lever feels loose after soldering | The body overheated. Solder quickly with a hot, clean iron, and replace the switch if the action has changed. |
KN3C-101 SPST ON-OFFView switch
MTS-102 SPDT ON-ONView switch
MTS-103 SPDT ON-OFF-ONView switch
MTS-202 / MTS-203 DPDTView switch
Frequently asked questions
What is the difference between SPDT and DPDT?
SPDT has one common that connects to one of two outer terminals, using three lugs. DPDT is two of those switches side by side, operated by one lever, using six lugs.
Can I use an ON-ON switch as a simple on/off?
Yes. Wire the common and one outer lug, and leave the other outer lug unconnected. That lever position becomes off.
Which terminal is common on a three-pin toggle?
Usually the centre lug. Always confirm it with a continuity check, because layouts differ between switch types.
Is ON-OFF-ON the same as a momentary switch?
No. ON-OFF-ON has three positions that all stay where you put them. A momentary position springs back and is shown in brackets, such as (ON)-OFF-(ON).
Do I need a resistor to use a toggle switch with Arduino?
Not if you use INPUT_PULLUP. The board's internal resistor holds the pin high, and the switch pulls it to ground.
Are these switches waterproof?
The KN3C-101 comes with a rubber boot that covers the lever at the front of the panel. Its body and terminals behind the panel are not sealed, and the MTS mini toggles have no seal. Protect them from water inside an enclosure.
Reference material checked: switch functions, terminal layouts, markings and panel sizes come from NZN's product records and stock inspection for the KN3C-101, MTS-102, MTS-103 and MTS-202/203. The Arduino example uses the standard INPUT_PULLUP pin mode.
Map it with a meter, then wire it once
A one-minute continuity check tells you exactly which lug does what, whatever the switch. After that, SPST, SPDT and DPDT wiring all follows the same simple rules.
Browse toggle switches