Z motor works when x is 0 but not when x = 2640

Z motor works when x is 0 but moves real slow when x = 2640

here’s a video: https://youtu.be/O8qhnchm-cE

Sequence used in the video:

additional information:

  • y axis seems to have no affect.
  • going up when x = 2640 works fine
  • values from x = 1000 to x = 3000 seem to have the same problem.

I’d guess this is a software problem.

[@Goanna7007, Just trying to speed up diagnosis and solution for you]
The Farmbot developers will need to know your versions ( Bot Kit, FarmbotOS and MCU/Farmduino )

ah yep,

  • Farmduino v1.3
  • Fambot os: Version 8.0.4
1 Like

It could be binding somehow - turn off the power, move the x to home, twist z by hand; Move x to max, twist z by hand, and compare the drag. If equal, keep going on software. The coil-joint at the top seemed to be compressed - same at both ends?

Also, the silent drivers will rock your world. . .cd

1 Like

Thank you Cris,

The drag seems equal.
What do you mean by the coil joint at both ends?
We’ll have a look at the silent drivers.

Update: the Z only freaks out if the location it’s moving to has a combined vector value of over 10 characters (CHAR).

2640, 99, -100 works. CHAR length: 10
2640, 100, -100 fails. CHAR length: 11
2640, 100, -99 works. CHAR length: 10
2640, 100, -100 fails. CHAR length: 11
999, 100, -100 works. CHAR length: 10
999, 1000, -100 fails. CHAR length: 11

This leads me to believe it is a software problem with the G code.

1 Like

The coil joint thingy has a better name - it’s attached to the top of the Z lead screw and connects the stepper motor to the shaft - presumably to reduce any shock in the mechanicals. Anyway, given the testing, it truly seems like a software problem. I’ll let Rory and team address this - squarely out of my league. . .cd

I think I found the solution to the problem. The farmduino buffer has a max fixed side of 50.
It’s defined in th config.h file of the farmduino “const int INCOMING_CMD_BUF_SIZE = 50”;
However if you request a move with x>999 or y>999, the size of the request is more than 50.
Exemple : G00 X1050.60 Y999.00 Z-200.04 A400.00 B400.00 C250.00 Q42 (57 char).