You ask, why should I do this?
So you can control your Snapmaker 2.0 with G-Code via Arduino or other microcontrollers. Use joysticks, buttons, rotary controllers or what you prefer for customized actions like for instance move to center for cnc or laser, …
**Attention! **
Note that this modification will void your warranty. Your controller or your Snapmaker may be damaged. Only recreate it at your own risk! I accept no liability for damage! I bought a second controller for 80 euros so that I wouldn’t destroy my original.
You need:
a good soldering station
3D printer (you obviously have one)
1.6 mm hex screw driver
Metal drill bits 1.6mm, 2.5mm
Thread cutter M2
pin header and sockets
experimental pcb
2x M2 countersunk screws
Micro Controller like Arduino
Your skills:
you have to be very good at soldering
Arduino coding
Maker skills at all
Cool mod. And the answer may be: “just because you can”. But I have one question: why not use the usb connector? (which is how for example octoprint etc connect to it)
For example, I can control the axes using a joystick , rotary encoder or fader . ↔:arrow_up_down:
I can start functions such as tool centering, homing or home setting with a key .
All without a computer or touchscreen.
For my Snapmaker 1 (original) I had built a small terminal with a joystick for XYZ control and a rotary knob for adjusting the speed and switching to extra small microsteps for setting CNC tools (positioning the milling cutter on the material surface). I also used the knob to retrofit filament load and unload on the SM1. That wasn’t the case with the original Snapmaker.
Then I assigned buttons for homing and setting the zero point and for center alignment of the CNC and laser head. At Laser Center, the laser also moves to the optimal focus height.
I will soon be building a terminal like this for my 2.0.
Yes, I understand all that. However you do all the conversions to gcode on your arduino and then send that to the controller uart.
You could use the USB port of the arduino to send those as well on the USB port of the controller. Exactly same functionality, but no soldering. You could even do it wireless with an esp32. You can send gcode commands over api.
Biggest issue with this approach (as is mentioned in the post) is that I have to create a “serial bridge” on my PC to forward the serial data from the encoder unit to the Snapmaker. The Snapmaker will not initiate a serial connection on its own, and the board I used to make it (RPi Pico I think) did not have a USB host capabilities at the time, it could only act as a USB device.
With the right microcontroller it should be possible to initiate a serial connection over USB. Not sure if Arduino will work though, from a quick glance at the Arduino website you’ll need either an Arduino Due board or a USB host shield.
I thought something like this will be the case. USB host shield seems straightforward enough, I will give it a try later - I was thinking about manual control of the rotary module and adding “space mouse” type of device for x,y,z axis could be also fun … thanks for the info
impressive. Did you modify any part of the firmware? If so, I would like to know which part you modified. I am also curious as to how the snapmaker receives the signal sent from the Arduino and processes the G-code.
Could you load custom firmware to the controller this way? This might solve the Klipper issue for some that have been looking into it. We can easily find all the pinouts and other specs but without a bootloader option we’ve been out of luck on that development.