Update 6/3/2017: Updated the Arduino Sketch file to correct the feedrates of the axis movements. Now the feedrates of Z, Y, Z, E are set independently, especially the Extruder feedrate.
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 a programmable wireless bluetooth remote instead of a computer.
Note: Older wired version can be found here. http://www.thingiverse.com/thing:2105847
Remote is built up with an Arduino Nano connected to two small 16 button keypads (32 keys total) as well as a serial bluetooth adapter/interface. Each button can send a single line of gcode or a script of multiple lines.
ZIp file included containing the Arduino sketch, wiring diagrams, and setup guides for the components of the system.
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, moved, and 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) using a serial Bluetooth adapters (no cables). On RAMPS style boards the AUX-1 port can be used on the printer side. Specifics on wiring can be found in the zip file. 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. The insert is kept in place with friction-no glue.
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 (selected because it has enough i/o pins for two keypads without any additional shields-pro mini does not). 1 keypad can be readily used instead of two.
- Jumper cables to connect keypads to the Arduino nano board. 8 pins per keypad. And bluetooth adapters. 4 pins per bluetooth module.
- (2x) Serial Bluetooth Modules. HC-05. Search Aliexpress.com for "HC-05". One will be setup as master, the other as slave. (note HC-06 can replace one of the HC-05. HC-06 is only slave, whereas HC-05 can be either master or slave.)
- (1x) mini rocker on/off switch, 2 pins
- DIY vinyl adhesive label. Custom label to put over the buttons. Sample file included.
- Power pack of your choosing. Various suggestions include: 4x rechargeable AA/AAA cells, or a small 5v power bank (those used for charging cell phones on the go, but if using this option the trouble will be in splicing in an on/off switch), or a 18650 battery pack. If using 18650 cells, you can wire two in parallel and use a step up converter; or you can wire two in series. In either case, use a Battery Management System (BMS) AKA protection circuit, for protecting against over charging and over discharging the 18650 cells. Dont use unprotected 18650 cells.
Left keypad Explained (Keypad 1):
- 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.