Gcode Sender (editable 32 button remote control for your printer/CNC)

by Lay3rWorks, published

Gcode Sender (editable 32 button remote control for your printer/CNC) by Lay3rWorks Feb 13, 2017
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

1860Views 313Downloads Found in 3D Printer Accessories


Note: A new wireless version can be found here: http://www.thingiverse.com/thing:2313781. Wireless version uses serial bluetooth modules.

This project is very much like using Pronterface or Repetier Host manual control to send gcode instructions to your printer while connected to the computer via USB cable, but instead using an Arduino Nano connected to a small keypad to send the Gcode scripts/macros.

Gcode sender is intended to work for 3D printers as well as a CNC mills and laser engravers. Any machine that uses gcode.

This setup allows one to send highly customized gcode scripts/macros to the printer with a push of a button. I've tested all of the scripts I included in the sketch. Any one of them can be replaced or edited.

In the sketch, i tired to include a lot of comments to make it easier to tweak the code to suit your own needs.

Communication between Gcode Sender and printer is through serial communication (Tx, Rx). On RAMPS style boards the AUX-1 port can be used. Specifics on wiring can be found in the Wiring.zip file. Be sure that Tx out wire on the Gcode Sender is connected to Rx on printer and Rx is connected to Tx. In Repetier firmware, I had to enable Bluetooth serial port to make use of the AUX-1 port.

The STLs print without support. NOTE: The STLs were designed to print with a low infill. The infill is basically the support for the body to keep its shape while printing. Keep the infill low to not waste filament.

Once assembled the Arduino Nano board is hidden inside the STL body in the cavity under the keypads. The kaypads have a sticky backing that is attached to the insert STL. The insert can be later removed (a print removal tools works great) if you need to reprogram the Nano at any time.

Fusion 360 file provided to further tweak the Keypad holder parts. PLEASE DO let me know if you create alternative designs for the Gcode Sender.


  • (2x) 16 key 4x4 membrane keypad.
  • (1x) Arduino Nano Development Board (it has enough i/o pins for two keypads without any additional shields). 1 keypad can be readily used instead of two.
  • (1x) Desired length of 4 wire cable (I used a short piece of Cat5 cable and used the 4 twisted pairs since I had it readily available). To connect Gcode sender to Printer.
  • (2x) short 8-pin jumper cables to connect keypads to the Arduino nano board.

Left keypad Explained:

  • The idea is to first select which Axis to work with (e.g. x,y,z,e) then select the movement resolution amount (e.g. 0.1, 1, 10, etc), then the movement direction button (+ or -). Movement direction button can be held down to continue movement in that direction.

Big shout out to http://www.thingiverse.com/Slavulj who had a hidden gem on Thingiverse. His design http://www.thingiverse.com/thing:1563410 was the inspiration for this project.

Print Settings


HICTOP Prusa i3









How I Designed This

STL Designed in Fusion360. Shetch is an Arduino sketch.

More from 3D Printer Accessories

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Is it work with Marlin firmware?

Simple (obvious) question - when using this device, the printer cannot be connected to a host computer (via USB) at the same time, correct?

I am pretty sure you can use both at the same time. I can definitely say that I print all the time with my controller on while my printer is printing from an SD card attached to the printer LCD screen. In fact, with the controller, you can "insert" G-code right in the middle of a print as the gcode is streaming from the SD card. FOr example, I can pause a print with the controller while a print is in process. I don't see why a USB print would be any different, but haven't tested it.

What about arduino code/scematics?

I'm not sure exactly what the question is. There are zip files included; one with the Arduino Sketch (code/program) and another zip with several wiring diagrams. Would you be able to elaborate on what you were hoping to see?