MPCNC dual end stops SKR PRO v1.2 2009 drivers - Intermmitent homing failures

Hi All,
This is a new build in Hobart Tasmania.
I’m in need of some expertise as I’m trying to set up an MPCNC Primo machine as a CNC machine.
I’m having difficulty getting the “Home” 0,0,0 function to deliver consistent results. It does on the odd occasion work as it should but more regularly than not it tries to overrun the limit switch boundaries on either the X or Y-axis.
Any suggestions as to where to troubleshoot would be appreciated.

Cheers John

I’d start with checking pullup resistors on the stop pins. I’ve had a few boards where those don’t work as expected, leaving the pin floating when the stop switch should be triggered.

A multimeter should show a consistent resistance between the “S” and “+” pins with the board powered on. (470 ohms, IIRC) if not then the pullup resistor is not being put into circuit, and the input is left floating. This will cause inconsistent results like you describe.

M119 should also give you some idea if the firmware is reacting correctly.

Aside from that, those dupont connectors are often difficult to crimp well, and can be dodgy, although that usually results in false triggers.

To confirm: are you using the default V1 firmware setup, using normally closed switches, with pullup resistors enabled? My suggestions are under that assumption.

1 Like

Are you using dual endstops or just the serial configuration?

M119 is the first tool you should use. You should see all the endstops. If you are using dual, make sure the X1 endstop is next to the motor plugged into the X port, and same for Y. My guess is that you have these flipped, and you’re getting funky behavior when it doesn’t start square.

G’day, Dan,
thank you for the quick reply to my query.
I confirm that I’m using the firmware from the V1 website:- V1CNC_SkrPro_Dual_2209.

I initially loaded the .bin file that was included within the zip file but found I was having problems so fired up Visual Studio Code & Platform IO, modified the Configuration.h file to my requirements, and reflashed the SKR-Pro board.

I followed your suggestion and checked the resistance between the “+” and “S” on the limit switch sockets but came up with an infinity reading on all instances.

Following is the copy of the configuration.h file as loaded into my machine at the moment, lines 622 to 669 inclusive.
** note that I have added // comments if I changed something.
The changes made are to facilitate the “Z” axis homing in a positive direction in relation to the wasteboard. It also shows, I believe, that the “Pullup Resistors” are enabled.

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.

// Almost all printers will be using one per axis. Probes will use one or more of the

// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.

#define USE_XMIN_PLUG

#define USE_YMIN_PLUG

//#define USE_ZMIN_PLUG //JPH changed to Undefined

#define USE_XMAX_PLUG

#define USE_YMAX_PLUG

#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state

#define ENDSTOPPULLUPS

#if DISABLED(ENDSTOPPULLUPS)

// Disable ENDSTOPPULLUPS to set pullups individually

//#define ENDSTOPPULLUP_XMAX

//#define ENDSTOPPULLUP_YMAX

//#define ENDSTOPPULLUP_ZMAX

//#define ENDSTOPPULLUP_XMIN

//#define ENDSTOPPULLUP_YMIN

//#define ENDSTOPPULLUP_ZMIN

//#define ENDSTOPPULLUP_ZMIN_PROBE

#endif

// Enable pulldown for all endstops to prevent a floating state

//#define ENDSTOPPULLDOWNS

#if DISABLED(ENDSTOPPULLDOWNS)

// Disable ENDSTOPPULLDOWNS to set pulldowns individually

//#define ENDSTOPPULLDOWN_XMAX

//#define ENDSTOPPULLDOWN_YMAX

//#define ENDSTOPPULLDOWN_ZMAX

//#define ENDSTOPPULLDOWN_XMIN

//#define ENDSTOPPULLDOWN_YMIN

//#define ENDSTOPPULLDOWN_ZMIN

//#define ENDSTOPPULLDOWN_ZMIN_PROBE

#endif

// Mechanical endstop with COM to ground and NC to Signal uses “false” here (most common setup).

#define X_MIN_ENDSTOP_INVERTING false

#define Y_MIN_ENDSTOP_INVERTING false

#define Z_MIN_ENDSTOP_INVERTING true

#define X_MAX_ENDSTOP_INVERTING false

#define Y_MAX_ENDSTOP_INVERTING false

#define Z_MAX_ENDSTOP_INVERTING true //JPH changed from false

#define Z_MIN_PROBE_ENDSTOP_INVERTING true

The M119 command correctly reflects the state of each of the limit switches in either the “open or TRIGGERED” states, as do the LED indicators on the circuit board.

With regard to the connectors, I am using the JST-XH terminals and although I have the correct crimping tool for them, I find that I get a much more secure crimp by closing the wings over the cable with needle-nose pliers before finally crimping with the tool.

I have also found that if I manually move the core assembly away from the “X” and “Y” stops by a couple of hundred mm, reflash the board with the .bin file, (change from .CUR to .bin) then ask via the LCD 12864 simulator screen to AUTO HOME, it will perform the task correctly, but after the first successful attempt, trying to auto home again will usually produce the fault.

Once successfully homed, running a job and moving the axis’ with CNCjs doesn’t usually create a problem.

Your thoughts now?

John H.

G’day, Jeff,

thank you for your quick response also.

Yes, I am using dual endstops and they are responding correctly when queried by the M119 command, as you will read in my response to Dan.

I can also add that they are wired individually in shielded cable and attached to the SKR Pro 1.2 board via aircraft type connectors fitted to the circuit board enclosure.

The wiring is in the following configuration:-

Motor Limit Switch
X X- (PB10)
Y Y- (PE12)
Z E2 (PG5)
Xa E0 (PE15)
Ya E1 (PG8)

Looking forward to any further thoughts you may have after reading my responses.

John H.

Infinite resistance is weird… but if M119 is working, then it’s probably OK.

When homing, try triggering one stop with a finger. (Close to the end, but not at it.) That motor should stop. Do this for all 4.

If the opposite motor stops, then you have the endstops wired to the wrong port Xmin/max or Ymin/max.

1 Like

G’day, Dan,

Been there, done that many times, but just checked again. All ok.

Still trying to come up with a consistent way to duplicate the problem repeatably.
I find if after it has been homed once correctly and the display on the screen reads X 0, Y 0, Z 120, as set in configuration.h, if I again press the Auto Home button without moving any of the axis’ this will duplicate the problem in most instances.

Another un-related problem ( I think) I have is when the touch mode screen is selected, after it detects the printer is connected on startup, the display starts partially scrolling a message:- Unknown command: "M22 and beeps the buzzer and restarts to scroll the info screen. I believe this is not the complete message because if iI touch the Speed/Feed button, the screen pops up another window:-

‘echo:
Unknown command: “M221”
OK’

When the OK button is pressed it reloads the same window repeatedly.

To stop this action requires holding the control knob for 3 seconds to go to the Marlin Mode - Touch Mode and reselect touch mode.

The firmware in the display is:-
TFT35_E3_V3.0.26.X Jul 29 2020

Once again any suggestions would be appreciated.

John H.