A micro limit switch is a small switch that clicks over when something presses it, so a controller knows a moving part has reached a set point. The SC7301 has a sprung straight steel lever resting on a red plunger, which gives a carriage, cam or door a longer target to push than the bare plunger, so it does not have to line up exactly. It has three pins, common, normally open and normally closed, so you can wire it to read either pressed or released.
Use it as an X, Y or Z endstop on a 3D printer, a travel limit on a CNC router or laser, a home switch in an Arduino or ESP32 stepper project, or to sense a lid, door or drawer closing. It connects straight to 3.3V and 5V board inputs with no extra parts, and two M2 screws fix it to a bracket or a printed mount. Each solder tab has a hole, so you hook a stripped wire through before soldering it. The same size switch also comes as the KW11-3Z with a roller lever, the KW11-3Z with no lever and a 2-pin normally open lever switch.
Specifications
Datasheets
Wiring & getting started
- Find the pins
Hold the switch with the numbered face towards you, the lever pivot on the left and the tabs pointing down. The tabs read 1, 3, 2 from left to right: pin 1 (COM) at the pivot end, pin 3 (NO) in the middle and pin 2 (NC) at the far end. The back face has no numbers, so check you have the numbered face. At rest COM is joined to NC, and pressing the lever swaps it to NO.
- Solder two wires
Hook a stripped wire end through the hole in tab 1 and tab 3, then solder each one. Thin 26 AWG hook-up wire suits a run to a board. Leave tab 2 bare for this test.
- Connect it to your board
Wire pin 1 (COM) to GND and pin 3 (NO) to D2, as in the drawing. No resistor is needed, because the example code switches on one built into the Nano. On an ESP32 or Pico, use GND and any free input pin and change the pin number in the code.
- Load the test code
Upload this sketch, then open the Serial Monitor at 9600 baud.
Example Arduino codeArduino C++
// SC7301 limit switch test for an Arduino Nano or Uno. // Wire pin 1 (COM) to GND and pin 3 (NO, the middle tab) to D2. const int SWITCH_PIN = 2; int lastState = HIGH; void setup() { pinMode(SWITCH_PIN, INPUT_PULLUP); // turns on the Nano's built-in resistor Serial.begin(9600); Serial.println("Press the lever"); } void loop() { int state = digitalRead(SWITCH_PIN); if (state != lastState) { Serial.println(state == LOW ? "Pressed" : "Released"); lastState = state; delay(20); // skip the few milliseconds of contact bounce } } - Check it works
Press the lever by hand. You hear a click and the Serial Monitor shows Pressed, then Released when you let go. If it shows Pressed while the lever is at rest, the wire is on pin 2 (NC): move it to pin 3.
- Mount it at the end of travel
Fix it with two M2 screws so the moving part presses the lever near its tip just before the end of travel, with a little travel left after the click. Put a solid stop behind it so the switch only senses the position and never takes the knock.
Note: For mains wiring, fit the switch inside an enclosure and have a licensed electrician do the work.

