Tools to monitor your 3D prints

Tutorials – 3D Print Tools

Article from Issue 226/2019

One last step remains in our 3D-printing voyage: actually printing something. This issue, we'll tackle how to print and monitor your print at the same time.

Over the last four issues, we have looked at how to design a piece for printing [1, 2, 3] and then how to slice it [4]. What we haven't done is any printing proper, or at least not using a controlling/monitoring program.

Why would you need a monitoring program? After all, you could just save your G-code file to an SD card, insert it into the printer, and print from there. The answer is that many of the low-end 3D printers (the ones you and I have sitting on our desks or in our garage) are quite dangerous: They have hot, moving parts out in the open and, at least in hobbyist set ups, are often near flammable things, such as wooden desktops and curtains.

Although it is recommended that you never move very far from your printer while it is working, a monitoring program, especially if it lets you live-feed video from the process, will give you a bit more freedom of movement.

There is another reason to use a printer-monitoring program: convenience. Setting up and starting a job directly from the printer is a bit like programming a 1980s Casio watch: It involves a lot of pressing and twisting of one single knob that beeps annoyingly from time to time as you navigate menus and options. It is much easier to use sliders and text boxes from a full-screen graphical interface.


In last month's issue, we covered Cura [5], primarily a slicer application [4]. But once you have sliced your object, you can also use Cura as a controller/monitor program for your printing jobs.

To start using Cura as a controller, make sure it supports your printer by picking it from the drop-down menu in the upper left-hand corner of the main pane or by visiting Preferences | Configure Cura… and clicking on the Printers option in the dialog.

Connect your printer to your computer using a USB cable, and Cura should pick it up automatically.

Load and slice your object as usual, and the label on the slicer button will change from Slice to Print via USB (Figure 1).

Figure 1: By connecting your printer directly to your computer, you can use Cura to print from your desktop.

But before you hit the print button, visit the Monitor tab located at the top middle of the workspace. From there, you can regulate the temperature of the bed and hotend, as well as the location of the printing head, with a clear and easy interface (Figure 2). Check the ideal temperature for the material you will be using (this information is usually printed on the spool of filament), and use that information in the Extruder 1 and Build plate fields to start heating up the printer.

Figure 2: Control the temperature and the position of your extruder directly from Cura.

Although it is convenient to slice and print from the same application, Cura is not very good for the latter. Apart from a progress bar, it does not seem to have any way to monitor how the print is going. It doesn't show the slice you are printing, and I was unable to get it to bring up a video feed from the camera I had trained on the printer (the big empty space on the left in Figure 2 is supposed to show that feed). It seems that some Ultimaker printers come with built-in cameras, and it may be that the feature only works with those.

Changing options during printing also made Cura crash a lot. Since each time it crashes, printing stops, forcing you to start over, you would be better off just using Cura as the very good slicer that it is.


Atelier/AtCore [6], on the other hand, is an excellent choice for controlling and monitoring your 3D printer. Part of the KDE suite of applications, AtCore is the back end, the API that allows graphical (or non-graphical) applications to connect and control your printer. Atelier (Figure 3) is one such application developed as a proof of concept by the Atelier/AtCore team.

Figure 3: Atelier is an AtCore-based graphical application that allows you to control and monitor your 3D prints.

To get started, first configure your printer for Atelier. In the Settings menu, choose Profiles. You will need to have your printer's specifications handy. Specifically, you need to know:

  • Whether you printer is Cartesian (square base) or delta (circular base)
  • The width, depth, and height of the printing area
  • The maximum temperature your bed and hotend can reach
  • The speed at which your printer and computer communicate
  • The firmware used by your printer's controller board

Give your profile a name, something like the make and model of your printer, and save it (Figure 4).

Figure 4: Configuring Atelier for the Creality Ender 3 printer.

In the pane on the right of Atelier's main window, choose the profile you just created and click the Connect button. The pane will immediately fill with information on the printer's status as shown in Figure 3. From the Controls tab, you can move the printing head around and set the temperatures of the bed and hotend.

The Advanced tab shows you detailed information in log form and lets you set things like the fan and printer speeds. The Sd Card tab supposedly allows you to browse (and print) the files on an SD card inserted into your printer, but that did not work for me.

I should point out that Atelier/AtCore is under heavy development and some features don't work yet or get broken when a new version comes out – I tested Atelier 0.70.0 with AtCore 1.0.70. That said, the main thing Atelier/AtCore is meant to do (i.e., allow you to monitor and control a print from the comfort of your desktop), it does well, and the software is stable and does not crash.

Continuing on with the exploration of the interface, in a vertical toolbar on the left of the window, clicking the cube icon brings up a 3D view of the object you want to print. The lighting in the version I tested did not work, as you can see in Figure 3. Although you can make out the shape of the object, you cannot make out its features. It is also quite hard to rotate the object – only the left mouse button works for this, and there is no panning or zooming at the moment. Developers told me the 3D viewport had a lot of the features stripped, because it made Atelier unstable. They are rewriting the whole thing and will re-implement it in the near future.

Clicking on the text page icon will bring up the file's G-code code, as in the list of commands used to render the 3D object. If you know what you are doing, you can modify the code by hand; this is terribly risky, though.

The camera icon at the bottom of the vertical toolbar opens up a pane where you can pick the camera you have trained on the print (Figure 5). Pick the device from the drop-down menu at the top of the pane and press the play button to start up the video feed.

Figure 5: Atelier lets you monitor the print with a camera connected to your computer.

Across the top of the pane on the right, there's another menubar that allows you to move the printing head to the Home position, start a print job, stop a print job, or disable your printer's motors – which allows you to move the bed and printing head around freely with your hand.

