Skip to content
How to Install and Upgrade 3D Printer Firmware

How to Install and Upgrade 3D Printer Firmware

It does not take long for new 3D printing hobbyists to see people talking about modifying their printers using third-party programs, 3D printed upgrades, or new firmware. While the idea of messing with the fundamental aspects of your machine may be daunting, there are a handful of reasons to consider upgrading your printer’s firmware. This article covers the basics of 3D printing firmware including how to flash and upgrade the firmware.


What is firmware in 3D printing?

Firmware refers to a specific program that serves as the “brain” of your 3D printer by translating G-code instructions from the sliced model. The firmware runs on the printer’s mainboard and comes in many types, such as Marlin and RepRap that each have their own set of features and benefits.

The fundamental actions carried out by your 3D printer during the printing process, such as stepper motor movement or heater management, require split-second calculations by the firmware.

There are a variety of 3D printer firmware options, with some having unique features that are well-suited to exerting complete control over the printing process. We cover the most widely used firmware options below.

Popular firmware options for 3D printing


Marlin is by far the most well-known 3D printer firmware that is in use by the vast majority of the 3D printing community. Several giants in the 3D printer market, such as Creality and AnyCubic, send out their printers with Marlin installed as the default firmware.

Marlin’s popularity has been earned due to its suite of features that sets it apart from other firmware. Its customizability is among the most well-loved of these features, as it allows users to completely fine-tune their printing experience and improve their monitoring and printing control.

Due to this fame and the responsiveness of the developers, Marlin is also accompanied by a wealth of support and documentation. Thus, setting up, customizing, and upgrading Marlin is super simple, and even the firmware beginner can access any number of guides and tutorials available online for their specific problems.

Marlin is a reliable firmware and is recommended to all those who have just started out with 3D printing because of its ease of use.


RepRap’s firmware also vies for domination in the world of 3D printing. This firmware was originally designed for use with the highly advanced (and pricey) 32-bit Duet control board.

Some makers prefer RepRap over Marlin due to its ease of configuration. RepRap’s firmware includes a specialized web configuration tool that connects to the printer’s firmware and allows users to easily carry out modifications.

The main difference between these two powerhouse firmware options is that RepRap’s compatibility isn’t nearly as expansive as Marlin’s. The former only works on 32-bit boards whereas Marlin can also be used on 8-bit boards.


Repetier is a solid, high-quality firmware with loads of features. This option boasts widespread compatibility and has support for most boards. While it may not be as flexible as the former two options, Repetier’s firmware is still highly customizable, making it a great option for the vast majority of 3D printing enthusiasts.

Like RepRap, Repetier also has a web-based configuration tool to streamline customization. Repetier has also published a compatible slicer called Repetier-Host, which allows users to exercise more control over their prints with minimal risk of error.


Unlike the well-established firmware options described above, Klipper is a relatively new firmware. It has begun to gain traction as a reliable firmware option owing to its remarkable calculation speeds, making users’ 3D printer faster at speeds of 70–100 mm/s.

This firmware runs off a single-board computer like the Raspberry Pi to offload the intensive calculations. This separated process allows the printer to print faster and with better quality with extremely accurate stepper motor movements.

Klipper firmware is currently supported by most printers with Cartesian and Delta 3D configurations and can work on 8-bit boards, unlike RepRap. This firmware is also known for its ease of use, but it lacks the robust foundation of support and upgradability that Marlin is known for.

What is a bootloader? What if my printer doesn’t have one?

Most flashing and upgrading tutorials mention a bootloader, but not all 3D printers are equipped with a bootloader. Budget 3D printers such as the Creality Ender 3 do not come with bootloaders due to space considerations on the microcontrollers inside the mainboard. 

Simply put, the bootloader is the locus of process management for the printer’s operating system. This can streamline program installation and updates, but it isn’t strictly necessary for making changes to the printer’s firmware. There are a few options for dealing with printers without bootloaders, which we cover in detail later on.

How to identify your 3D printer’s current firmware

To identify the firmware currently installed on your 3D printer, the M115 G-Code command can be sent to your printer using a program like Pronterface. Some 3D printers, including the Ender 3 series, are equipped with an “About” or “Printer Info” section in the LCD menu that includes all printer properties information.

The M115command essentially requests the firmware version and capabilities of the current microcontroller or mainboard. The command can be manually entered in the terminal window of any software capable of sending G-Code commands to a 3D printer.

As noted above, Pronterface is a popular option that allows makers to control, adjust, and calibrate their 3D printers with control over hot end and heat bed PID tuning.

After entering the command, you should see the following information:

FIRMWARE_NAME:Marlin 1.1.0 (Github) SOURCE_CODE_URL: PROTOCOL_VERSION:1.0 MACHINE_TYPE:RepRap EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff

How to flash/upgrade firmware

Our Marlin firmware guide details all the steps required to get a supported version of Marlin installed on your 3D printer, including setting up the Arduino Integrated Development Environment (IDE). All firmware options follow the same general steps, so we cover the basics below using Marlin as an example.

To install or upgrade a new firmware version on your 3D printer, first download the latest release from the developer’s website. For Marlin, the latest release can be found on the “Download” page. Ensure that the Arduino IDE is set up.

The basic process for flashing firmware is presented below. For more details, be sure to check out our Marlin firmware article.

First, find the latest release of your target firmware. At the time of writing, Marlin v2.0.9.3 is the latest version and can be obtained from their Downloads page. Download the .zip file.

Next, extract the .zip file. Open the extracted file and open the “config” folder.

From here, you will need to replace the default configurations files with the information for your specific 3D printer. Select the “examples” folder, find your 3D printer, and select your machine’s mainboard. An example pathway is presented below:

“Configurations-release-” > “config” > “examples” > “Creality” > “Ender-3” > “CrealityV1”

Then, copy the “Configuration” and “Configuration_adv” files. Paste these files into the “default” folder. If you are using Windows, confirm when prompted to replace the existing files with your copied files.

Launch the firmware in your Arduino IDE using the .ino file found in the folder. When Arduino opens up, make sure that you select the right board in the “Tools” section.

Next, select “Verify” in the top-left corner to initiate the firmware compiling process. After the compiling process is complete, you will now simply connect your 3D printer with the computer using a USB connection if your printer has a bootloader. Ensure that your printer is not connected to power. Once connected, select “Upload” (right next to “Verify”).

Before recalibrating your printer, you can select “Initialize EEPROM” in your 3D printer’s interface to restore the information stored in your configuration files. We still recommend leveling the bed and checking other configuration settings to ensure that your printer is ready to start working on projects with your new firmware.

If the firmware you selected is equipped with its own interface like RepRap, simply use the web-based interface to facilitate flashing or upgrading the firmware. You’ll want to verify that the correct configuration files are saved on your SD card throughout this process, similar to the step for copying the configuration files noted above.

How to flash firmware without a bootloader

It is possible to flash firmware without a bootloader by using an external programmer that writes the firmware to the ICSP of your motherboard. This ICSP is present in most boards, so using this workaround is fairly simple. However, having a bootloader is recommended for the vast majority of 3D print makers as it can help manage other print quality and safety considerations, such as heating control.

One external programmer option is the USBtinyISP, which is a tiny, dedicated board equipped with a USB component on one side and ICSP headers on the other. This part is easy to use and very inexpensive.

You can also get a dedicated Arduino board for this job, but this option may be best for makers who have worked with Arduino tech before or are confident in their tinkering and programming skills.

If you are using Windows, install the USBtinyISP driver from Adafruit. We recommend removing the jumper that can be used to power the mainboard or Arduino to avoid backcurrent flow to the computer’s USB port, which can damage it.

In the Arduino software interface, select the proper programmer and board. From here, you can either burn a bootloader to the board right (“Tools” > “Burn bootloader”) or directly upload the firmware of your choice. For the latter, navigate to “Sketch” > “Upload using programmer.”

Using this option rewrites everything stored on the processor. For example, if you burned a bootloader first and then attempted to flash the firmware after, the firmware installation will overwrite the bootloader.

The primary drawback of this method is that subsequent updates will require this full rewriting process, so each version of your firmware will be flashed over the existing firmware, rather than having the existing firmware upgraded while retaining any configuration settings.

How to use Cura to update firmware

If your printer is in the Ender 3 family, you can use Cura to upgrade your firmware. The Cura slicer streamlines the firmware flashing process, and it isn’t even necessary to have a bootloader!

We’ll use Marlin as an example for this section as well, but any compatible firmware can be used so long as the file is in the correct format. Navigate to DanBP’s Marlin Configuration page and find the packaged HEX files that correspond with your Ender 3 setup. If you aren’t using Marlin, ensure that the firmware of your choice is properly compiled as HEX files.

Download and extract the files. Next, connect your computer and 3D printer via your machine’s USB connector.

Then, simply launch Cura and select the dropdown menu beside the 3D printer selection area. From here, select “Manage printers.” This will lead the “Preferences” window to pop up.

Select “Update Firmware.” Then, select “Upload Custom Firmware” and choose the HEX file you downloaded previously. Cura will upload the firmware to your Ender 3 printer with no hassle on your end.

Previous article How to Fix Under Extrusion- What Causes Under Extrusion on Your 3d Prints and How to Fix Them

Leave a comment

Comments must be approved before appearing

* Required fields

Join us as seller