grbl "Man in the middle" CNC jog pendant

A proof of concept ultra-low cost jog (and other gcode commands) control pendant for grbl CNCs. Concurrent with PC serial! DIY macros!

Similar projects worth following
I am testing steppers in the strainwave gear with timing belts project and a grbl breakout is an ideal way to achieve acceleration-controlled rotation to test the torque the gear can achieve.

I got fed up having to connect the grbl Arduino to e.g. Universal Gcode Sender just to make a single motor rotate a bit. So I asked if there's a way to "man in the middle" control the steppers on the Stack. Then I went away and this is what I have come up with to start with.

At the moment it's just for rotating a single stepper in a gearbox. But if you look at the code you'll see the approach would allow you to send any grbl command based on any input you can implement. 

There's no implementation of the proper jog commands yet, I'm using rapids and getting the results I need for my tests. However if you plan to use this in a CNC build I suggest you implement the proper jog commands so you can resume work easier. Also either don't trigger any inputs while the machine is being sent a gcode file!

The current version also tells the PC gcode sender what it told the grbl Arduino and prefixes it with a "P" for pendant:

Please go ahead and build on this to suit your needs. Add joysticks, axis selector rotary switches, reset and home buttons, coolant start/stop, laser on/off switches.

  • 1 × Arduino Nano (or other 328P version) In addition to the Arduino that is running grbl
  • 1 × 4 wires with dupont female connectors on one end Will be 5V, GND, Rx, Tx and connect to the grbl breakout header pins
  • 1 × Rotary encoder and dial/knob You choose. One where the pin order is COMMON, A, B works well with the Arduino Nano's adjacent GND, 2, 3 pins

  • 1
    Attach encoder

    Solder or connect it in some other way so that A and B are connected to digital 2 and 3 on the Arduino and the encoder common/ground pin is connected to Arduino ground/GND.

  • 2
    Attach wires

    We'll use the USB cable from the computer - check that your pendant Arduino uses the same connector as your grbl Arduino or change the cable.

    For the remaining four serial wires between the two Arduinos, you need to connect 5V and GND together. Then connect the grbl Arduino Tx to the pendant grbl softSerial Rx, probably digital pin 10. Do the same for grbl Rx to pendant softSerial Tx.

  • 3
    Upload the code to the pendant Arduino

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates