Octodash is a great way to add an additional layer of user interactions to your 3D printer being controlled from Octoprint. Installation of a touchscreen and Octodash on a printer such as the Ender 3, allows for controlling Octoprint directly in front of the printer without needing a PC or smartphone. The ability to trigger a sliced gcode file, start an autobed level, and load and unload filament are all great features. Read on to learn how to install and setup Octodash on a Raspberry Pi with touchscreen.
What Is Octodash?
Octodash is a simple touchscreen user interface (UI) for Octoprint. It is open sourced dashboard optimized for 3.5″ to 7″ touchscreens. Managed by Timon G (username UnchartedBull) it allows for easy and clean interactions with and Octoprint server without needing a separate computer or web browser. Octodash does not replace Octoprint but instead is a front end for the existing installation.
Why Do I Want to Install an Octodash 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 Octodash is for you.
Supplies Needed to Install and Octodash 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 Octodash 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 Octodash 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) Change the Boot Options to Allow Autologin
You need to enable Console Autologin to ensure that the Pi is logged in and ready for Octodash upon a system reboot. If you do not do this you will need to connect to the Pi after every boot and log in before you can run the Octodash service.
10) 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.
11) Install Octodash
Head to the Octodash github and run the bash script found there to install. You’ll select the options you want to enable as it proceeds.
12) 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.
13) Reboot the Pi
After a reboot if you did everything right you should see the first time Octodash setup screens come up.
14) 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 Octodash had required input that needed a keyboard but the current release can be done w/o a keyboard or VNC.
15) Configure Octodash
Newer versions of Octodash should detect the available Octoprint instance Allowing access after sending the API request, much easier than typing in the key Set up your printer name and make sure the box is checked for the touch screen Set up the feed length and speeds for load and unload scripts Select the plugins you want enabled All done!
Either through the VNC or the touchscreen configure Octodash with the settings you want. Most of this can be changed later if you realize your filament load settings are not correct so don’t worry too much at this stage.
16) Reconnect the Pi to the 3D Printer
Once connected Octodash is sleeping will be displayed until the printer is powered on. You simply touch the screen to trigger Octodash to search for and connect via the Octoprint settings. This screen is displayed whenever your printer is disconnected as well. If you don’t turn off your Pi with the printer there is an option in the settings menu to turn off the screen after it has been sleeping for some time.
17) Done With Setup, Use Octodash!
OK so we’ve done it, now time to explore the interface and the options. The user interface is sharp and clean with nice big icons and good contrast. Clicking on the files, filament, or control icons will bring up additional menus.
Clicking on the heater or fan icons brings you into the controls for that system. If you tap on the gear icon you will find the settings panel where you can correct anything you need to configuration wise as well as customize those 6 buttons in the control menu.
Here we can see the user interface options when the printer is currently printing. Aborting and pausing are obviously needed and the adjust screen with options like live Z are very welcome.
My decision to install an Octodash touchscreen on your 3D printer is a great was to add a user interface for Octoprint with a lot of nice features and plenty of room to grow. Personally I would love to see a bed visualizer display plugin supported in this UI. What questions do you have or features would you like to see? Let us know below in the comments!
Can you use this in place of the mainboard on a Creality Ender 3 Pro? I bought a new Ender 3 Pro but I keep getting ERR: TOO FAR! when trying to set the Z offset. I’ve tried working with support from Creality and haven’t found a fix for it yet. I’ve tried numerous firmware files, and I’ve had three 4.2.7 replacement boards…. I have no idea where to turn next other than send the printer back to Creality.
But if I can use something like Octoprint with this UI, it might fix the issue by bypassing the board.
Hey Robert,
A raspberry pi by itself cannot control a 3D printer as it doesn’t have stepper motor drivers or the connections for heaters, endstops, etc.
That being said the processor on a 3D printer mainboard is nothing special and there is a solution to bypassing it using a pi and just using the board as a relay for the connections and drivers. That solution is called klipper firmware and it moves all the processing power to the far more capable raspberry pi. This still requires a functional mainboard but it can run on most boards, even the cheap stock boards.
I’ve installed klipper on my Ender 3 and am actually working on a post about it now (I’ll probably have it posted in mid August) but as a spoiler for the post, it’s very nice and I like it a lot. Enough so that I’ve recently build a Voron v2.4 printer which is controlled by it which I’m also planning to write up a series of posts detailing the build and the more advanced klipper firmware stuff that I’ve been learning.
Klipper is maybe not as friendly as the standard marlin firmware as it doesn’t natively support a bunch of the standard gcode commands but you can write your own macros to recover and improve that functionality. If you aren’t afraid of coding and a little bit of a learning curve I would recommend looking into it.
Your specific error sounds like an issue with you trying to set a negative z offset which you might have disabled in your firmware. You might be able to move your physical endstop to be a bit lower and then set the offset where you want. You could also install the z-offset plugin in cura and then set an offset where which will allow you to artificially change the offset further when slicing.
Thanks for reading!