Lowrider V3 Endstops Do Not Trigger

I just finished wiring my LR3 and am seeing the similar weirdness that the OP (@chrywo ) is seeing. I am 100% confident in my soldering and wiring. I, too, see the appropriate board SMT LEDs turn on/off when I manually trigger individual switches. I am testing via the TFT touchscreen terminal on the SKR Pro with 2209s.

I’ve done the same debugging steps of removing all of the endstop connectors on the board and then reconnecting them. Once I’m confident in the connections I hot-glued them in position. The board is mounted in the case.

My X endpoint appeared to be working via the M119 command. I homed it a couple of times with success and then it failed and started grinding into the sideplate.

Another oddity, Y2min. If I close the non-rail Y2min endpoint switch, push the reset button and reboot, and execute M119, Y2min registers as TRIGGERED. I release the switch and retest M119, it register open. If I close the Y2min switch again and retest M119, it shows open!? This behavior is repeatable. Booting with the switch closed shows TRIGGERED, but will never show TRIGGERED again.

I am using FW version 513DL from the V1Engineering release on github.

Not sure where to go next. I realize I can use the machine without endstops but this problem is troubling. I’ve spent my career designing/building/testing/producing scientific instrumentation. This build is definitely in my wheelhouse. Something seems very inconsistent in the behavior.

1 Like

I’ve been following this forum for several years, and the behavior outlined by chrywo is new to me. While it is theoretically possible that this is a firmware issue, since the 513 version of the firmware has been out for nine months and used by hundreds (thousands?) of people, it is highly unlikely the issue is firmware. My best guess is that the pins are the board are bad (not responding to a pullup setting) either due to a manufacturer error, or there was a wiring issue at some point that damaged the pins.

I suggest your first step be verifying this is the identical problem. Carefully check the voltage of each of the signal pins with the board booted. It should be 3.3V. It was around 2.0V for chrywo. Verify (M119) with Dupont wires and direct wire connections if the problem still occurs. This second test takes all of your wiring and switches out of the equation.

If the following two test follow chrywo’s results, a third test would be to wire a pullup resistor between VCC and the signal pin and retest. If the problem is just a pullup resistor issue, adding an external pullup resistor should fix the issue.

There is a fourth thing that can be tried. It is possible in the firmware to reassign endstops to alternate pins. This is something I’ve seen done once for the Rambo board with a bad pin, but I’ve not seen it done on an SKR Pro, but it should work.


Thank you @robertbu. I apologize for my tone. I truly appreciate your thoughtful considerations. The support via this forum was one of the major reasons I decided to build the LR3.

Now to the debug business… i pulled all of my endstop plugs and checked the voltage with a DVM, 1.9999 to 2.03 Vdc on all of the endstop pins at the board! Eureka. It sure sounds like the pullups aren’t there. Apparently something has changed with the SKR Pro assembly process (forgotten parts, bad solder/assembly, cheap parts, etc.) since chrywo had the same issue. Coincidence is unlikely when doing large runs of PCBs.

While I was assembling the other day, I felt using a 2-pin connector in a 3-pin receptacle made for intermittent connections. Luckily I just received at set of crimp pins and housings to make cables so adding a pullup and switching to a 3-pin housing should help.

I’ll add pullups and report back.



Did you clip or bend the pins on the drivers? My endstops were not working until I did this, something to do with sensorless homing.

1 Like

Yes, I bent the pin shown in the SKR Pro setup guide on each of the drivers.

1 Like

Here’s what I’ve found. Attached is the schematic for the limit switch connectors from BigTreeTech manual for the SKR Pro.

There’s a 4.7K pullup resistor and a 1K current limiting resistor to the LED. I measured 1.7V across the LED which is fairly typical for a red LED. Looking at the voltage divider of the 4.7k/1.0K resistor, the voltage for pin 3 (signal pin) calculates to 1.98 V which is pretty much what we have measured with the DVM.

So… the question is what changed? Why does this work for some and not others? Looking at the CPUs input/output characteristics, the minimum voltage for a signal to be considered high, Vih, ranges between 1.7 (theoretical) and 2.3 (production unit testing) volts. hmmm, right where we’re sitting. No wonder we’re seeing odd behavior.

Seems like this behavior may have been seen before: https://forum.v1e.com/t/skr-pro-1-2-strange-problems/32821 although there are some differences. Unfortunately there is no response resolving the problem.

I’m thinking that the on-board pullups are there to keep the pin from floating open but an external pullup (about 1.8k to 1.5K) is needed for real world operation.

hope this helps,


I wound up getting another SKR Pro and the endstops on the new board work correctly. I guess the first one was just a defective unit, or I messed up the board my first time wiring it.

Thanks everyone for all the help and suggestions!

1 Like