Notice that the right pane is actually a set of tabs. Click on the tab with the + sign, and you can open a new connection to another printer and manage several printers all at the same time and from one convenient application.

The Atelier/AtCore suite comes with another more compact client called AtCore Test Client (Figure 6). It has less functionalities than Atelier (there is, for example, no 3D visualizer or webcam support), but it does the job and is a good solution for a smaller screen. Indeed, AtCore Test Client is designed for embedded devices, like Raspberry Pis and other single-board computers (SBCs), with a touchscreen mounted directly onto your printer.

Figure 6: AtCore Test Client is another AtCore-based application ideal for small screens.


OctoPrint [7] is probably the most used monitoring and controlling software and for good reason. You can install OctoPrint on your personal computer, and, when you run it, it will set up a local website that you can visit and use to control your printer (Figure 7). This is super convenient, as it means you can access and control your printer from any device on your local network, even your phone.

Figure 7: OctoPrint is probably the most popular monitoring software for 3D printers.

You could also make it available from the Internet; the configuration allows you to do this, but that is a huge security risk. Besides, I did say that you should not stray very far from a printer while it is printing, remember? If you must set things up so your printer is available remotely, be very careful!

OctoPrint is written in Python, so it does not need compiling, but that is about the only simple thing about its setup. To be fair, following the instructions carefully in the "Installing from source" section online [8], you can get the server up and running after multiple steps. However, then configuring things like the webcam or slicing capabilities is a bit of a nightmare and involves knowledge of streaming to web and compiling obsolete libraries that go way beyond the scope of this article.

So if OctoPrint is so fiddly, why is it so popular? OctoPi is why.

OctoPi is a version of Raspbian, the most popular operating system for the Raspberry Pi, and it does one thing and one thing alone: Run a perfectly configured version of OctoPrint. Download the image from [8], dd it to a microSD card, pop it in your Rasp Pi (preferably a version 3 upwards), plug your camera and printer into the Pi, power up and … Hey presto! You have a full-featured monitoring device.

To configure the WiFi, make sure your Rasp Pi is connected by a network cable to your network, find its IP, and ssh into your Pi – username pi, password raspberry. Run

sudo raspi-config

and navigate to 2 Network options and then N2 Wi-fi. Fill in the SSID of your WiFi network, select Ok, and fill in the password. Again select Ok when you are done. In the next screen, choose Finish and raspi-config will ask whether you want to reboot. Say yes.

On reboot, you will have a WiFi-enabled device that you can zip-tie to your printer. This means your printer is now portable, WiFi enabled, and cable-free (except for the power cord, of course)! You can still move it off your desk to anywhere in your house where the WiFi reaches, then connect to it, and send it jobs from the comfort of your laptop.

Open a browser and input octopi.local in the address bar, and your browser will take you to your local OctoPi instance.

If you have read through the configuration of Atelier/AtCore, configuring OctoPrint isn't much different. In fact, once you log into the website for the first time (again, username is pi and password is raspberry), OctoPrint will run a wizard that will help you get everything set up (Figure 8). If you ever need to reconfigure, choose the wrench icon (Settings) from the toolbar at the top of the web interface.

Figure 8: OctoPrint runs a configuration wizard the first time you log in.

The wizard takes you through Access Control to OctoPrint's web interface, metrics that allow the OctoPrint project to know how many people are using the software (you can opt out, of course), connectivity to the Internet that allows OctoPrint to check for updates, setting up plugins, and setting up your printer's profile – here again, you will need your hardware specs.

Once you're done configuring, you will get back to OctoPrint's main screen. Click Connect to link up OctoPrint to your printer, and the graph on the right will come to life with data from the bed and hotend. You can adjust the temperatures of each using the buttons and drop-down menus under the graph. You can also preconfigure temperatures for different materials (PLA, ABS, PET, etc.) by clicking on the wrench icon at the top of the page and choosing Temperatures in the Printer section. Preconfigured values will appear in the blue drop-down menu to the right of the target temperature text box.

On the left, below the box showing the state of the printer, you have a list of recently used files you can print. You can access files both on the SD card in your printer and on your hard drives. Scroll down and you will see an Upload button at the bottom of the box. Press it and you can navigate through your files until you find what you want to print.

Across the top of the main pane, you have the Temperature, Control, GCode Viewer, Terminal, and Timelapse tabs. I have already talked about the Temperature tab, as it is the default tab you land on when you visit OctoPrint for the first time. The Control tab shows a shot from the camera and controls for moving about and disabling motors and fans (Figure 9). Use this to remotely monitor your print and place the printing head.

Figure 9: The Control tab shows the camera and buttons to move the motors.

The GCode tab (Figure 10) does not show a 3D view of a loaded object as you would expect, but instead it shows the layers of the selected object. While not printing, you can use the slider on the right to scroll through all the layers that will make up the object. The slider on the bottom will show you the path the extruder will follow to print the slice. While printing, the GCode tab will show you an animation of the print's progress.

Figure 10: The GCode tab shows the selected object's layers.

The Terminal tab shows information received from the printer in a logging-like format. If anything goes wrong, you can use the Copy all link to copy all the contents to your clipboard. You can later copy the contents to a text file, so you can analyze and troubleshoot the print.

Timelapse lets you record a frame every certain amount of seconds to create cool movies of your prints.

To start printing, select an object from the File list, set the temperature of the bed and extruder in the Temperature tab, and, when the bed and extruder have reached the correct temperature, click on Print. You can Cancel a print that is going wrong, or you can Pause it, say, to change to another filament and print in several colors – that said, successfully stopping and starting a print is tricky, so be careful.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More