6

I want to hook up an Arduino to my Creality printer running Marlin firmware, such that I can have a few physical buttons mounted on the machine that will execute commands such as preheat, home, disable steppers, and so on, so that I don't have to navigate through the clunky LCD screen.

Ideally it would work in addition to the normal LCD and serial functionality, so it would not impede me from using Ultimaker Cura to print via USB, etc.

What is the best way to do this?

0scar
  • 32,029
  • 10
  • 59
  • 135
cds333
  • 677
  • 2
  • 9
  • 17

2 Answers2

4

One option would be to have your printer controlled by an Octoprint server. You would then use the Octoprint Api plugin to use your arduino to send commands to octoprint - and from there, your printer. Octoprint has a fairly fully-featured rest api that allows you to send arbitrary GCODE to your printer (see here). You would then hook up your buttons to some code that sends the gcode commands to the printer when pressed. It's certainly not as simple as installing a plugin - you'll have to write some interface code, but it looks like those APIs should be able to do what you want, without interfering with the standard controls at all.

Tal
  • 328
  • 1
  • 9
  • Thanks, I will definitely look into that ................................................................................................................................................... Would there be any way to do it without a raspberry pi? Like using the Arduino to send serial commands the same way we do with the serial console in the Arduino IDE? – cds333 Dec 24 '18 at 16:22
  • Yeah after looking into that I would not want to use octoprint. There are still way too many bugs. – cds333 May 26 '19 at 17:05
0

There's already Arduino inside the printer (to be precise: the printer board with spare pins). Im sure its possible to hook up a switch then change firmware to send G-codes; 1 pin per series of commands?

0scar
  • 32,029
  • 10
  • 59
  • 135