Using Slic3r with OctoPi/OctoPrint

For me, Slic3r is better

Hello everyone, I've been recently working on the autonomy of the Prusa 3D printer I built.

One of the things I definitely had to improve was it's autonomy. The thing is that in the old days, for printing a 3D model I had to do an annoying process that involved sitting next to the printer which is another room with my laptop and wait there until it finishes.

I looked for a solution and found it, it is called OctoPrint, made by the people of bq there is even a Raspberry Pi SD card image (OctoPi) ready to install and connect to your printer. That way, the Raspberry takes control of the 3D printer and you just have to give commands to it through your local network or even the Internet, how cool! So hands on, I took a Raspberry Pi I had abandoned in a wardrobe, installed it, connected to my printer and everything went pretty well. The installation process is easy and well documented.

I was getting ready for trying my first "remote" print when I realised something, it seems that OctoPrint is integrated with CuraEngine and not with Slic3r which is the software I used for slicing and generating the 3d pinter commands when working with Repetier Host.

Looks like the time for giving CuraEngine a chance, I tried to print my usual calibration model and the result was not very good as you can see in the heading image. At first the filament was not sticking to the mirror and the printer created some spaghetti. Then, I managed to stick it and the model was actually printed, but presented "holes" and it's structure didn't look very robust as you can see in the heading image.

That was enough for me, I missed the old Slic3r days and since those slicing softwares are modular, there should be a way to replace CuraEngine with Slic3r. After I fast google search I found this repository made by the people from OctoPrint, but as they say on their README file:

WARNING Not functional yet since slic3r's return codes are behaving unexpectedly. WIP for others to take a look at and maybe build upon.  

What a pity, I thought the solution was close. And guess what, it is. Googling a little more I found this issue on the Slic3r repository. And the key here is what is stated on the first message:

The latest versions of Octoprint have an API that allows you to upload gcode and print it.  

Is it that simple? Yes it is! Just get Slic3r, launch it, open the STL file and then select Export G-Code on the right.

Exporg G-Code

This will generate an already sliced versión of the STL file with the Slic3r settings embedded, that you can directly upload to OctoPrint as you would do with a STL file.

The usual uploading method

And that's it, just by slicing and exporting with Slic3r before uploading them, you can combine Slic3r and OctoPrint.