Man-in-the-Middle Jog Pendant: Two Parts Make Easier Dev Work

In a project, repetitive tasks that break the flow of development work are incredibly tiresome and even simple automation can make a world of difference. [Simon Merrett] ran into exactly this while testing different stepper motors in a strain-wave gear project. The system that drives the motor accepts G-Code, but he got fed up with the overhead needed just to make a stepper rotate for a bit on demand. His solution? A grbl man-in-the-middle jog pendant that consists of not much more than a rotary encoder and an Arduino Nano. The unit dutifully passes through any commands received from a host controller, but if the encoder knob is turned it sends custom G-Code allowing [Simon] to dial in a bit acceleration-controlled motor rotation on demand. A brief demo video is below, which gives an idea of how much easier it is to focus on the nuts-and-bolts end of hardware when some simple motor movement is just a knob twist away.

[Simon]’s jog pendant moves a single motor which is exactly what he needs to ease development of his 3D printed strain-wave gear using a timing belt, but it could be programmed with any G-Code at all. Speaking of DIY jog pendants for CNC machines, don’t forget this wireless one made from an Atari 2600 joystick that jogs a plasma cutter in X and Y, and zeroes it with a push of the button.

7 thoughts on “Man-in-the-Middle Jog Pendant: Two Parts Make Easier Dev Work

  1. I’ve often thought about a tool like this for my 3D printer, perhaps even going as far as using a game controller to control the axes on demand. My only worry is that the “official” host might run into problems if you don’t restore the original position before it sends new commands.

    If it uses relative commands, it might send the print head/tool head somewhere outside the work envelope… if it uses absolute commands, any fine tuning you may have done with the MITM jog dial are immediately lost.

    Specifically I have the need for something like this to adjust the z position of the hot end live, while printing down the first layer. I don’t have any fancy auto-leveling features yet :(

    1. That’s funny. I just found one of these joystick/button things: in my junk drawer last night when I was looking for something else. I had a similar thought, this would be great mounted to my printer so that I don’t have to navigate all those Marlin menus every time I want to manually move it.

      Of course I would need a couple more buttons for the third axis (probably the Z one).

      It could even have a separate mode for plotting. When the pen is attached instead of the extruder then the up/down buttons become a pen up/pen down toggle for manual plotting.

      And now.. this is here. Maybe it’s a sign that it’s just time to make this happen.

  2. An old technique, from simple bang-bang in-line switches to introduce step-response stimulus output data on early analog fly-by-wire systems to more sophisticated digital black-boxes to modify human input in detailed ways. The sophisticated in-line stimulus transponders are quite useful for testing systems where you have no access to down-stream black-boxes because of proprietary and/or secrecy reasons. Secure control systems are encrypted to specifically prevent this sort of thing.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.