Skip to main content
  1. Blog/

A sleek Prusa i3 MK3S Raspberry Pi 4 Upgrade

·11 mins·
Running a Prusa i3 MK3S with Octoprint definitely improves the overall printing experience. You can quickly upload print jobs from the slicer and check on the printing process remotely. Prusa even has a guide on how to install a Raspberry Pi Zero W directly onto the EINSY board. However, the little board struggles to run Octoprint and in some cases it can even cause layer shifts that ruin a print entirely! Doing a Prusa i3 MK3S Raspberry Pi 4 Upgrade is a little more effort, but absolutely worth it.

What I enjoyed most about the Raspberry Pi Zero W was how well integrated it was into the case. The printer was still just a single unit that did not have any extra wires hanging around. I wanted to have the same with a more powerful Raspberry Pi board, but it obviously couldn’t fit into the regular case. So I started to look around for a sleek alternative, and found one.

It is the Prusa MK3/S EINSY Raspberry Pi 4B/3B Enclosure with support Brace by KalleKnall. The case not only fits the RPI4 and the EINSY board at the same time, but also increases the sturdiness of the frame by adding a frame brace. Additionally, it also adds ventilation to the case through an optional case fan. My only nitpick would be that some ports of the RPI4 are obstructed, but none of them are really needed as the most important USB ports are easily accessible.

What you need
#

Here’s a list of tools and materials you’ll need when replicating this build. Some of those are affiliate links; just an attempt to recoup some hosting cost in lieu of using annoying ads.

Material
#

Item#CommentBuy
Raspberry Pi1Anything starting with the 2B ought to work. I used a 4B with 2 GB of memory.Amazon.com
Raspberry Pi Heatsinks1Since the RPI is already exposed to a rather hot environment, I recommend adding heatsinks to it.Amazon.com
MicroSD-Card1SD cards have gotten ridiculously cheap. Anything above 8 GB will probably do.Amazon.com
DC-DC Converter
5V/2A (10W)(1)In this guide I went with what I had, that is why I used the 10W converter. The manufacturer recommends adding a heatsink when requiring more than 2A.Amazon.com
Banggood
DC-DC Converter
5V/5A (25W)
(Recommended)(1)This is the recommended 25W module, especially if you want to use the RPI to power additional devices!Amazon.com
Banggood
Low Noise:
40×40×10 mm fan
5VDC(1)This case fan is technically optional but increases the lifespan of both the Raspberry Pi and the EINSY board.
The 5V version runs through the DC-DC converterAmazon.com
High Performance:
40×40×10 mm fan
24VDC(1)This case fan is technically optional but increases the lifespan of both the Raspberry Pi and the EINSY board.
The 24V version runs directly on the Prusa power supply and is relatively noisy.Amazon.com
2-Pair 1,5 mm² / 16 AWG wire~2mThe included wire of the Prusa is too short. Rather than splicing something together, I would recommend getting appropriately gauged wire. Stereo speaker wire seems to make good high-power DC cables.Amazon.com
Jumper WireSome jumper wires to connect the internals together.Amazon.com
Banggood
M3 Hexagon Full Nut to DIN22Cable mounts: 8
Raspberry Pi: 4
Einsy Board: 4
Cover: 8
Fan: 4Amazon.com
M3 Hexagon Nylon Insert Thin Nut3Brace to Case: 3Amazon.com
M3 x 8 mm Cap Head Hexagon Socket Drive Screw18Cable mounts: 8
Raspberry Pi: 4
Case to Frame: 2
Einsy Board: 4Amazon.com
M3 x 10 mm Cap Head Hexagon Socket Drive Screw4Brace to FrameAmazon.com
M3 x 12 mm Cap Head Hexagon Socket Drive Screw8CoverAmazon.com
M3 x 10 mm Countersunk Head Hexagon Socket Drive Screw3Brace to Case
Note: You can make do with regular cap head screws.Amazon.com
M3 x 12 mm Countersunk Head Hexagon Socket Drive Screw12Cover: 8
Fan: 4
Note: You can make do with regular cap head screws.Amazon.com
M3 Form A Flat Washer4Brace to frameAmazon.com
M6 3030 T-Nuts4Brace to frameAmazon.com
M4 x 10 mm Cap Head Hexagon Socket Drive Screw2FrameAmazon.com
M4 Hexagon Full Nut to DIN2FrameAmazon.com
Zip Ties2To tame the cable beastAmazon.com
Spade Wire Connectors4To crimp the wire ends together. Stranded wire should not be used in screw terminals because it damages the strands. Soldered stranded wire, even less so! Invest in a crimping tool (see below).Amazon.com

BOM

Tools
#

ToolCommentBuy
3D PrinterObviously, needed to print the case.
Small ScrewdriverTo work on the wire terminals.
Allen KeysFor the M screws.Amazon.com
MultimeterChecking wiring and voltage levels. Optional but very recommended.Amazon.com
Banggood
Soldering Station / IronSoldering the pins/cable onto the DC-DC converter. That’s the one I have, which is a bit pricey, but served me well!Amazon.com
Wire Crimping ToolCrimping the wire ends. Very handy tool.Amazon.com
Lab Bench Power SupplyKORAD KA3005 is the best bang for your buck you can get as a lab power supply. Optional, but useful while doing tests.Amazon.com

Tools

The Case
#

Print the Case#

Printing the case. The different fan duct is the Delta-P fan duct by teookie!

I printed it in PETG, 20% gyroid support and two different colors. The latter primarily because I ran out of orange filament after printing the base, but the two-color scheme actually looks rather good! Even though it does vaguely remind me of hot wheels.

Assemble the frame brace and the EINSY case.
#

The installation is a little tricky, and the screws going into the frame require strength to cut the appropriate threads into the metal frame. Obviously, make sure you have everything you need printed at this point!

Case and frame brace installed.

The Electronics & Wiring
#

Preparing the DC-DC Converter
#

The Raspberry Pi 4 is rather power hungry, so we cannot use the Einsy board as a power source like the Pi Zero did. Instead, we can hook into the 24 VDC printer power supply and use a DC-DC converter to convert it into the 5V we require for the RP4.

I use a converter that has a variable output. It can take an input voltage of 3-32V and convert it to anything between 5-35V. For our use-case, I hooked the input side to my lab bench PSU set to 24V, and adjusted the little variable resistor until the output voltage was just about 5V. I soldered some pins to the board, so I can use breadboard jumpers for the internal wiring. The wire diameter is a bit thin, but it should be fine.

When using the recommended converter, this step is not necessary. It is already intended for a 5VDC output and has a variable input.

Preparing the Raspberry Pi
#

Before installing the RPI into the case, we need to apply the heatsinks to the Raspberry Pi. When installing the heatsinks on the RPI4B, make sure not to short out the capacitor on the board!

Afterward may be a good time to also give the RPI a short test run using the DC-DC converter and a 24VDC power supply (for instance, your lab bench power supply).

Wiring
#

Install all components so you can begin to do the wiring. The installation is a little tedious. Getting the M3 nuts in all the way can be annoying because they tend to shift and get stuck or otherwise refuse to cooperate.

Power and Data wiring

The green connection connects the RPI to the RESET pin on the EINSY board, allowing the RPI to hard-reset the board if necessary. The yellow pin is just another GND pin and can in theory be omitted.

Wire everything as seen above. You can put a ring or spade connector onto the same terminal on the Rambo board as the input wires. As we power the RPI through the DC-DC converter, we don’t need to use the 5V VCC pin of the Rambo board. However, to make the serial communication between the devices possible, they need to share a common ground. That is why the GND pin of the Einsy board also needs to be wired to GND. Complete the rest of the wiring as described in the printer manual.

Cut the new power supply wires to the appropriate length and crimp the wire ends with spade connectors. Do not use tinned wire ends! Tinned wires used in screw terminals can become a fire hazard.

If you chose to also install a fan into the case, this is also the time to put the fan wires on top of the spade connectors before screwing the terminals tight. The wires are solid core, so they do not pose a fire hazard.

Finally — for the serial interface to be enabled on the printer itself, you need to activate the RPi port — this can be done by going to Settings and toggling the RPi port from [off] to [on].

The Raspberry Pi
#

Install Octoprint and enable the internal serial connection.
#

Follow the steps as described here to install Octoprint. The prepared SD card can then simply be plugged into the RPI.

The first thing to do, to enable the internal serial connection of the RPi, is to swap ports used by the GPIO and the internal Bluetooth chip. There is a file called config.txt that can be found in the /boot/ directory. You can open it with nano /boot/config.txt, after which you need to add dtoverlay=pi3-miniuart-bt to the end of the file.

Swapping ports used by GPIO and Bluetooth

Disable Linux serial console
#

By default, the primary UART is assigned to the Linux console. Since we want to use this interface for a different purpose, we need to change this. This can be done by using raspi-config:

  1. Start raspi-config: sudo raspi-config.
  2. Select option 5 – interfacing options.
  3. Select option P6 – serial.
  4. At the prompt Would you like a login shell to be accessible over serial? answer ‘No’
  5. At the prompt Would you like the serial port hardware to be enabled? answer ‘Yes’
  6. Exit raspi-config and reboot the Pi for changes to take effect.

Adding serial port
#

Last part of the configuration is in the web interface. Open your browser and type either “the OctoPrint mDNS hostname” or the IP address of the Raspberry Pi. You may need to go through the welcome wizard first.

As soon as you arrive at the home screen, open “Settings” (top right), head to “Serial Connection”, then “Additional serial ports” and insert the following:

/dev/ttyAMA0

Save the change and reboot OctoPrint. After the reboot, select the new port and connect to your printer.

Completed connection via the internal GPIO ports

Set up your printer profile
#

Configure the printer profile as shown below. Notable is the custom bounding box, which prevents “out of bound” errors. These would otherwise occur because PrusaSlicer first places a line of filament outside the printing area to get a proper flow going.

General Settings
#

  • Name: Prusa I3 MK3S (or whatever you like)
  • Identifier: (filled in automatically)
  • Model: Original Prusa I3 MK3S

Print Bed and Build Volume#

  • Form factor: Rectangular
  • Origin: Lower Left
  • Heated Bed: yes
    • X: 250
    • Y: 210
    • Z: 210
  • Custom Bounding Box:
    • X: 0, 250
    • Y: -10, 220
    • Z: -1, 210

The PrusaSlicer first prints what is called a purge line outside the actual printing area to get an ideal material flow. That is why the custom bounding box is needed, it prevents Octoprint from throwing errors when the printer wants to print “outside its printing area”.

Axis
#

  • X: 10,200 mm/min
  • Y: 10,200 mm/min
  • Z: 720 mm/min
  • E: 7,200 mm/min

Hotend and Extruder
#

  • Nozzle Diameter: 0.4 mm
  • Number of extruders: 1

Set up the default filament temperatures (optional)
#

Temperature Presets

I’ve added a few of the most common filament types and the default temperatures they’re printed with. This is completely optional.

And we’re done!
#

Back in its enclosure.

After another XYZ calibration (which you should do whenever you move the printer), it is done. It does look quite nice and sleek, with the RPI integrated in the Einsy enclosure. I’m not sure if it was worth the effort though, in hindsight, a separate case for the RPI with a regular USB cable to the printer might’ve been just as good. Better, even, if placed outside the enclosure, and thus not exposed to the higher temperature.

Something to consider, and possibly do in the future. For now, I’m happy to have replaced the old RPI Zero W with the speedy RPI4.