Introduction: How to Control Your 3D Printer From Your Phone

About: I'm a student, a long-time electronics and 3D printing enthusiast, and a software developer. Nice to meet you! :)

Are you tired of babysitting your prints, fumbling around with SD cards to load models, and using clickwheels to move your printer and configure it? In this guide I'll show you how to set up complete control of your printer right from your phone.

We'll start by installing OctoPrint—a fantastic free piece of software that makes it easy to control your printer over the network—and then I'll show you how to set up native OctoPrint mobile apps for iOS and Android to take your printing experience to the next level.

Supplies

Compatible 3D Printers

OctoPrint is compatible with all 3D printers that use standard GCODE communication and have a USB port. This includes nearly all popular models on the market, including:

  • Creality Ender 3, Creality Ender 5, Creality CR-10S
  • Prusa i3 models
  • Anycubic i3 Mega, Anycubic Vyper
  • Ultimaker models
  • Monoprice Mega, Monoprice Select Mini

Some printers, like Makerbot (5th generation and onwards) and UP models, use their own proprietary incompatible firmware.

OctoPrint Hardware

Most people run OctoPrint on a Raspberry Pi—a small, single-board computer that costs around $40. This guide covers how to set it up on a Raspberry Pi using a pre-made image called OctoPi. However you can also run OctoPrint on a regular computer running Mac, Windows or Linux, or even an Android phone.

A full OctoPi setup will cost you around $80. Here's the hardware I recommend:

If you are in the U.S. or the U.K., you can buy official OctoPrint kits from various distributors that contain everything you need. A cut of sales from these kits helps fund the incredible work by OctoPrint's developer.

For Aussies, Core Electronics sells an unofficial OctoPi kit.

Step 1: Flash OctoPi SD Card

Once you have your hardware, installing OctoPrint is super easy.

  1. First, insert your SD card into your computer. Then, go to the Raspberry Pi website, and install the Raspberry Pi Imager application.
  2. Launch the Raspberry Pi imager application:
  3. Click the 'Choose OS' button. From the list, click the 'Other specific purpose OS' entry.
  4. Scroll down and click the 'OctoPi' entry.
  5. Click the 'OctoPi (stable)' entry.
  6. Now, click the 'Choose Storage' button. Click on your SD card in the list that appears.
  7. Next, press Ctrl-Shift-X if you use Windows/Linux, or Cmd-Shift-X if you use macOS. This will show the advanced options menu. Scroll down and check the 'Configure wifi' checkbox. Enter your Wi-Fi name (SSID) and password. Choose your country code in the 'Wifi country' dropdown, and press save.
  8. Finally, click the 'Write' button. This will download OctoPi and flash it to your SD card. Depending on your internet speed, this may take a while.

Once the write has completed, you will see a popup saying that the write was successful. Remove your SD card and insert it into your Raspberry Pi.

Step 2: Set Up OctoPrint

  1. Connect your 3D printer and power supply to your Raspberry Pi. Wait a minute to let your Raspberry Pi boot.
  2. On a computer connected to the same Wi-Fi network as your Raspberry Pi, open 'http://octopi.local' in a web browser. (Note: your computer software needs to support mDNS to find your OctoPi. macOS, most Linux distros, and many Windows installs already do. If your browser can't find 'octopi.local', follow these instructions.)'
  3. You should see the OctoPrint set-up wizard. Continue clicking 'Next' until you reach the 'Access Control' step.
  4. In the 'Access Control' step, set a username and password. Click 'Create Account', and then 'Next'
  5. Continue through the wizard until you reach the 'Default Printer Profile'. Here, you'll configure OctoPrint with your printer's physical parameters. Set a name for your printer and enter the model. Then, go to the 'Print bed & build volume' tab and enter your printer's print area dimensions.
  6. Finish the setup. The main OctoPrint user interface will be visible now. In the top-left corner, under the 'Connection' pane, select the serial port your printer is connected to and click 'Connect'

🎉 Congratulations, you've set up OctoPrint! You can access this web page from any device on your Wi-Fi network to manage your printer. Let's move on to configuring a dedicated app to manage OctoPrint from your phone.

Step 3: Setup on IPhone/iPad (Polymer)

Polymer is a free, easy-to-use OctoPrint app that I built for iOS.

  1. First, download Polymer from the App Store.
  2. Launch Polymer. It will ask for permission to access the local network. Click 'OK'.
  3. Your printer will appear on the list. Tap it. Polymer will then connect to OctoPrint and request authorisation.
  4. Open OctoPrint on a computer again by going to 'octopi.local' in a web browser. A permission request will appear in the top-right corner. Click 'Allow'.


Congratulations, Polymer is now set up!

Step 4: Setup on Android (OctoApp)

There are many, many apps to choose from on Android. OctoApp provides one of the most streamlined experiences.

  1. First, download OctoApp from the Play Store.
  2. Launch OctoApp. It will automatically discover your printer. Tap your printer's entry in the list.
  3. OctoApp will then connect to OctoPrint and request authorisation.
  4. Open OctoPrint on a computer again by going to 'octopi.local' in a web browser. A permission request will appear in the top-right corner. Click 'Allow'.


Congratulations, OctoApp is now set up!

Step 5: Setup on Android (Printoid)

Printoid is another good option for Android. Printoid is one of the most full-featured OctoPrint apps. Printoid comes in two versions: a free Lite version, that contains the essentials but doesn't include webcam streaming and more advanced features, and the upgraded Premium version.

  1. First, download Printoid from the Play Store
  2. Launch Printoid. Tap through the setup slides. When prompted, set a profile name.
  3. Keep tapping through the setup pages. Once you are prompted for an IP address, tap the magnifying glass option and then 'OK'.
  4. Select your printer in the menu that appears.
  5. Continue tapping through the setup pages. Once you are prompted for an API key, open the OctoPrint web interface (at 'octopi.local') on your computer.
  6. Click on the wrench icon in the top-right corner to open OctoPrint settings. Click on the 'Application Keys' option in the sidebar. Under the 'Manually generate an application key' heading, type 'Printoid' in the 'Application identifier' field and click 'Generate'.
  7. OctoPrint will show a popup with a QR code. Tap the scan button in Printoid and point your phone camera at the QR code.

Continue through the final setup pages. Congratulations, Printoid is now set up!


Step 6: TouchUI (Alternate Method)

An alternative to using a native app is to install the TouchUI plugin for OctoPrint. It re-skins the OctoPrint web interface to make it more touch-friendly.

  1. To install TouchUI, click the wrench icon in the top-right corner to open OctoPrint settings. Click on the 'Plugin Manager' option in the sidebar. Click on the 'Get More' button.
  2. Search for TouchUI and click 'Install'.
  3. Once the install is complete, click the 'Restart Now' button. Do not do this if you have any running prints!
  4. Open 'octopi.local' on your phone and log in. The interface will now be TouchUI.


Step 7: Extra — Setting Up Remote Access

By default, you will only be able to control your printer with your phone when you are on the same Wi-Fi network as it. There are many methods to set up remote access, ranging from easy-to-use proxy services like OctoEverywhere and The Spaghetti Detective.

These methods are essentially the same regardless of what client you use. Each app mentioned here has specific guides on how to set up remote access: