What is OctoPrint? It describes itself as desktop 3D printer "host software" -- a utlity that receives job files (gcode) from your "slicer" (the CAM tool that builds fabrication instructions from your digital model) and then delivers this code to the printer itself, typically via USB. A snappier way to say this: OctoPrint is a "nanny cam" for your printer. ;-)
Sure, setting up host software to run your printer from your desktop or laptop sounds like nothing new. Since the first RepRaps, the MakerBot CupCake CNC, Ultimakers, and Printrbots, there have been apps like ReplicatorG, PrintRun, and Repetier Host that hobbyist and competing printer vendors shared together as what is used to run your printer. (The slick proprietary, vendor-specific utilities came later...)
But guess what, you can run this new breed of host software on a Raspberry Pi, a BeagleBone Black, or other lightweight, affordable embedded Linux system. And these platforms bring with them opportunities to customize with the software and hardware accessories.
Third party host software is coming back into style!
The last few years have seen an explosion of printer tool development -- with open, innovative tools like Cura and MatterControl continuing the tradition of the open platform while machine-specific tools such as MakerBot Desktop, Formlabs PreForm, and 3D Systems Cubify hone in on hyper-machine-specific and marketplace-tie-in features. And on the horizon are universal printer platform tools such Autodesk's Spark and direct printer-driver style integration into operating systems and design packages themselves.
The game changed this past year with the newfound popularity for a new type of host software -- lean, clever web/cloud savvy software packages such as OctoPrint, AstroPrint, PrintToPeer, BotQueue, and 3DPrinterOS that can be deployed on affordable embeddable solutions such as a Raspberry Pi or BeagleBone Black, operating from clients as lightweight as webpages and custom mobile apps, bringing to any given printer (if resources exist for interfacing with the firmware!) highend features as:
- wireless printing
- remote job start/kill from mobile phones
- queue management that automatically logs print success data
- real-time gcode visualization
- custom automation/event hooks
- smart and port-hole machine vision
- automatic timelapse production...
- and anything else you can dream up that a featherweight Linux system can tackle.
At the heart of this rise in popularity is the open source project OctoPrint, created by software engineer Gina Häußge, and its community-distributed, easy-to-install OctoPi image.
OctoPrint + Adafruit Hardware = <3 <3 <3
Here are a few of the features bundled into OctoPrint out of the gate:
- Untether your laptop from your printer and put it on a network.
- Control your printer as if you were sitting right next to it.
- Monitor your prints from across town, or across the ocean.
- Free as in beer and speech.
- Visualize your gcode before you run your job, with realtime gcode simulation.
- Compatible with a wide range of desktop 3D printers.
Leveraging simple python scripts shared by an active community developers and any number of easy-to-use webtools, 3D printer hobbyists have more opportunities to experiment with adhoc hardware and software tweaks for their (working) 3D printer than ever before! And after you get your feet wet, the RepRap community and custom building your own printer and printer accessories await. ;-)
For this introductory guide, we will start with the easiest way to get into OctoPrint -- downloading a pre-loaded "OctoPi" SD Card image from the project maintained by Guy Sheffer, with source located here. And proceed from there to share resources to help you setup OctoPrint and configure for the desktop 3D printers currently offered at Adafruit!
Before you continue further, make sure you have some basic experience setting up a Raspberry Pi, including a modest amount of command line comfort.
These steps are intended to be easy to follow for a Pi novice. However, if you get stumped we suggest diving right into the excellent OctoPrint Google Group to find solutions or post your experiences for help from seasoned Linux users / command line jockeys to get you back in the game.
We recommend walking-through the following tutorials below before starting this project. These guides will help you get familiar with the components and get setup and configured with your Raspberry Pi: