rotary axis scaling not making sense

From the original Synthetos forum (2011–2025)

Started by matthewdc on in TinyG Support. 8 replies, last activity Oct 18, 2017.

#

I have a rotary stage with a manual knob that I was able to determine the gear ratio ie one stepper revolution is 2 degrees of stage rotation. I've verified the stepper is 1.8 per step.
But the moves are WAY off. When I send the command G1 F100 A1 it moves more than 360 degrees instead of one degree. I've determined that G1 A.007 gives me about one stepper revolution.
What am I doing wrong?
samples of my setup below.
thanks
Matt

;STEP ANGLE (physical step size built into a stepper motor)
$1sa=1.8 ;degrees
$2sa=1.8
$3sa=1.8

;TRAVEL PER REVOLUTION (accounts for gearing or drive shaft pitch)
$1tr=4 ; stage moves 4mm per revolution of stepper motor
$2tr=4
$3tr=2 ; degrees per revolution Newport rotary stage model #URM80APP

;MICROSTEPS (resolution of in-between steps, controlled by the electronics)
$1mi=8 ; option is between 1, 2, 4, 8, or 16
$2mi=8
$3mi=8

Staff #

Not that it should really matter for this discussion, are we discussing a tinyG or G2core machine here? I ask because tinyG does not support $_mi=16, but you are not using $_mi=16 either.
Also, I will assume you are using the onboard tinyG drivers, or a Gshield/DUE hardware setup. If Gshield, the microstepping pins are all open, thus $_mi=8

Also assuming from what you show that $3ma=3, mapping motor 3 to A axis

Can you verify assumptions so far, or describe what is different?

Can you provide all the motor 3 and all the A axis parameters?
That would be results of $3 command and $a command
Or, Dump all parameters $$ , copy them to a Cloud drive and provide a URL for viewing.

#

Your assumptions are correct.
Here is the dump file.
Thanks for your help!
capture file

Staff #

OOps, the link you posted points to this thread, not your Parameters dump

#

wrong link? let's try again here

Staff #

To be honest, first person I have seen using rotary axis limits.
This Link https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#xtn-xtm---travel-minimum-travel-maximum says setting min and max to same value means "no limits, which may explain behavior in your other post

You have both motor 3 and motor 4 mapped to A axis and enabled.
Is this really true?. I'm not sure it would make a difference if M4 were not connected to anything.

You have Motor 3 mapped to A axis and A axis in radius mode, Radius = 0.1989 deg, which is interpreted as move 1/.1989 degrees when G1 A1 is sent. Re-read how $3tr =2 is interpreted for a rotary axis.
https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#1tr---travel-per-revolution
I am not 100% clear if your movement described is rotary stepper or rotary output after gear reduction

When I read

When I send the command G1 F100 A1 it moves more than 360 degrees instead of one degree.

I sort of think you should be in $aam=1, so that G1 A1 means 1 degree of movement requested.

#

thanks cmcgrath5035, you have pointed out some critical points.
I thought I had the axis modes configured but I can't find them in my config file!
The rotary stage should be in mode 2 and act simply like the linear stages.
Also, the report may show everything but it doesn't show what I have failed to address. I will have to be more explicit about that fourth motor I'm not using, for example.
thanks again!

Staff #

A axis parameters are displayed, in cli mode, with $a command.

I don't understand your comment

"The rotary stage should be in mode 2 and act simply like the linear stages."

Axis modes are defined here: https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#xam---axis-mode

Gcode movements for rotational axes are in degrees, G1 A3 is a 3 degree movement in standard mode. $aam=1. Use $3tr (in your case, if A axis stepper is connected to motor 3) to implement gearing ratio from stepper to output shaft.
The Gcode specifies movement of the output shaft.

If you prefer to create a custom Gcode stream that specifies linear movement, e.g. G1 A5 to move the A axis 5mm , then you can set $aam=3 (radius mode) and parameter $ara is set based on this definition https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#ara---radius-value

I don't know of any 'standard' tool chain that would generate that Gcode for you

#

crapola, where is my brain?
I meant mode 1. It's all working now! Sorry about the confusion.
thanks

This topic is from the original forum (October 2017). Your reply starts a new discussion linked to it.

Reply

Different problem? Ask a new question

Back to TinyG Support or latest activity.