Octoprint is an open source print server for 3D printers. It plugs into the USB port of the printer for tethering, and contains a web server that can handle remote printing from a web browser or mobile application.
OctoPi is an OctoPrint distribution for Raspberry Pi. It is of course the version of OctoPrint that I set up a few weeks ago and which this test is about.
Regarding the printer, I indeed tested on mine, which is, as a reminder, a Discovery200 from Dagoma.
On the hardware side, I used a brand new Raspberry Pi 3 bought for the occasion. The installation could not be simpler. We transfer the image to a micro SD card and we start the system. To access the interface, we point our browser to the URL http://octopi.local/
or by searching it’s IP address in the options of our WiFi access point, our Internet box, or our Raspberry Pi if we have connected it to a keyboard and screen.
OctoPrint is able to auto-detect serial connection settings to the printer (via the USB cable), but you can also define these settings as needed. Edit 12/28/2017: I tried to unplug the Raspberry Pi‘s network cable for several minutes during a printout without any noticeable consequences. Printing continues normally, and all features come back when you reconnect the cable.
It can manage local Gcode files (on the Raspberry Pi in the case of OctoPi), or on the SD card of the printer. Edit 28/12/2017: That said, on Discovery200, the presence of a micro SD card in the printer seems to disable the USB connection.
First evolution, compared to the autonomous use of the printer via micro SD card: You can have as many Gcode files on hand as the OctoPrint disk space allows, name them as you wish, and store them in folders. While in standalone mode we have only one file at a time, named dagoma0.g
, on the micro SD card.
The Temperature tab provides access to the print head setting, out of print cycle. This allows to switch on and off at leisure, greatly facilitating the operations of loading and unloading filaments.
The temperature setpoint and the measured temperature are displayed on a graph that is updated regularly. We can monitor them and know when to insert or remove the filament. One detail: The colors of the two lines are too close, and we distinguish them quite badly. Especially when you’re away from the screen, manipulating the printer. Be aware that the straight line pattern is the setpoint, and the one that makes the curves is the measured temperature.
The Control tab allows to manually control the position of the head and the bed. This is convenient before and after a printing cycle. It also allows you to select a tool when your printer is multi-head (untested since it’s not my case), extrude or retract the filament (again handy when replacing filament), and manage positioning motor lock or fans.
We can already use this interface from a smart phone or tablet, but as we will see in a future article, there are also mobile applications that uses the OctoPrint API.
It seems that a hardware bug on the Discovery200 prevents the fan from turning off completely as soon as a ground is found on the USB port. Even if the printer’s power switch is turned off, and the Raspberry Pi is off, it will get its mass from the USB port and then from the Raspberry Pi‘s network cable ?
The Gcode viewer tab allows you, as its name indicates, to view the movements ordered by the Gcode instructions, layer by layer, and possibly in real time during a printing cycle. This is a feature I knew from my CNC, and that I am very happy to find here.
The terminal tab allows you to view Gcode exchanges between OctoPrint and your printer in real time. You can also enter manual instructions.
The Timelapse tab allows you to take pictures regularly if a webcam is connected to OctoPrint. Having no webcam on hand, I could not test.
Note that the quality of the solution is quite advanced. There is, unordered:
- An automatic update management
- A plugins management
- A restart and shutdown menu
- An API allowing the use, for example, of mobile applications
Overall, OctoPrint brings all the features a CNC user is used to having on hand, plus remote control and monitoring.