Controlling a 3D printer with a Raspberry Pi
Preface
I finally got around to getting a shiny new toy in the form of a 3D Printer. The specific model is a Wanhao Duplicator i3 Plus. While it may not be the best in terms of quality, it’s a nice “little” printer that, after a lot of tinkering, produces some fair prints.
I’ve had my fair share of problems with it, for starters every bolt needed tightening upon unpacking, add to that an uneven printbed, and the general “confusion” following playing around in uncharted territory, and it pretty much sums up my first 4 weeks with it.
Around 90% of the stuff i’ve printed so far has been upgrades for it, but i’m happy to say that for the past week or so, the printer has been printing without any issues, and without requiring much maintenance besides the occasional levelling of the printbed.
Some of the stuff i’ve made
- Duplicator i3 Ikea Dioder LED clip
- Wanhao i3 Plus spring dampeners
- Dual Z-axis alignment bars
- Pimoroni Camera Mount for Wanhao i3 Plus
- Case for Raspberry Pi and PiDrive
- DiiiCooler for Wanhao Duplicator i3
Despite the “Desktop 3D printer” predicate, there’s no way this device is going on my desktop. Besides the noise level, 3D printers also emit large quantities of nanoparticles, some more healthy than others, so the first mission was finding a system that would act as a print server.
Octoprint
It turns out that such a system has been developed. There are multiple systems to choose from, but i chose Octoprint, mostly based on reviews that state that it’s the most actively developed system, and has the most features. Another winning factor is that it offers a “ready to go” image for the Raspberry Pi named OctoPi.
Installation took 10 minutes, and configuring my printer model took another 10 after consulting 3dprinterwiki.
Besides acting as a print server, Octoprint offers nice features such as monitoring your printer through a webcam, and has “out of the box” support for the Raspberry Pi Camera. While this may seem like overkill, it propbably saved me from a (small) house fire early on (more on that later). It can also generate a timelapse video of your printing progress. I’ve configured Resilio Sync (formerly btsync) for sharing the timelapse directory. While these are initially pretty cool, i suspect the “news value” will soon fade, and i’ll pass on timelapses all together.
It features a control panel that allows you to monitor and control your printer remotely (I don’t recommend you leave your printer running while not near it!)
Wrapping it up
While most people say that owning a 3D printer is a hobby in itself, i’m fairly happy with my setup now. I have a RPi 3 mounted on the printer, along with a camera facing the build plate, all in parts i’ve “made myself”. It’s not without it’s share of bumps on the road, but that’s part of the charm i guess. One of the Octoprint plugins is a “history” plugin that reports on the number of failed and successful prints, i think the screenshot speaks for itself
20% is a lot better than what i had a week ago though. It’s a number that can only go up, and if you look at the past 4 days i’ve had 0 failures, though with 3D printing failure is always an option :)
Obligatory 3DBenchy