Topic: Hysteresis & Backlash Testing
After calibration, I figured I’d do some general maintenance and included a Hysteresis test.
I wrote a small G-code routine to position the extruder where I wanted it and looped it back and forth (same way I do it on my CNC mill) - this tests for hysteresis primarily due to backlash in gears, belts, rod slop…etc.
Note: I do not have print issues such as layers not being uniform and/ hanging off to the side like some folks have posted. If I did, the hysteresis would show that so, those having those issues may want to try this to verify the problem is in the machine/belt/gears and not the printing gcode or software (or bed slop).
The down side to the G-code approach is that XYZ’s firmware has hard-code to pre-heat (bed and nozzle) and does not implement the necessary M-codes to pause position, hold and turn off the temps. (I believe Repeater does implement them, per published info).
So, I tried testing by Jogging (thus eliminating wait time for temps and this approach has the bonus of positioning and pausing where I want.
Positioning was repeatable and without significant hysteresis (in both approaches). Photo’s attached from one of the Jog approach tests. Pay no attention to the numbers - they're not metric...
Commanded jog = 20mm, it went 19.43mm
Commanded jog (from previous point in opposite direction) = 10mm, it went 9.68mm
Repeated the above including back to Zero several times. At zero, the average delta max was 0.254mm (0.01") - that is the amount of hysteresis over a 20mm repeated sweep.
There is no ability to set motion speed when using the jog approach but, I don’t expect it to be much different at higher speeds (because the mass and acceleration/deccelleration are small and I set the speed to 5000 in the g-code).
The Jog routine for testing hysteresis is as follows:
Position a dial guage as far to left as possible
Jog the bed to a position that works for your clearance needs
Position X and Y so you can set the dial to Zero (or your preferred ref point*)
Jog the axis you’re testing using each of the distance settings (1mm, 10mm, 20mm) go back and forth and see if the dial returns to the set-point or if it’s off.
*Depending upon your dial guage, you may be able to set zero in mid-stroke of the dial's pusher.
Do the same for the other axis. No need to do the Z-axis as the bed position is constant during a layer build (ie, it doesn’t go up/down like a CNC mill).
This might help identify areas to tweak and improve printing…



Prusa i3 (two built from kits), 1 hacked DaVinci
Solidworks for models, Netfabb to repair, Repetier/Slic3r and Simplify3D


