Configuring Z-Axis confusion

I've replaced the electronics on an old dead Cartesian printer and am doing initial configuration on it.  (8-bit Atmega based controller, MKS Gen1.2)  X and Y axis configuration went as expected (Small tweaks to steps-per-mm, but my Z axis needs significantly more to get it to work, and I'm having trouble with what I need to change.)
Main questions first, then I'll add details after the main questions:
  1. I'm trying to use M-codes from the terminal to change/test my changes.   (Making changes via configuration.h, recompiling, uploading and then doing M502 & M500 takes way too long.)  However, I'm not 100% positive I am doing it correctly.  When I issue an M command (M92, M201, M202, M203) do they take effect immediately, or do I have to issue another command to apply the changes?  Is there a command to get the values the firmware has in effect for these values?
  2. I'm not 100% of the relationship between F words, steps-per-unit, acceleration and max feedrates, and which values actually get used in which situation.  I thought steps-per-unit for a threaded rod Z-axis were supposed to be:  motor-steps-per-revolution * TPI * microsteppings / 25.4  Additionally, I thought that once Max-feedrate was set, the firmware would ignore higher feed-rate requests and cap the speed to the maximum feedrate.  (IOW, I though if max feedrate was set via M203 to 80, and I then issued a G1 Z10 F1000, it would act as though I had issued a G1 Z10 F80   Am I wrong?)
  3. I'm unclear on what the maximum steps/min the firmware can reliably send to steppers, and how double stepping or quad stepping impact this.  Although my basic Nema 17 stepper probably has a max speed slower than Repetier's max step speed, I want to rule that out as the issue.
  • Initial configuration resulted in the Z-Axis getting step signals faster than it could execute and the motor would just squeal in-place and get warm. After a few tweaks, I determined moving at F85 or slower worked, and above that, I would hear steps being missed.  This seemed to be true regardless of what I set for Steps-per-unit.  (See #1)
  • I haven't figured out why similar commands give quite different results.  I used the LCD Position menu, the Repetier host manual Control buttons, manual G1 commands, and their "Home Z" equivalents to test the axis.  Several times 1-2 of the three would work correctly, and 1-2 would not.  Common scenario would be that I'd get a working feedrate for the Z-axis, set the homing feedrate to about 25% of that feedrate, yet when I would Home, I'd just get the high-pitched squeal the stepper getting steps faster than it can handle. (See #1 and #2 above)
  • I wanted to test if lower acceleration values would help things.  However, I couldn't seem to see any differences with max acceleration values ranging from 1 to 1000 mm/s^2.  (See #1 above)  Shouldn't the stepper be able to hit higher speeds with a controlled acceleration vs. trying to go from stopped to high-speed?  (E.G. A motor might just squeal if its speed went from 0 to max instantly, but might hit that speed easily if the speed increase was more gradual, right?)
At this point I'm frustrated and losing confidence and am not sure where to go to set up this Z-axis.  The answer could be right in front of me, I need to at least get to the point where the stepper is reliably and consistently moving when given move commands.  (IOW, a configuration that will not send step signals faster than the stepper can execute)


  • Use repetier host or server. Both have eeprom editor to change steps per mm/max feedrate etc. 

    There is a maximum feedrate for z so higher F values are reduced to that. Equation might be correct if it is in inches but I think TPI must be 1/TPI depending on what it means. I only use metric units but recognice 25.4 as a conversion. Host has a computation tool for steps per mm on threads as well.

    Z acceleration should be 50-100 normally.
  • Repetier said:
    Equation might be correct if it is in inches but I think TPI must be 1/TPI depending on what it means. I only use metric units but recognice 25.4 as a conversion. 
    TPI = Threads Per Inch, Metric threads usually do mm/thread, which is 1/TPI/25.4

    How does the LCD UI determine the feedrate for its manual moves?  Is it limited by the max feedrate?  (It didn't appear to be limited, but I may have been confused.)
  • Anything is limited to max feedrates. I think it is using homing speeds for normal position changes.
  • Thanks!  I think I've got my Z--axis working now.  When I started, my max feedrate, acceleration and jerk values were too high. 

    Adjusting the max feedrate and acceleration did a lot, but until I dropped the jerk value, the stepper motor would sporadically not start and just squeal.

    Hopefully this helps someone in the future.
Sign In or Register to comment.