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:
- 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?
- 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?)
- 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.
Details:
- 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)
Comments