MPCNC: Makerbot-style Endstop Switch Modification

The Protoneer CNC Shield has headers for two endstops on each axis, although they’re wired to the same Arduino input pin. I installed a pair of Makerbot-style endstops on the Y axis, plugged them in, triggered one, and … the Arduino crashed. Hard. As in, a complete loss of power and reboot.

Some fiddling around produced absolutely baffling symptoms, as I replaced each endstop board and their cables to no avail.

Perusing the schematic (the “full instructions” link is dead, of course) eventually revealed the problem:

Makerbot style endstop - schematic

Makerbot style endstop – schematic

Got it?

Although there’s a pullup on the COM switch terminal, the switch’s NC terminal is connected to the +5 V supply, shorting across the both resistor and the LED+resistor. With two endstops in parallel, triggering one crowbars the other’s power supply to ground. I’m sure it made sense at the time, perhaps by ensuring no possible noise source could interfere with the pullup.

The solution is simple: disconnect the NC terminal from the power supply. As it turns out, the PCB layout routes +5 V on the bottom layer, up through the via around the NC switch terminal, thence to the LED and resistor, leaving only one choice:

MPCNC - dual MG endstop hack

MPCNC – dual MG endstop hack

Yup, amputate the NC terminal and be done with it.

After that, the pullup resistor lets the endstops cooperate like you’d expect: triggering either one lights up both LEDs.



  1. MPCNC: Autolevel Probe, Endstop Edition | The Smell of Molten Projects in the Morning

Spam comments vanish. Comment moderation may cause a delay.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s