Manual joystick control fro MPCNC

Dear all,


during the last few days, I have developed and worked on a solution to easily home, move, and zero the MPCNC (with RAMPS and Marlin, sorry, not working on GRBL) without going through the crappy display menu. I thought, a joystick would be nice! And in my son’s arduino megaset, guess what I found! :smiley:

Arduinoo Nanos are also on stock so let’s go!

From the way how the ESP3D project is controlling 3D printers I knew it was possible to directly write on the serial port. So I tried this with the Nano and it worked! Just snd G28 X Y to the AUX-1 port and the machine homes like as if I had used the menu button (except for it doesn’t say user coomand executed. Yes Ryan, there is a typo in the firmware! LOL! Search for coomand!)

So I soldered the nano together eith the joystick module, some switches and some LED on a breadboard, designed a shabby but functional case for it and gave it a try. I like it!


The full documentation including all sources (software, wiring diagram and OpenSCAD file) resides on Thingiverse.


Her you can see the controller in action:

Some pictures:

[attachment file=87440]
[attachment file=87441]
[attachment file=87442]
[attachment file=87443]
[attachment file=87444]


If you have any comments, please let me know.








Dear mpcnc-friends,


I have finally managed to find a software, that even I can do more or less proper diagrams and produce usable pcb-files with (Easyeda) ! :smiley:

So here is a small teaser, what’s coming (except from winter).

As soon as i have finished a usable case design (i tend to forget about tolerances, which increases development time and junk pile), i will update the Thingiverse files including the gerber-files in case you want to make your own pcbs.

[attachment file=120992] [attachment file=120993] [attachment file=120994]








That’s neat, I haven’t see this thread before!

Do you still have the link for the documentation, I did not see it in the first post. I’d really like to build one, it seems pretty convenient and easy to build!

1 Like

Link to Thingiverse:

Case is printing at the moment and I hope, everything fits.

[attachment file=121115]

I asume, I will send the update tomorrow.




1 Like

Thanks for the link and sorry for bothering you with it, I actually found that the link was on the youtube page right after I posted.

So I made a quick and dirty prototype to give it a test:

[attachment file=121165]

It worked very well, so that’s great!

I think I will make a few mods to it, like having separate controls for the Z and XY, maybe a potentiometer and a screen to set the speeds, an emergency stop, some stuff like that. And also design a casing.

Thanks a lot for the inspiration !!

Hi Armin,

I made a new design for your case, if you want to see. It is a bit different since it uses two joysticks, but maybe it could be interesting for you!

see here:

I’ll test fit everything this week and tell you how it turns out to work, then I’ll release the design so you can use it if you want :slight_smile:

[attachment file=“CNC controller Assembly 1 - Google Chrome.jpg”]

1 Like

Ended up building the thing!

So here is how it looks like:

The insides:

It seems to work perfectly! I can now move all axis, X and Y are on the left, Z and Extruder on the right. Different speeds can be selected for each Joystick, I programmed 3 speeds because it’s enough for me but I guess it could be changed easily. The leds will display the selected speeds, green for 0.1mm, yellow for 1.0mm and red for 10mm.
It’s really conveninent and I found myself doing some semi manual milling on wood, moving in precise increments for doing simple shapes and a few pockets. Really fun and I’m sure I will use this sometimes for quicka and easy parts in wood or for quick surfacings (no need to design a 3D model, prepare all the paths, stuff like that).

Thanks a lot for your great work, working with your code was a breathe, it was very clear and simple to understand so it took me very little effort to mod it :slight_smile:

You can find all the files and 3D models here if you’re interested:

It’s a bit more ghetto than your PCB board with all this wiring mess, but I think the casing will be a bit more comfortable to the hands :wink: It is also extremely solid.

Thanks a lot for the inspiration!


Hi Armin, I recently put together my own version based on your and Dui’s work (for dual joysticks). Every once in a while when I am moving gantry around, I have a couple things that may occur. 1. The LCD will starts blinking and chirping. Have to reset to stop it. 2. when traveling, it will seem to stop responding, but in reality it is executing a bunch of very short moves, even though it is set to 10mm. I can tell it is still moving by feeling the steppers pulsing. Usually only in the X axis. Curious if you have seen this and might know what the cause is?

Hi all,

Stating for this I bring my improvement with embedded OLED
The screen OLED give machine position on the remote (right column) ,
But also give relativ mouvement (left column) given by the joystick and cumulate until RESET pressing both Joystick same time
Stepping selection pressing XY joystick for XY
Stepping selection by pression ZE joystick for ZE
Button 1 send XY Homing
Button 2 send Z homing Z
Button 3 give send RESET coordinate
Can also change FeedRate with button 4

Now the problem is …too much wire (but a least I can demonstrate this work GOOD)

So, I am thinking to design a launch a small batch of PCB to make it easy to do assembly
Anyone interested in contact me :slight_smile: