Skip to main content


As you come to customize your 3D printer by adding components, changing parts, and extending the functionality, you will certainly encounter the firmware. The firmware is the software used on the embedded processor driving your printer — and these days open source development has made it refined and easy to get into. Marlin is the firmware used on the Ender 3.

Configuring and building it yourself might seem overwhelming at first, but there’s a handful of rich documentation for this task. The instruction set documented on this page covers any motherboards for the Ender 3 with stock printer parts.


Remember, these instructions only deal with stock printer parts. If you have a BLTouch or other extensions, you will need to also review tutorials on configuring the Marlin firmware for these extensions.

Getting started with Marlin

  1. Download the Marlin latest release and extract it to a working directory.
  2. Take note of your 3D printer motherboard. Is it the stock Ender 3 board? Is it a BigTreeTech SKR Mini E3 — and if it is, what version? You can typically find this by observing the silkscreen on the surface of the board:
    Example of motherboard silkscreen on the BigTreeTech SKR Mini E3 V2.0

    Example of motherboard silkscreen on the BigTreeTech SKR Mini E3 V2.0

  3. With knowledge of your the make, model, and version number of your 3D printer motherboard, locate the corresponding configuration files from the handy Marlin Configurations git repository by digging down.
    As an example, the location of the BigTreeTech SKR Mini E3 V2.0 board is here.
  4. Copy each configuration file into the “Marlin” directory from the Marlin latest release you downloaded and extracted in step 1:
    Resulting directory structure after copying configuration files

    Resulting directory structure after copying configuration files

  5. Most importantly, you will need to ensure the custom bootscreen is enabled in “Configuration.h”:
    // Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION **
    // Show the bitmap in Marlin/_Bootscreen.h on startup.

Now you’re ready to roll with customizing the boot screen!

After you’re done configuring your firmware, it will come time to build. This task typically requires “PlatformIO” on “Visual Studio Code”. It works across platforms like Windows, Mac, and GNU/Linux. Once you’ve installed PlatformIO, you may need to edit “platformio.ini” at the root of your Marlin latest release directory. We recommend typing the name of your 3D printer motherboard (eg. “BigTreeTech SKR Mini E3 V2.0”) + “Ender 3” + (“Marlin build” or “Marlin platformio.ini”).

Once you’ve completed the build, take the “firmware.bin” file and place it on an SD card. Turn off the printer, insert the card, and turn the printer back on. It will automatically update itself from that firmware. If your printer stays on a blue screen for more than 2 minutes, you have bad firmware. Don’t panic! The printer isn’t bricked. The engineers behind most of the motherboards were kind enough to separate the firmware loader from the firmware itself. The printer will keep loading firmware even if yours was bunk a few times. When you hit this problem, keep searching for tutorials centered around your setup. There’s lots of useful information out there.

Boot screen basics

You’ve probably noticed the “_Bootscreen.h” file. This is where the splash or boot screen is stored, but it is not an image — rather, the image is stored as a series of bits in C++ code. Fortunately, we don’t have to toggle each one to create an image. We can do it in Photoshop by selecting “Bitmap” 1-bit color indexing. Once the image is saved, it is possible to use a handy Marlin tool to convert the image into the C++ code.

The collection of boot screens

Without ado, here’s the list of our custom boot screens. All one must do is download them and replace the “_Bootscreen.h” file in their “Marlin” directory and build your firmware.

Come and Take it




A well regulated militia…




Free Men Don’t Ask


In Minecraft







Made your own?

Tell us! We’ll include it in the next volume and showcase your work.


E-mail Also, you can hit him up on Twidder @ctrlpew. I am and @jnyboy on Twidder as well. We’d love to see what you do.


This is an AD



Find me on the Wired Twitter

Leave a Reply