I ended up putting 1.5K pullups on the connectors and it appears to be working. I now see 2.5V at this input when the switch is open. Hopefully a crown print tomorrow.


That post with the LED’s reminds me, when i was having trouble with mine first time around (i didnt do anything to those two pins on the driver) the red LED by the driver was always on.

I still dont get why clipping/bending the pins matters, its supposed to be for diagnostics or something, and there are jumper pins there - so a jumper should be enabling them.

Other thing i did was look at one of the pictures on the v1 docs i think it was and make my jumpers all match that. I dont know if Ryan does that with the ones he sends out, I only got rambo from v1 not my skr 1.2

Summary: learn from me and make sure you clip or bend those pins to save a headache :>

1 Like

Initially bent my driver diagnostic pin, but didn’t like that they were potentially touching the cap under the driver (TMC2209 on Skr Pro 1.2 from V1E shop). Ended up clipping my pins. Can always solder suck and replace if/when the pin is needed in the future.

If the issue is correctly identified, an alternate fix might be to unsolder or cut the trace to the LEDs. Based on the circuit you posted, that should cut one leg of the voltage divider and therefore provide full 3.3V to the pin. Still not sure why the problem is happening given all the successful boards. Maybe the internal pullup resistors are not functioning, and that provides enough voltage drop to cause the problem.

1 Like

@robertbu I agree that this relatively sudden change in behavior is odd. The observed 2 volt is pretty much what the voltage calculates to be according to the schematic. WIth the pullup value that I used, 1.5K, the signal is now sitting at 2.5V which is definitely a logic high for the controller. I will report back if I see the problem again. I don’t really feel like modifying the board.

thanks for the input and suggestions.


Hey @sru_tx, how’s your 1.5k pull-up solution working out? Curious what it looks like? Seems like others are hitting this/similar behavior too.

The pull up solution is working like a champ. I haven’t seen a single failure since then. I have been able to move forward on the build. I’ve cut three 55 inch truss pieces on my 48 inch table by using locator pins, nice plywood yz plates, and 0.25inch aluminum xz plates without issue. I’m glad I installed the endstops and got them working.



FYI: Another builder cut the traces to the endstop LEDs, and also solved the problem.

1 Like

@vicious1, are you seeing these posts about the skr pro bit working well with endstops? There have been a couple and the solution is to change the led circuit. Makes me think they changed something in those parts.

Shoot, thanks for bringing this to my attention.

I have old and brand new boards here. Maybe I can get out the USB microscope and see if anything has changed.

I wonder if there is any chance a nightly build would work better. My LR3 has not had XYZ issues but for a bit the Touch plate was a bit wonky. (it uses nightlies whenever I think to change it and it is a board from a while back)

1 Like

Don’t think this is a firmware issue. Take a look at the circuit diagram Steve posted above. All it would take is slightly out of spec current limiting resistors or LEDs, or a microcontroller that required a slightly higher voltage to be considered high vs. floating, to cause the problem. Adding a 1K pullup resistors, or cutting the trace to the LEDs has solved the problem for anyone who has tried.

1 Like

WARNING: Extremely geeky electrical tech description :rofl:
What I saw was the open circuit voltage that the voltage divider was right at the threshold of what the microcontroller interprets as a “1” or high. Logic devices have a minimum input voltage that it interprets as a high, Vih-min, and maximum input voltage of what it interprets as a low, Vil-max. There is a “no man’s land” between the Vih and Vil that provides noise immunity by making sure input voltages are never in that area. Typically, that gap isn’t a problem as the logic chips are designed to work within those parameters. However, when connecting outside circuitry (the voltage divider, LED, etc.) the voltages presented are up to the circuit designer. I looked at the microcontroller’s logic signal specification (Vih Vil) and the voltages I measured were very very close to Vih. Unfortunately, these voltage specs are also temperature related so you can get intermittent behavior to further complicate diagnosis.

I chose the resistor value to give some margin above the voltage. It seems to be working. Removing the LED is probably a better solution in that it will totally remove that loading circuit. However, I found the LEDs very useful when I was building and wiring everything up. I tend to not modify boards in the off-chance that I have to replace the board and a formerly working system becomes a non-working system because I forgot about the mod (that’s just me, I have a short memory).

Hope this helps. Sorry if it got too technical.


I LOVE the endstops. This is my first CNC and don’t know all of the ins and outs of usage. However, what I have enjoyed is that I can “home” my system and then via terminal execute a G0 or G1 to an exact location (and write it down). That new location is my origin for the workpiece at hand. If I lose power, take a break in the day or night, or ahem… crash my router by not tightening the collet tight enough while cutting aluminum (ahem… :rofl: :rofl: :rofl:) I can reboot, home, and go back to the exact origin and start again.

Highly recommend the endstop option.