Replies: 2 comments 3 replies
-
The OpenPNP plugin has M-codes for adjusting acceleration (and jerk if enabled - untested for now). I have made two attempts at jogging in the encoder plugin, this for handwheels connected to the controller. Other Grbl MPG pendant implementations may have solved the issue of generating smooth movements - there are a few floating around. |
Beta Was this translation helpful? Give feedback.
-
I've got a couple of jogging implementations in my Control Panel plugin. I've tried to smooth out the acceleration for keypad jogging, but haven't felt the need for the encoder. When you say jerky, are you referring to unstable/wavering acceleration, rather than the initial jerk as it starts moving? If the former, in my experience this happened when my individual jog commands were either too small a distance, or too fast a feed rate, for the interval they were delivered at.. My understanding is that for a planned movement, grblHAL will have a trapezoidal ramp up and down at the start and end. I think the trick for jogging is to send the requests at a rate that prevents it from getting to this deceleration phase before the next movement is added to the planner? That might not technically be a very good explanation, but is the way I visualise it - keeping some future moves fed to the planner - so that movement just continues at the requested speed. My implementation sends jog requests at 100ms intervals by default, and I have plugin settings for jog speed & distance, so that the keypad jogging can be tuned to match machine performance. As I say, I never felt the need to do this for the encoder jog, but that might just be down to my usage, where I tend to use the keypad for coarse control, and the encoder just for fine positioning.. Btw, you can send a |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm currently finding some severe jerking whatever I try on my handwheel control algorithm.
I'm taking the clicks from a mouse scrollwheel event, detected from tkinter in python. (my handwheel is an old mouse board with 200step/rev cnc handwheel soldered instead of the scrollwheel encoder)
I've tried 4 ways:
$J=G1 G91 X0.1 F600
(or using G53) and monitoring the planner buffer state, to avoid filling too far and causing a long overshoot when I stop winding. Result is jerky and unreliable running at low speed, and notable overshoot when I stop winding.\x85
andG4 P0
and then a?
and repeatedly check the serial input buffer until the status returns to idle before I can send any more jog commands. Somehow I get recursion errorsI have found, that if I set the x axis acceleration fairly low (20mm/s/s) not the default (40mm/s/s) then it jerks far less, but I want the faster acceleration when I run on auto mode, and don't want to constantly be altering the GRBLHal parameters. I'd prefer an inertia feel to a jerky feel, particularly as the inertia only comes when I wind the handwheel too fast for the usb communication to keep up with. I presume Fanuc and Haas manage it by having closed loop motors and seriously fast axis topspeed and no usb overheads?
Equally, if someone else has successfully implemented a non jerky handwheel then how does the logic work?
Beta Was this translation helpful? Give feedback.
All reactions