Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



26 Commits

Repository files navigation


Version Information

Version 1.0-RC.1

What is it?

This repository contains the hardware schematics and software code needed to build a jogwheel based pendant controller to interface to Marlin / Arduino controlled 3D printers & CNCs

The pendant uses an Arduino nano controller to decode data received from a CNC jogwheel / pulse encoder and send it to the Printer / CNC.

The nano mimics an analog joystick and so leverages the new analog joystick functionality available from Marlin 2.0.0. This limits the move queue to prevent overrun.

So why not just use the joystick?

The joystick is a very good control method and works great on both 3D printers and CNCs, however the traditional control input for a CNC machine is a jogwheel and axis selector switch, which gives a very different operating experience.

This method allows existing traditional jogwheel setups to be utilised when retrofitting as well as using universally and commonly available MPG pendant / handwheel controls.


  • DeeEmm AKA Michael Percy

Project Goals

Universal pendant / jogwheel / handwheel interface that interfaces to standard Marlin codebase using the joystick function

Project Status

Usage / Getting started

  • Compile and upload to an Arduino nano
  • Connect wiring according to pin connections in configuration.h
  • Connect X, Y, Z and Enable outputs to your CNC / 3D printer in accordance with Marlin instructions.
  • Enable joystick control in Marlin
  • Fine tune speed values as necessary
  • Speed can be set as X1 / X10 / X100 / Adaptive.
  • Adaptive speed mode moves at speed proportional to rotation speed of encoder.

Here's a video of it in operation

Rotary encoder jog wheel


  • Arduino Nano
  • 3 off MPC4151 Voltage Controlled Resistors (10kohm)
  • X,Y,Z selector switch
  • 1x,10x,100x selector switch
  • Encoder jogwheel
  • OR MPG jogwheel pendant


This project is released under the GPLV3 license. For details on usage please refer to the license file included with this project

Further Information



A jogwheel based pendant controller to interface to Marlin / Arduino controlled 3D printers & CNCs







No packages published