rotary axis scaling not making sense

Home Forums TinyG TinyG Support rotary axis scaling not making sense

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #10617
    matthewdc
    Member

    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

    #10618
    cmcgrath5035
    Moderator

    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.

    #10620
    matthewdc
    Member

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

    #10622
    cmcgrath5035
    Moderator

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

    #10624
    matthewdc
    Member

    wrong link? let’s try again here

    #10626
    cmcgrath5035
    Moderator

    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.

    • This reply was modified 7 years, 1 month ago by cmcgrath5035.
    #10629
    matthewdc
    Member

    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!

    #10630
    cmcgrath5035
    Moderator

    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

    #10632
    matthewdc
    Member

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

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.