How to Remotely Control your 3D Printer using Raspberry Pi with OctoPrint
3D printing has opened up innumerable doors to hobbyists, small business owners, and even medical device researchers. The accessibility of additive manufacturing has made it easy for anyone with a 3D printer to make customizable parts for their exact needs.
Some of the best printers on the market have a small footprint and are relatively lightweight, making them great desktop workspace machines. However, even the smallest 3D printing setup requires that a computer is tethered to the printer, and for larger or complex prints, the user has to monitor the print in the workspace. What if you could control your 3D printer on the go instead?
Why control your 3D printer remotely?
If you have only used your 3D printer for small prints or tend to use it infrequently, waiting a few hours for simple prints may not be that much of a hassle. For some 3D print makers, being stuck at their workspace setting up prints, monitoring the first layers, and checking in throughout the print time can be a major drawback.
There are a few reason that you may want to consider monitoring and managing prints remotely:
Managing long and complex prints
3D print hobbyists are no strangers to prints with estimated times of a few hours that end up stretching on as the slicer adjusts its estimates to account for detail and infill. While a 2-hour print may not be the end of the world, some highly detailed or larger pieces can easily break the 20-hour mark.
In a perfect world, these long prints would be a one-and-done process—simply initiate the print and come back to get the final product.However, this isn’t always the case. Far too many people have come back to day or two long projects to find stringy, layer-shifted prints that require nearly as much time fixing or are completely unusable. To avoid frustrations after the print is complete, regular monitoring is helpful for ensuring consistently high quality throughout the print duration.
Having access to a remote monitoring system can take the guess work out of managing larger prints. If you observe poor printing or problems with the model file translating to the print, you can stop the print immediately without having to be in the same room or even at home to do so.
If you own a hobby print shop, run a small business, or even have a set of gifts or commissions you want to print for friends and family, having the ability to queue and manage prints remotely can be a huge advantage. Instead of having to disrupt the work day or step away from other projects to print each model one-by-one, you can queue, review, and watch the print progression for each part.
Improved user interface experience
Most 3D printers on the market have easy to use and relatively simple UIs, but most require that the user navigates small menus on a built-in display or use a secondary controller program on a computer.
A remote print controller can streamline printer management with improved UIs and customizable settings, allowing you to exert full creative control over your prints with minimal headaches (and no weird menus).
Remote monitoring system requirements
Due to the boom in open source technology in 3D printing, there are a variety of programs and setups available for establishing a remote monitoring system. Here, we focus on a simple, easy setup that is beginner-friendly with a great UI.
You’ll need the following:
- Raspberry Pi
- Spaghetti Detective
- Ultimaker’s Cura slicer
- OctoPrint Shutdown Printer plug-in and TP-Link Smart Plug (optional but highly recommended for auto-powering off your printer)
We’re big fans of the Raspberry Pi and OctoPrint setup for remotely monitoring 3D prints. Before diving into polishing your remote control setup, check out our guides on getting started with the Raspberry Pi and setting up OctoPrint. There are a few other options for remote monitoring as well. One of these is AstroPrint, which is a software built on the OctoPrint framework that is specialized for remote monitoring.
This guide is written with OctoPrint in mind because it is one of the most versatile and well-supported programs available.
After setting up your Raspberry Pi and initializing OctoPrint, it’s time to enable remote monitoring. This guide covers the OctoPi plug-in The Spaghetti Detective, a program that utilizes webcam monitoring to detect print failures and report print progress to users remotely.
This plug-in has free and paid options based on factors like number of printers, print frequency, print durations, feed sharing, and remote G-code management. The Pro Plan is affordable at just $48/year and should provide enough functionality for the frequent 3D printer user.
How to setup a 3D printer remote monitoring system
After ensuring that your Raspberry Pi is setup, equipped with OctoPrint, and linked to your printer, you can setup the Spaghetti Detective and Cura to manage prints.
- Install Cura on your computer.
- Setup your 3D printer profile in Cura.
- Go to the Marketplace (top right) and find the OctoPrint connection plug-in.
- Install the plug-in.
- Navigate to the Settings menu in Cura. Select “Manage Printers” > your printer > “Connect OctoPrint.”
- Enter your API key from OctoPrint.
- Click “Connect” in Cura.
Now, OctoPrint on your Raspberry Pi is ready to send files to your 3D printer.
The next section covers how to send and manage print jobs to the 3D printer when you’re not on the same network, such as when you’re out of the house.
How to monitor your 3D printer from a different network
The Spaghetti Detective can be used to monitor prints from outside of our network, which allows for fully remote monitoring and management.
Note that 3D printers should not be left alone for extended periods due to potential hazards associated with operating under high temperatures.
How to setup The Spaghetti Detective
- On the OctoPrint web interface, select the wrench icon.
- Select Plugin Manager from the menu on the left.
- In the plugin menu, select “Get more”
- Search for The Spaghetti Detective and click install.
- After installation, restart OctoPrint.
- Upon rebooting, The Spaghetti Detective Setup Wizard will be onscreen. Follow the prompts to setup an account.
- Copy and paste the provided secret token in Octoprint.
- Click “Test” to finalize the process.
- Click “Finish” when the test is complete.
The Spaghetti Detective will record a time-lapse video of each print by default, send you an email when your print job successfully completes, and send a notification if a possible failure shows up. All settings can be changed under User Preferences.
Remote control prints using a smartphone
A smartphone cannot completely replace the role of your computer in a 3D printer workspace, but it can boost your print management by allowing you to check in on your phone while you’re away from your computer.
For Android smartphones
OctoRemote is an OctoPrint companion app on the Google Play store that links to the OctoPrint setup for remote monitoring. The app essentially emulates OctoPrint on your device, preserving its functionality.
OctoRemote was developed using open-source libraries similar to those of OctoPrint with a similar UI. The app is supported with regular updates as well.
Setup is simple. After installing the app, connect it to OctoPrint using the API key and instance IP address. In the app, you should see your set preferences uploaded.
Note that the app does not allow for plug-ins, so all modifications have to be made in the program itself. To use the app off the local network, you’ll need to use OctoPrint Anywhere plug-in.
For iOS smartphones
The favored iOS app for remote integration with OctoPrint is Octopod. The app supports most of features available in the full desktop version of OctoPrint, including print monitoring via webcam, remote control, and temperature monitoring.
Setup in the app is quick and easy. Just follow the instructions to get started.
Setup automatic shutoff after prints are completed
While this is an optional step, smart home technology can be used with OctoPrint to save electricity by turning off your 3D printer after a print is completed and the hot end has reached a safe temperature, i.e. 90 °C.
We recommend using a TP-Link smart plug, which is a network-connected plug that can shut off electronics for you.
- Configure your TP-Link smart plug with the local network to which your Raspberry Pi and printer are connected.
- Plug in the smart plug to your UPS battery backup. Ensure that the Raspberry Pi is also plugged in.
- Plug your 3D printer into the smart plug.
- In the OctoPrint Plugin Manager, install the TP-Link Smart Plug and Shutdown Printer plug-ins.
- Restart OctoPrint after the plug-ins are installed.
- After rebooting, select the wrench icon and select the TP-Link Smart Plug from the menu on the left.
- On the settings menu, select the pencil icon and enter the IP address assigned for your smart plug.
- Select “Shutdown Printer” and enable “Mode API.”
- Enter the OctoPrint API key.
- Replace “192.168.1.43” with your reserved IP address.
- In the “Shutdown Printer” menu, check “Enable temperature target.”
- Enter your preferred temperature threshold that the hot end should cool to before shut-off. We recommend sticking to 90 ℃. This allows for sufficient time to run the fan and cool the printer, which will keep the hot end from remaining heated for too long.
- Select “Save.”
This guide details everything you need to know about setting up remote monitoring on your Raspberry Pi with OctoPrint. Now, go check on your prints and start customizing your setup with more plug-ins!