Losing steps?

Home Forums TinyG TinyG Support Losing steps?

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #6696
    gp
    Member

    I have a TinyG driving a Shapeoko 2. Lately it’s been misbehaving in a subtle but incredibly annoying way: one of the two motors on the Y axis seems to be losing steps.

    Symptoms:
    1. One side of the Y axis lags the other one. This is most noticeable when the motors power off; the gantry jerks slightly as everything realigns. Also, cuts are not so nice. πŸ™‚
    2. The mechanical system appears solid — belts are equally tensioned, pulleys are anchored firmly, etc.
    3. If I gently hold the outside portion of the stepper motor spindle, I can feel one of the Y motors “lurch”. The other one moves very smoothly, like I would expect.
    4. I swapped motors between TinyG outputs. The problem appeared to follow the TinyG output, not the motor itself.

    This makes me wonder whether I have a failing driver? Any other ideas? Thanks for the help!

    #6697
    cmcgrath5035
    Moderator

    Strange behavior for sure.

    What tinyG FW build do you have installed?
    The most recent is 438.02.

    Have your tried turning the current pot all the way up on the “lurchy” interface, just to see if that makes a difference?

    #6698
    gp
    Member

    I am running 438.02 (via ChiliPeppr + SPJS 1.7). Actually, this reminds me that I was going to put a huge warning at the top of the firmware upgrade page to remind others (like myself :D) that upgrading your firmware blows away all your settings… now I have a backup. πŸ˜‰

    I have tuned the current pot on the jerky motor up to the limit, and it doesn’t seem to make any difference. The two motors had precisely balanced current beforehand, and that used to work great.

    It’s pretty baffling.

    #6699
    cmcgrath5035
    Moderator

    Yes, a FW upgrade does reset all parameters.
    What method+are you using for backup and restore of parameters?
    Your technique may be helpful to others.

    Have you tried to run your Symptom #3 test (gently holding motor…) from Coolterm and compared to same move via Chilipeppr?
    Your suspicion of a driver device does seem logical, but seems a lot of issues these days defy logic,

    I see on the Chilipeppr forum continue tweaking of buffer management techniques – are you using the latest Chilipeppr implementation?

    #6700
    gp
    Member

    Saving configuration parameters: I just wrote a small script to take the output of $$ and transform it into the relevant set commands — no big deal. The hard part is remembering to run it!

    Chilipeppr vs Coolterm: No change, which is what I expect. Once the TinyG gets G1 Y100 F150 the sender is out of the picture….

    #6701
    cmcgrath5035
    Moderator

    Saving configuration parameters: I just wrote a small script to take the output of $$ and transform it into the relevant set commands β€” no big deal. The hard part is remembering to run it!

    So your list of ‘set commands’ is driven by the parameters returned by $$ ?
    Great idea, lots of new parameters being intoduced.
    Care to share script with others?
    Config management is a big issue.

    Chilipeppr vs Coolterm: No change, which is what I expect. Once the TinyG gets G1 Y100 F150 the sender is out of the picture….

    Expectation was same here, but had to ask.
    Guess you need to ping the Synthetos folks.

    #6709
    alden
    Member

    It sounds like it might be a driver problem. Are the currents set the same, and do you notice any difference if you change them? Also, does it vary with speed – like G1 f100 through G1 f1000 through G0?

    #6710
    gp
    Member

    The currents set the same, and changing the current doesn’t seem to make any difference.

    Motor 1 is jerky regardless of feed velocity: I’ve tried F50 through about F500 or so. I have G0 turned up pretty high (32500 mm/min), so it’s much harder to feel the motor spindle moving πŸ™‚ but I am pretty sure it’s still getting out of sync. The reason why is that once the motors power off, the entire gantry jerks slightly (0.1-1mm!). I think this is the machine tension realigning the gantry after the motors have drifted out of alignment.

    I have paid a lot of attention to squaring up the machine at rest, and I’m confident that it is about as square as you can get a Shapeoko.

    #6711
    gp
    Member

    I’m not near the machine that drives the TinyG today, but I happened to have a copy of an old TinyG config around, so I just rewrote the script. It’s very short:

    
    #!/usr/bin/env perl
    # Usage:
    #   TinyG_config_mangler.pl < [input_file]
    # Reads a TinyG configuration obtained via $$ and transforms it into
    # set commands. Perhaps useful if you want to back up your config in a way
    # that is easy to restore later on.
    use strict;
    
    # Config words to ignore
    my @ignore_words = qw/fb fv hp hw id hv/;
    my %ignore_map;
    @ignore_map{@ignore_words} = ();
    
    while (<STDIN>) {
    	next unless m/^\[([a-z0-9]+)\]\s+.+\s+([\d\.]+)\s+.+$/ or exists $ignore_map{$1};
    	print "\$$1=$2\n";
    }
    

    Here’s how it runs on my OS X machine:

    
    gp@cheetah:~ % cat tinyg_config_sample.txt 
    [1ma] m1 map to axis 0 [0=X,1=Y,2=Z...]
    [1sa] m1 step angle 1.800 deg
    [1tr] m1 travel per revolution 120.0000 mm
    [1mi] m1 microsteps 8 [1,2,4,8]
    [1po] m1 polarity 0 [0=normal,1=reverse]
    [1pm] m1 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
    gp@cheetah:~ % ./TinyG_config_mangler.pl <tinyg_config_sample.txt 
    $1ma=0
    $1sa=1.800
    $1tr=120.0000
    $1mi=8
    $1po=0
    $1pm=2
    

    Hope someone finds it useful! Maybe I should put it on the Wiki or something?

    As a disclaimer: it’s pretty fragile, and it would be easy for the Synthetos folks to accidentally create a text string that would break that regex. Please use with caution! No warranty, might crash your mill or burn your eye out with your laser cutter, etc.

    I think the right way to do it is to change the TinyG firmware to support an “output appropriate set commands” option in addition to $$. I’ll fork the code and see if I can find a relatively easy way to implement that.

    • This reply was modified 10 years, 2 months ago by gp.
    #6716
    alden
    Member

    I had a thought. What if the Y axes actually move different distances. Perhaps the belts are under different tension and are stretched differently. An experiment would be to disable one of the Y motors and run a move and measure it. Then do the other one and see if you have the exact same travel. Just a thought that occurred to me when I was tightening up my Shapeoko2.

    #6717
    gp
    Member

    Good idea, but the belts are at equal tension, as determined by plucking them like guitar strings β€” the best way to “tune” your Shapeoko. πŸ™‚ (It also wouldn’t explain the jerky motion on only one side.)

    #6727
    alden
    Member

    If you isolate the questionable axis and just drive a motor does it have these problems? I’m at a loss on this one. I wonder if it’s a driver problem.

    #6728
    flux
    Member

    I too own a Shapeoko 2, so I must ask πŸ™‚ : have you checked if the belts are ok? Not just that they are tight but that they are not broken. I once wondered why my X axis was not keeping its position and turned out that I had broken the belt. And I’ve done it to my Y axis as well.

    I noticed that the broken belts were dark from the broken area (some metal could be seen) and when placed tooth-by-tooth with a working condition belt, the teeth did not line up.

    I’ve changed the belts maybe twice so far, I guess it’s its way of telling that I can reduce motor current..

    #6787
    gp
    Member

    Replacing the TinyG resolved the issue, so I suspect it was in fact a driver problem.

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