Introduction: Manual 3D Printer Control

About: Twenty-something german engineer. Software development from large scale cloud computing to iot. Hardware development from breadboard to mass production.

The must have upgrade for anybody owning a 3D printer running with Octoprint. Moving axis, homing extrusion and controlling your print jobs are now only one keypress away.

The Octoremote System enhances your existing Octoprint setup with an Arduino, a keypad and a bunch of leds. Simply put together the circuit on a breadboard, install the Octoremote plugin via the official Octoprint plugin repository and you´re done.

You want a more neat solution? Great a full custom remote with all parts integrated will be available soon.

Step 1: Parts and Assembly (The Breadboard Way)

Of course you need 3D Printer which works with Octoprint. Information about Octoprint can be found on the official page

Parts needed for the Breadboard Version:

- (obviously) a breadboard

- 1 Arduino UNO

- 8 1K Ohm Resistors

- 8 Leds (I´d recommend 4 red and 4 green ones)

- 1 4x4 Matrix Keypad

Wire everything up as shown in the fritzing schematic.

Step 2: Software and Usage

Now it´s time to setup everything. Install the Octoremote plugin via the Octoprint Plugin Manager (go to Settings->Plugin Manager->more and search for "Octoremote"). Octoprint will do the rest for you.

After that make sure you upload the Arduino Sketch to the Board. You can download the sketch from my GitHub page:

You need two external librarys for compiling the sketch. First is the CRC32 Library by Christopher Baker

and second one is the Keypad Library by Mark Stanley and Alexander Brevig both are available through the Arduino IDE Library Manager.

Select the correct board and comport settings in the IDE and hit compile&upload.

After that, plug into your Octoprint device (if it´s not the one your were running the Arduino IDE on)

Step 3: Configuration and Usage

After installing the Plugin and wiring everything up it is time to configure the plugin using the Octoprint web interface. Got to the Octoremote Settings tab and make sure you selected the correct Comport for communication with the Arduino. Usually an Arduino appears as something like /dev/ttyACM1 under Linux or as a standard comport under windows.

The Baudrate defaults to 115200 Baud and should not be changed. All other settings are printer dependent and were developed using an Anet A8 printer.

For a mapping of the buttons on the keypad to the corresponding printer functions please refer to the pictures.

Changing the extruder is only available for multi-extruder setups, changing the jog distance (the distance the axis is moved per click) switch through the four stages in ascending direction and wraps back from stage 4 to stage 1.

Step 4: Where to Go From Here?

Stay tuned for updates on the fully customized controller featuring:

- Cherry MX tactile switches

- 3D printed Case

- 3D printed Keycaps

- I2C expansion port for future upgrades

- optimized button layout.

Make sure to follow me on instagram to be one of the first with news about that.

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017