Rotary encoder jumps >100 steps in opposite direction during Z-babystep use
While printing an object and trying to adjust the Z-babystep on a Mega/RAMPS 1.4 with the RepRapDiscount Full LCD, I am having a really hard time using the Z babystep function with the LCD rotary encoder. If I spin the dial very slowly, it mostly works but the Z babystepping is too slow to complete an adjustment within the first layer of even a medium sized object (1 click = 0.0025 mm). If I try to spin the dial faster, I can get it to slowly come up in 0.01 increments if the printer doesn't have too many moves queued up. But if there is a rapid set of movement commands being processed while I'm spinning the rotary encoder in the negative direction at a modest pace (say I've dialed down to -0.12mm and still dialing down), the Mega board suddenly interprets at the moment of rapid movement processing that I am turning the dial in the opposite direction at breakneck speed, and the Z babystep jumps from -0.12mm to +0.50 or even +1.5 or +2.0mm. One can imagine how maddening this is when trying to dial down toward the glass, and for the nozzle to instead jump way up by a mm or two.
I also experienced a firmware lockup during rapid rotary encoder dialing when a rapid set of motions were processed (say printing a small arc with retracts and rapid travel movements on either side). The LCD stop button did not reset the firmware like usual, I had to use the Mega board's reset button.
I know I can use the Z babystepping multiplicator (sic) to reduce the amount of rotary encoder spinning, however I still think it's a defect to jump hundreds of steps in any direction for a quarter turn of the encoder dial during rapid travel/extrude/retraction instructions. Perhaps a fix would be to ignore polling of the encoder when the user has enabled the dynamic encoder speed functionality during really rapid processing.
I'm using firmware 0.92.4 with this file.
Comments