Serial protocol: Need for speed

Hi, I want my uArm move faster.
I am making a uArm Swift pro bot to play mobile game. Here is a sample video:

And here is a live demo ( not 7x24 available )

I am using python serial protocol to control the uArm.
I use “#xx G0 Xxx Yxx Zxx Fxx” to move the arm.
The arm move fine when F=20000, but I want faster.
However, the position accuracy drop a lot when F=40000.

Here are my question:

  • What is the maximum value of F?
  • The G0 command seems move the arm in straight line. However, the uArm natural move in arc line. Keeping moving straight may loss speed. I dont need to move straight line, just want to move as quick as possible. Is any other way to move faster? I dont mind calculate the step motor angle by myself. (Command G2202 move only 1 step motor. I want to move all 3 step motor together, and output “$xx ok” when the move done ).

(The first sample video uArm sometime pause since of my program bug. The second live video should move more smoothly. But I still want to be faster.)


Hi @luzi82,

I saw your post on FB group discussion (wonderful, by the way).

About your second question, instead of “G0” command, how about using gcode for polar coordinates, as in"#n G2201 S100 R90 H80 F1000\n"? I’ve been trying to move Swift Pro with G0 command (gcode over serial terminal ) as well and also notice it moving in straight lines along X and Y axes. Maybe using G2201 can get you to a point faster?

About your first question, I’d also like to ask uFactory if they could publish minimum and maximum boundaries of X, Y, Z, F, S, R, H and other parameters in the quick start guide. I thought F could only go as far as eleven…

1 Like

Yeah we do want to add the proper range of each parameter. But since different end-effector tool has the different offset of parameter, it 's hard to give a fixed value of XYZ. For the speed F (0~30000), 40000 is too fast for the arm. What’s more you could also adjust the acceleration by using “M204 P300 T300” (default M204 P200 T200). Thanks, and we would add these into the latest guide.


To Ebto,

Thank you.

Sadly, I have tried the G2201 and it still move in a straight line.
According to the firmware source code, it seems convert the SRH value into XYZ, and then move the arm in straight line.

The command I used to test:
G2201 S270 R60 H100 F1000
G2201 S270 R120 H100 F1000

To Tony,

Thank you very much!
My arm now move fast like a monster!

1 Like

hi tony,
what are the specifications for the acceleration command?
what is PXXX, what is TXXX, and which values does it take (min-max)?

  • M204: Set Accelerations in units/sec^2 (M204 P1200 R3000 T3000)
  • P = Printing moves
  • R = Retract only (no X, Y, Z) moves
  • T = Travel (non printing) moves

The parameters of P R T should be around 100-300. If it’s too big it will be vibratory. Thanks