Tutorial on how to upgrade a Prusa MK2(S) with the Caribou OLED display
The Original Prusa i3 MK2(S) is already an amazing printer with only quality parts giving good results, which means it does not require any upgrades at all. Except for one single upgrade: the default style of the display is outdated. Updating this LCD2004a screen to a fancy Caribou OLED display is an exceptional upgrade for your Prusa MK2(S) and not hard to execute. A few people already could do the upgrade to their Prusa MK2(S), but it required some coding skills.
Others did this already, so you are ready to do it too by just following the tutorial to upgrade your Prusa MK2(S) with this beautiful OLED display and using Arduino IDE. Before you start with this upgrade, make sure to print the replacement display case, because it is not a direct replacement. Same with the firmware. You need to compile it yourself, using the Arduino IDE, but this guide will help you with the process of upgrading.
Caribou OLED display
A few people already tried to solder a new OLED LCD to the backing PCB of the Prusa MK2(S) controller, but this requires a good soldering iron, a steady hand, a lot of patience, and some coding skills. Because not everyone knows how to do that, Caribou, a competitor of Prusa (also based on the RepRap principle), came up with a ready-to-use controller with an OLED display already soldered. The disadvantage of this board: it has different dimensions, meaning you could not use the original display case anymore. But no worries! Below, I have put a link to a new display case you can print before upgrading.
The display only costs €40.95 and can be purchased from the Caribou website. We will need to update the library files for the display as well, because the display is different from the original one. In this tutorial, I will guide you through all steps to make the display working. Because it is a complex process, I will try to explain it where required.
Compiling and Updating the Firmware for your Prusa
The software to use in this tutorial is the latest version of Arduino IDE (if you want to use OctoPrint for flashing the firmware, you might need PuTTY as well). Windows 10 users can download the Arduino IDE from the Microsoft Store or from the official website.
Install and Setup Arduino IDE
Once you installed Arduino IDE, you can open it and modify the following settings to set the Einsy RAMBo 1.3 board, as used in the Prusa MK2(S):
- Go to File -> Preferences and add the following URL in the Additional Boards Manager text box:
- Select OK and reboot Arduino IDE
- Go to Tools -> Board:… -> Boards Manager and search for RepRap Arduino-compatible Mother Board (RAMBo)
- Install the latest version, select Close, and set the right board in Tools -> Board:… -> RAMBo AVR Boards -> RAMBo
Download Firmware Files from Prusa
Basically, the firmware modification is as follows: start with Prusa’s stock firmware you can download from their GitHub, do some minor changes, and replace the display library files for the Caribou OLED display. Following describes all necessary steps in more detail:
- Download the original Prusa firmware files from their GitHub page. Make sure the MK2 tree is selected. The MK3 firmware will not work on an MK2(S) printer. Extract the .zip folder and store it on a well-known location on your computer.
- Download both controller library files (LiquidCrystal.cpp and LiquidCrystal.h) from here and copy and replace them into the Prusa firmware folder you downloaded in the previous step.
- Go to the variants folder in the Prusa firmware folder and copy the configuration you are using. The original Prusa MK2 and MK2S uses the RAMBo13a motherboard. Paste it in the firmware folder and rename the file to Configuration_prusa.h. This is case sensitive, so, do not forget the capital letter and the underscore!
Compile and Upload the Firmware to your Prusa
Now, it is time to compile the firmware for the set board of your upgrade Prusa MK2(S). In Arduino IDE go to File -> Open… and open the firmware.ino in the firmware folder. The library files will be included while opening the .ino file. If you want some modifications in the firmware, you are now able to make changes to the configuration. Note that errors could appear easily if you start modifying the default configuration files.
In the upper left of the screen are two buttons: Verify and Compile. Connect your computer to the printer with a USB-A to USB-B cable and hit the compile button. The compiling and uploading could take a while. After this is done, it is best to reboot the printer to make sure the new firmware is loaded correctly.
Generating binary (.hex) file to upload through OctoPrint
In some cases, you want to use OctoPrint with your printer, because of a thousand reasons someone could come up with. My reason why I used OctoPrint is quite simple: the cable to connect the computer to the 3D printer was so short, it was a bit uncomfortable to hold my laptop in a weird position for a while.
It is highly recommended to know how to use PuTTY to SSH into your Raspberry Pi to be able to follow this guide. Firstly, we will compile the file, just like in the previous chapter, but in this case not directly to your printer, but to a temporary .hex file that could be uploaded to your printer via the firmware updater plugin. Do the same steps as in the previous chapter, but do not hit the upload button. Instead, select Sketch -> Export compiled Binary. This will generate a .hex file which will appear next to firmware.ino in the Prusa firmware folder.
Uploading the Firmware through OctoPrint on your upgrade Prusa MK2
The generated .hex file should be flashed to your Prusa. We will use the Firmware Upload plugin to do that. The required bootloader will be installed first. A bootloader is a program that is able to read and write processors. This is necessary to be able to update the firmware. Use PuTTY and login to your Raspberry Pi. If you did not change the username and password before, you can just use pi and raspberry respectively as username and password. Give the following command:
|sudo apt-get install -y avrdude|
This will install the bootloader, named avrdude.
Now, it is time to install the Firmware Updater plugin in OctoPrint. Once finished, go to the Firmware Updater menu and select Settings (upper right). Change the following settings (see picture) and click on Save.
Upload the compiled .hex file and hit the flash button. Now there are two options: or it failed, or it succeeds. If you followed previous steps properly, it will succeed.
Replacement Prusa Display Case
Because the thickness of the display is thinner, the original display case does not fit the new display. This means that your upgrade Prusa MK2 requires a new case. Especially for this tutorial, I reverse-engineered the Original Prusa i3 MK2(S) display cover and changed it a bit, so it fits Caribou’s OLED display. The model is uploaded to Thingiverse. It includes the STL, STEP, and SolidWorks files, and the library files as mentioned above.
Modifying this firmware for the Original Prusa i3 MK(s) is not really a hard job. After doing this to upgrade Prusa MK2, I am thrilled with the result. The style of the display matches better with the overall design of the printer, so I would describe this as a finishing touch to your printer and a good starting point of doing other outstanding upgrades to your printer. Given that you can choose which colors to use on the printer itself, now it is even nicer to change the display as well!