Octoscreen, like Octodash, is a touchscreen user interface you can add to your 3D printer being controlled from Octoprint. Installation of a touchscreen and Octoscreen on a printer such as the Ender 3, allows for controlling Octoprint directly in front of the printer without needing a PC or smartphone. You have ability to trigger a sliced gcode file, control the printer movement, and run custom macros. Read on to learn how to install and setup Octoscreen on a Raspberry Pi with touchscreen.
What Is Octoscreen?
Octoscreen is a simple touchscreen user interface (UI) for Octoprint. It is open sourced dashboard optimized for 3.5″ to 7″ touchscreens. Managed by Z-Bolt it allows for easy and clean interactions with and Octoprint server without needing a separate computer or web browser. Octoscreen does not replace Octoprint but instead is a front end for the existing installation.
Why Do I Want to Install an Octoscreen Touchscreen?
If you want convenient interactions with your Octoprint interface right from the 3D printer w/o needing a phone or PC? A simple and clean user interface for controlling your Octoprint server? To make your printer the envy of all the other printers in the maker space? Then Octoscreen might be for you. If you have read our article on installing Octodash on an Ender 3 then a lot of these steps will be very familiar with only slight differences.
Supplies Needed to Install and Octoscreen Touchscreen on a 3D Printer
- Raspberry Pi Running Octoprint
- A Raspberry Pi Compatible Touchscreen (RaveRobot recommends the official touchscreen by Element14)
- A Case for Raspberry Pi Touchscreen (purchased or 3D Printed)
- 5 Volt Fan (optional but recommended for the Pi4 and newer)
Steps to Install Octoscreen for Octoprint
1) Install Octoprint on a Raspberry Pi
Follow our guide to setting up a Raspberry Pi with Octoprint. A lot of the basic steps such as connecting to the Pi via SSH are covered in the Octoprint setup guide, so even if you already have a working Octoprint installation, give it a read. It isn’t a bad idea to make a backup of your working Octoprint settings (you have confirmed it is working first right?) from within the settings menu and download them externally before continuing.
2) Print Your Touchscreen Case Parts
If you are printing instead of buying your touchscreen case then you should make sure this is done first and all the parts fit. For my install on my Ender 3 I decided that I was going to print the case for it and then mount it to the workbench next to the printer as opposed to directly on the printer. I may revisit this and make a mount for the Ender 3 later which will be linked here.
3) Disconnect Your Pi from the Printer and Connect it to the Touchscreen
Connect the dupont wires to the touchscreen Closeup of the touchscreen wires Mount the Pi on the back of the touch screen and connect the ribbon cable Connect the dupont wires to the Pi Closeup of the Pi wire connections Mount the screen and Pi to the case This case mounts the screen upside down which is better for my setup wiring but will require some software changes later
Shut down the Raspberry pi and disconnect it from the 3D printer. The touchscreen is connected to the Pi in a few places.
4) Boot the Pi with the Touchscreen and Confirm it is Working
We haven’t installed anything yet but we want to make sure everything is wired right and that the orientation is correct. Since my case mounts the screen upside down it wasn’t correct and I needed to rotate the screen 180 degrees.
5) Correct the Screen Rotation if Needed
Check if the screen is inverted and if so make the following changes to config.txt. You can do this with sudo nano or by taking out the SD card and making the change with notepad or VSCode, do not use Wordpad of MS Office or you will corrupt the file. My screen needs to be flipped 180 degrees so I’m adding in the line “lcd_rotate=2”.
6) Connect to the Pi via SSH (PuTTY)
We are going to need to make some changes and install Octoscreen which we will do by connecting to the Pi via PuTTY, same as we did for the Octoprint installation.
7) Update and Upgrade the Raspberry Pi
Make sure that the Pi is fully up to date by running an update for the repos and then upgrading everything it finds.
8) Open the Raspberry Pi Configuration App
Run sudo raspi-config from PuTTY to open the configuration application.
9) Optional: Enable VNC Server to Control Touchscreen Remotely
You don’t necessarily need this for your install but I’m doing it here so I can take screen captures of the interface and show how things work. It’s a nice option and doesn’t really cost you anything but it isn’t required.
10) Install Octoscreen
Head to the Octoscreen github and install from a .deb package. There are only a few commands to type in and then follow the prompts, it isn’t too difficult.
11) Install Touchscreen Drivers
If you are using the official Raspberry Pi Touchscreen like I am, then you don’t need to do this as it is fully supported out of the box. If you have selected a different screen then you will need to go to the manufacturer’s site/github and follow their instructions for installing the drivers. Do not buy a screen from a company that does not have this readily available.
12) Reboot the Pi
If you don’t see Octoscreen show up on your touchscreen after the install is finished, give it a reboot and if you did everything right you should see the Octoscreen initialization screen show up. Octoscreen will continuously try to connect to the printer so if there is not one connected and powered on then this is all you will see for now.
13) Optional: Connect to the Pi via VNC Viewer
Free for home users VNC Viewer will let you connect to and control the touch screen from a desktop PC. You can use this to easily make selections and input required information. Previous versions of Octoscreen had required input that needed a keyboard but the current release can be done w/o a keyboard or VNC.
14) Reconnect the Pi to the 3D Printer
Once connected Octoscreen will display “Initializing” or “Printer Offline” until the printer is powered on. Octoscreen will auto connect to the printer once you power it on and it is connected to the Pi. This screen is displayed whenever your printer is disconnected as well and it doesn’t seem to have a timeout so if you leave your pi powered on and the printer off then this screen will be displayed continuously.
15) Done With Setup, Let’s Use Octoscreen!
OK so we’ve done it, now time to explore the interface and the options. The user interface is very simple with some colored dividers between the plain white icons and text.
Clicking on Home will provide your homing options for X, Y, Z, or all. Actions will bring you into some additional sub-menus for Movement, Filament, Fan, and Temperature controls. Filament an also be entered from the main screen.
Configuration and Print menus are fairly self explanatory though I was not particularly impressed with the degree of control one has once a print is started. Pausing and Canceling a print work fine but Control didn’t give me options such as live Z adjustment which is kind of a big deal if you want to actually use this touch screen to control a print.
Comparison to Octodash and Final Thoughts
I decided to try Octoscreen in place of Octodash on my Ender 3 to see the other options out there. While Octoscreen was just as easy to set up as Octodash, perhaps a bit easier as it didn’t have as much stuff to set on the first time boot, it just doesn’t have as much functionality. You can create some custom buttons but they are fairly restricted in what they can do. The interface itself looks dated and is not customizable from within the UI itself. There is no timeout option for the screen which means for someone who leaves their Octoprint server running all the time there will always be an illuminated screen and the system will constantly be cycling and trying to connect to the pi. Octoscreen is a completely functional interface but Octodash is a far superior option for a daily driver and I have already swapped back to my previous SD card and Octodash.
Hi Kieran, can you use the the Raspberry Pi 0?
The pi 0 does not work well for octoprint, you really need a Pi 2, 3, or 4.