<p>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.</p>
<p>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.</p>
<p>What is the best way to do this?</p>

[{'answer_id': 7724, 'author': 'Tal', 'author_id': 7384, 'author_profile': 'https://3dprinting.stackexchange.com/users/7384', 'pm_score': 2, 'selected': False, 'text': '<p>One option would be to have your printer controlled by an Octoprint server.  You would then use the <a href="https://github.com/chunkysteveo/OctoPrintAPI" rel="nofollow noreferrer">Octoprint Api plugin</a> 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 (<a href="http://docs.octoprint.org/en/master/api/printer.html#send-an-arbitrary-command-to-the-printer" rel="nofollow noreferrer">see here</a>).  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.</p>\n'}, {'answer_id': 13930, 'author': 'Simon Dyer', 'author_id': 21672, 'author_profile': 'https://3dprinting.stackexchange.com/users/21672', 'pm_score': 0, 'selected': False, 'text': "<p>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?</p>\n"}]
['https://3dprinting.stackexchange.com/questions/7713', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/13829/']