Weird behavior of the axis

uArm Serial No.:

Firmware Version: 3.1.4

Operation System: Win10

uArm Controlling Method: Arduino IDE / vvvv serial port

So it worked at the beginning with the uarm software then we started sending some gcode with a custom app, then the behavior chaged as following:

x axis moves only on positive values
z axis moves correctly on both + and - values
y axis moves 180 degrees from -1 to 1 (like polar coords)

the command is G0 Xxxx Yxxxx Zxxxx F5000

We tried to flash the firmware but the behavior is consistent.
Any idea? Thanks

uArm User Facebook Group
Contact Us:
English Channel

I had this issue too but it suddenly disappeared and I couldn’t recreate it.

What I found was that the arm actually used METERS for the Y position, so with a value of 1 or 0.5 it would go off and do a rotational motion (probably because the computation went off) but if I fed it the Y values divided by 1000 it worked properly.

But as said, it suddenly didn’t happen anymore although the day before I restarted the arm, the software and the computer and it happened reliably… My firmware is and was 3.1.9 though (according to the uArmStudio panel…).

See this github issue: G0 and G1 command use meters for Y value · Issue #3 · uArm-Developer/SwiftProForArduino · GitHub

This totally makes sense as the movement along the Y angle was not linear… but what about the negative movement (away from the body) of the X axis? I can t move it past 0.

Hi @Simone_Marin
Could you please send us the GCode commands you sent to uArm? So we can test it.

Hallo, I ve written them on the post:

G0 Xxxx Yyyy Zzzz F5000 (then a line feed)

G0 X-30 Y0 Z0 F5000 for example won’t do anything

Well did you try if it works in meters, did you divide the Y values by 1000 and try it?

For the negative X movement it depends, are you sure you always did the movement from “zero”? Because if the calculated arm position is off because of that Y-bug that could result in the arm not moving to a certain spot (because it thinks its out of bounds).

So, the Y movement is always rotational, if I do G0 X0 Y0.1 Z0 it will only rotate on the left, not making a linear movement. I tried this with the Arduino IDE serial monitor. On the other side the uarm blockify app works as expected…

Some good news, I have installed the latest DEV GitHub - uArm-Developer/SwiftProForArduino at v3.1.18-dev
and done the calibration process. Now relative movements are working ok, as well as absolute movements, except for the X axis which always responds with a E22 (out of range) to G0.

EDIT: my bad as I ve misunderstood the position of X0 , so far so good. The issue was with the older firmware.

1 Like