How to Compile and Flash Marlin to your 3D Printer’s Board

geekering marlin

In this tutorial you’ll learn how to use Visual Studio Code to compile and flash Marlin Firmware to a specific 3D printer board.

What is Marlin

Marlin is an open-source firmware for 3D printers, developed and maintained by a community of developers. It’s designed to control the motion of the printer’s motors, read input from sensors, and manage the printing process. Marlin is widely used in FFF (Fused Filament Fabrication) 3D printers of different kinematics, such as cartesian, CoreXY, Delta and more, and it’s compatible with a wide range of microcontrollers and other hardware components. 

Marlin offers many advanced features, including support for up to 8 extruders, advanced pause and resume capabilities, and power-loss recovery. It also provides a user-friendly interface for configuration and customization. It’s constantly being updated and improved by its community of developers, making it a reliable and popular choice for 3D printing enthusiasts and professionals alike.

There are several reasons why you might need to compile and flash Marlin to your printer’s board again:

  • Customization: Marlin offers a wide range of customization options, including support for different types of printers, sensors, and other hardware components. To take advantage of these features, you may need to modify the firmware and compile it again.
  • Bug fixes: Occasionally, bugs or issues may arise in the firmware that require a fix. In these cases, you’ll probably need to compile and flash the firmware with the updated code.
  • Upgrades: Upgrading the printer hardware (for using a new screen, sensor, or even a new board) or adding new features may require changes to the firmware. Compiling and flashing Marlin again with the appropriate modifications will ensure that the printer is able to work with the new hardware or features.
  • Optimization: Marlin can be optimized for specific types of printing, such as high-speed printing or high-resolution printing, and to achieve optimal performance with your printer, you may need to modify and compile the firmware with the appropriate settings.

Preparing VS Code

  • Download and install VS Code, if you don’t have it already;
  • Open VS Code and go to the Extensions tab;
  • Type “marlin” in the Extensions search bar;
  • Find the Auto Build Marlin extension (see image below) and install it. This extension provides a one-button interface to build and upload Marlin Firmware to your selected motherboard.

Building Marlin

  1. Download the Marlin Patched Source code. It’s important to download this “patched” version of Marlin, as it is the one with bug fixes. In this tutorial, we’ve downloaded “Marlin 2.1.2 with bug fixes“;
  2. Download the Marlin Firmware configuration files (.zip) for your version of Marlin. In our case here, the “2.1.2” .zip file;
  3. Unpack both of these files in a folder of your preference;
  4. Go to the configuration files folder (in our case, it’s named “Configurations-release-2.1.2“), in config > examples and look for your printer and its motherboard. You might need to open the electronics case to take a look at what you have and check which processor came with it. If your printer is not present, try and find a printer with kinematics that are similar to your printer, then adjust accordingly. It’s most important that you start with configuration files that are suited for your printer’s main board, as that will make it way easier to configure. For this tutorial, we went to Creality > Ender-3 > CrealityV422;
  5. In the motherboard’s folder, you should see at least these two files: Configuration.h and Configuration_adv.h. There might also be custom _Bootscreen.h and _Statusscreen.h files, depending on the printer chosen and its display;
  6. Copy all these files to the Marlin source code folder, in Marlin-2.1.x > Marlin. You’ll need to replace the Configuration.h and Configuration_adv.h files already present in this folder. Now the source code contains the configuration files for the motherboard you’ve chosen;
  7. Launch VS Code, go to File > Open Folder and select the Marlin source code folder (Marlin-2.1.x). The Auto Build Marlin extension window should be automatically opened and you should be able to see the information for the printer and motherboard you’ve chosen (see image below);
  8. In Environments, look for your board’s version and click Build. After this process, a .bin file with the firmware will be generated;
  9. If your board can be flashed via USB, just click Upload in the Auto Build window. Make sure there is no other software running that might keep the COM ports busy, like Cura. You might also need to install specific drivers for the USB-to-serial chipset that came with your board (usually CH340);
  10. If that’s not the case, just move the .bin file generated to the root folder of an SD card and connect it to your printer. The firmware will be flashed once the board is power-cycled (wait on the blank screen, as it usually takes a minute to flash).

And that’s it! Now you’ve learned to use the Auto Build Marlin extension in VS Code to build Marlin Firmware to a specific motherboard. In future tutorials, we’ll be able to cover some of the firmware customization options, or even the addition of new hardware to your printer!


[1] Marlin Firmware Official page.

2 thoughts on “How to Compile and Flash Marlin to your 3D Printer’s Board

  1. Thought this would solve my problem
    Ok, I’m semi-retired Chemical Engineer. I had to pack full time work and started with an old school Mankati FS XT. Now a couple of years ago the motherboard blew something important and I was stuck. Complete mechanical rebuild, bought BTT 1.4 Turbo as advised, even edited the Marlin Config files. Trying to find out how to compile with VS, What to load onto the board, which order, whole folder? This solves it! Got to step 4, In my version of Marlin, example file are not there, have to be downloaded. From that lot I have to find something that looks like mine? HELP!

    1. Hello, Simon!
      It seems in BTT’s Github there are some versions of Marlin for the motherboard you’ve mentioned (link here). Maybe you could check out the configuration files there and see if that helps!

Leave a Reply

Your email address will not be published. Required fields are marked *

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO