High Temperature 3D Printing

By: Omar Metwally, MD

Principal Investigator

Analog Labs, Logisome, Inc. R&D




To print materials with high tensile strength and heat resistance.

Technical Objectives

  1. To install a heat-resistant heat block and nozzle

  2. To install a PT100 sensor and amplifier

  3. 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. Don’t try this unless you know what you’re doing. You are responsible for your own actions. Stay alert, keep an orderly, well-lit work bench, and make sure there are no children or pets anywhere nearby. Always keep a running 3D printer in sight!


  1. 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 choke collar at the top to free the cables where the sheath enters the encasement.

E3D’s guide to replacing the v6 hotend, as well as Prusa’s writeup on replacing the thermistor, are good references.


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.

Download and install the Arduino IDE and Slicr PE (Prusa Edition).

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.

Screen Shot 2019-03-14 at 1.44.01 PM.png

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, you should now be able to heat your nozzle to exceedingly high temperatures and print a wide 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!