Automatically upload GCode from Simplify 3D to Repetier Server or Octoprint

I’ve recently setup a Repetier Server to control my 3D printers, and wanted to be able to automatically upload Gcode from Simplify 3D into the server. Read on for instructions on how to set it up yourself.

Repetier Server, which if you haven’t heard of it, is like Octoprint, but designed to control multiple printers, has an easy GUI to configure your printers internal settings etc.

It is not completely the same however, it doesn’t have support for GPX (makerbot style gcode equivalent files), nor does it have a built in slicer, which I don’t mind as I use Simplify 3D anyway as part of my tool chain.

I will be showing how this is done on Windows 10, however the process is essentially the same on Mac or Linux as well.

Install Curl

The first thing you will need to do is install Curl onto the machine running Simplify 3D, which is the application that we will be running in Simplify 3D to upload the Gcode file to the Repetier server. You can find curl here for Windows 10, or if you need it for a different operating system you can find it here. Linux normally has this already installed by default.

All you need to do is copy the contents of the zip file to the “C:\Program Files\Simplify3D-3.x.x\” directory (or wherever Simplify 3D happens to be installed).

Get your Repetier Server API Key

The next step is to fetch the API key from your Repetier server, this is used to provide permission to Simplify 3D to upload files. You will find your API key under the “Global Settings” -> “Connectivity” area.

repetier-simplify3d-repetier-menu

Copy the API key, it will be a long string of hexadecimal that is unique to your server (looks like b043d45f-b123-54c8-aba2-fe1235c0bb5226, but will be different for your system).

repetier-simplify3d-api-key

Work out your printer name

when you are viewing the queue for your printer in Repetier Server, in the URL you will see the “internal name” of your printer inside Repetier, in this case it is “Hypercube1” and the server connection details are “192.168.0.15:3344”.

repetier-simplify3d-printer-name

 

Setup Simplify 3D

Finally you just need to put it all together and setup Simplify 3D by inserting the following script into the “Additional Terminal Commands for post processing” box in the “Scripts” menu.

curl.exe -i -X POST -H "Content-Type: multipart/form-data" -H "x-api-key: *API key here*" -F "a=upload" -F "[email protected][output_filepath]" "http://*server connection details here*/printer/model/*printer name here*"

So as an example final configuration would look like

"curl.exe" -i -X POST -H "Content-Type: multipart/form-data" -H "x-api-key: b043d45f-b123-54c8-aba2-fe1235c0bb5226" -F "a=upload" -F "[email protected][output_filepath]" "http://192.168.0.15:3344/printer/model/Hypercube1"

repetier-simplify3d-simplify-setup

From now on, everytime you slice a model in Simplify 3D, it will upload the Gcode file to Repetier Server

What if I am using Octoprint?

The process is basically identical except the script used for Octoprint is different, the format of the script is as follows

curl.exe -k -H "X-Api-Key: *API key here*" -F "select=false" -F "print=false" -F "[email protected][output_filepath]" "http://*server connection details here*/api/files/local"

You can find your API key in Octoprint under OctoPrint ->Settings -> API

Trouble Shooting

Not Uploading

There are several reasons why this may be the case.

  • One reason could be (and this had be stumped for hours), is that Simplify 3D only runs the scripts after you save the Gcode file somewhere (not as it slices). Just save the Gcode somewhere (isn’t important where) and presto!
  • Another reason is that curl just isn’t working, try opening up a command prompt (cmd.exe), change to the Simplify 3D directory and run the script manually, just replace “@[output_filepath]” with the name of a real gcode file that is in the same directory. When you run this is should provide some clues why it isn’t working.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *