High Performance 3D Printing
By: Omar Metwally, MD
Analog Labs, Logisome, Inc. R&D
To print materials with high tensile strength and heat resistance.
To install a copper-plated heat block and nozzle
To install a PT100 sensor and amplifier
To modify and flash printer firmware
Making modifications to a 3D printer entails many potential hazards and should only be done by someone with the proper technical qualifications and tools.
⚠️ Improper use can result in serious personal injury, fire damage, and damage to the 3D printer.
⚠️ The purpose of this writeup is to illustrate the potential for printers to be customized, not to provide instructions on how to modify your printer. Don’t try this unless you are qualified to modify and repair 3D printers.
⚠️ Prusa printer parts are made of PETG, which is not compatible with printing high-temperature materials such as ULTEM, PEEK, and polycarbonate due to the high extrusion temperatures required. This all-metal extruder body and cover for the MK3 replaces the PETG parts to specification to prevent the printer melting on itself.
⚠️ You are responsible for your own actions.
⚠️ Always keep a running 3D printer in sight!
⚠️ Never operate a 3D printer when children or pets are nearby.
Prusa MK3 3D printer
Jumper cables (3) and pins (3)
Assorted Allen wrenches that come with the MK3
Replacing the Mk3 Hotend
The heat block and brass v6 nozzle that come with the MK3 printer, and many FDM 3D printers on the market, are not suitable for printing at temperatures exceeding 300C. In order to achieve high-temperature printing, a copper-plated heat block and copper-plated v6 nozzle are necessary.
Make sure the printer is powered off and unplugged before working on it.
In order to remove the hotend that’s currently in place, you’ll need to remove the cable sheath to expose the cable bundle feeding the hotend.
You’ll also need to open the Einsy encasement and remove the collar holding the cable bundle in place as it feeds into the encasement.
Cut the zip ties carefully to avoid cutting through wires.
The cable sheath unwraps like a Chinese finger trap.
I personally find it easier to work on the RAMBO board with the encasement door completely removed. You’ll need to remove the cable collar at the top to free the cables where the sheath enters the encasement.
Removing the side and front fans makes room to access the hotend encasement.
⚠️ Never operate on a printer while it’s plugged in or while it’s still hot. Hotends can reach several hundred degrees celsius, casing severe injuries and starting fires.
The “hotend” (heat sink + heat block + nozzle + PTFE tubing) can not be easily removed by tugging on it due to the awkward angle of the PTFE tubing (not shown).
A work area that allows you to turn the printer on its side will facilitate access to the hotend. I liberated the hotend by using needle-tip pliers and pulling perpendicularly to the hotend’s long axis.
2. Installing the Pt100 amplifier Board
Printing materials with a high glass transition point requires the capacity to accurately sense a wide range of temperatures from the hotend. In order to equip a Prusa MK3 with this capability, a PT100 sensor and amplifier board is necessary.
Fig. 1 PT100 amplifier board
On the end with 2 input pins, the PT100 connects to the PT100 sensor via the Molex cable included in the PT100 upgrade kit. The end with the 3 input pins (5V, ground and analog) connects to the Einsy RAMBO circuit board.
Identify the 5V (red jumper cable), ground (brown jumper cable), and analog (white jumper cable) inputs. These connect to the 3D printer circuit board. The exact wiring varies depending on the make and model of your printer. In this case, the PT100 is connected to the MK3’s Einsy RAMBO circuit board.
Fig. 2 RAMBO pinout
The above diagram helps identify the correct pins on the RAMBO board. Compare the diagram with your actual circuit board (Fig. 3).
Fig. 3 Default Wiring
Note the yellow-green thermistor cable plugged into T0 and the location of the P3 pins. Although the Einsy RAMBO board is based on Arduino Mega 2560, the pin nomenclature of the RAMBO differs [3, 4]. Before proceeding, it’s important to correctly identify the 5V and GND pins on P3 because the PT100 amplifier board 5V and GND pins connect to these.
Theoretically there are a few candidate analog inputs on the RAMBO that can be used to read the temperature from the PT100 analog pin. I could not successfully read analog input from Pin 62 (PK0) as indicated in Fig. 2, which theoretically would be a suitable analog input. I did manage to get a temperature reading by connecting the PT100 amplifier board analog input to the left T0 pin, as shown below.
Fig. 4 Final RAMBO wiring
The white circle indicates the PT100 amplifier analog input connected to T0. The brown circle indicates the 5V input on P3, and the red circle indicates the 5V input on P3. The thermistor cables are marked by the blue circle.
Make sure to complete PID calibration (in the MK3 menu, choose Calibration -> PID calibration) before using your new hotend.
3. Modify and Flash Firmware
With the heat block and nozzle replaced with their copper-plated counterparts, and with the PT100 amplifier connected to the RAMBO board, it’s time to modify and flash the printer firmware. Note that the PT100 amplifier analog input was connected to the T0 input of the original thermistor.
Clone the Prusa firmware Github repository onto your computer.
In the Arduino IDE, open Firmware/Firmware.ino
⚠️ All changes are at your own risk! Making mistakes here can brick your system and render it unusable or create unsafe operating conditions.
Install the RAMBO AVR target board in the Arduino IDE:
Tools -> Board -> Boards Manager…
Type in “RAMBO” and install the RAMBO board. This is necessary in order to correctly compile the firmware so that the binary is readable by the MK3.
After installing the RAMBO AVR Board, select it.
In the subdirectory Firmware/variants, locate the configuration file (
.h) corresponding to your printer model.
Make a copy of it, name the copy Configuration_prusa.h and move it to the Firmware directory.
In the file Firmware/config.h set LANG_MODE to 0.
Try compiling the default firmware first before making any modifications:
Sketch -> Verify/Compile
Sketch -> Export Compiled Binary…
The latter command saves the binary as Firmware/Firmware.ino.rambo.hex
Now connect the MK3 to your computer via USB, open Slicr PE, and flash the binary:
In Slicr PE:
Configuration -> Flash printer firmware -> Select Firmware/Firmware.ino.rambo.hex
If everything goes well, you’ve successfully compiled and flashed the printer firmware. Make sure your printer is functional after doing this before proceeding.
The next step is to modify the firmware to tell the RAMBO board that the PT100 amplifier has been connected, effectively removing software limitations to raising the maximum print temperatures.
In the Arduino IDE, open Configuration_prusa.h (which you created earlier) and uncomment the following line:
If you connected the PT100 amplifier board’s analog input to a pin other than T0, you’ll need to indicate that pin in the file pins_Einsy_1_0.h. Once again, note the difference between Einsy pin nomenclature and Arduino nomenclature.
#define TEMP_0_PIN 0 // keep zero if PT100 board is connected to T0
Save, compile and flash as described above. If everything goes well, the nozzle can now be programmed to exceed standard operating temperatures, permitting use of a wider range of materials.
One drawback of plugging the P100 amplifier board analog input into T0 on the RAMOB board is loss of the Z-axis reading. You should still be able to perform XYZ calibration and print as usual, but your LCD display will no longer read a Z-axis correction in the upper right corner, making live Z-tuning challenging. If you succeed in reading analog from another pin and circumventing this problem, please share your experience!
Good luck and happy printing!