Marlin Firmware Official Site

Marlin on GitHub

Updated 9/24/2020.

Notice

The 1.1.x branch is now EoL, you should consider installing 2.0 instead. It’s quick and painless too and is detailed here.

If you’re still using the stock firmware that came with your CR-10S, you should consider updating. The latest version of Marlin brings lots of enhancements, including important thermal safety enhancements that weren’t enabled on my printer out of the box. In the past, updating from stock firmware meant you’d lose the poweroff-resume feature, but Creality has since released that code, and the functionality is in 1.1.9.

Building the firmware is painless and quick.

I use OctoPrint’s Firmware Updater to plugin to get the firmware hex file onto my printer. Here are the steps for building it yourself. I’m using Ubuntu Linux 18.04 but steps should be easily adaptable to any system with python:

Steps

Prep your environment

  1. Install pip sudo apt-get install pip
  2. Install PlatformIO for building Marlin pip install -U platformio

Get the Marlin code

  1. Clone the Marlin source, you can get the bugfix-1.1.x branch if you’d rather, but it’s not recommended for production.

    git clone --single-branch --branch 1.1.x http://github.com/MarlinFirmware/Marlin

Configure your build

  1. Change into the Marlin directory

    cd Marlin/Marlin

  2. Copy the CR-10S configuration files to the current directory

    cp ./example_configurations/Creality/CR-10S/* ./

  3. If you want to make changes to the defaults, now is the time to edit the files you just copied in. The defaults will work fine.

Build it!

  1. Get into the directory with the platformio.ini file

    cd ..

  2. This builds the firmware, it shouldn’t take long and it will open a window telling you if it passed or failed. You will be asked about your board CPU, you want 2560 for your CR-10S. If you’re using another board, you should verify before going further.

    python ./buildroot/share/atom/auto_build.py build

A successful build will look like this:

success

Obtaining the firmware

You’ll find the firmware file at Marlin/.pioenvs/megaatmega2560/firmware.hex. You can use this with Firmware Updater to flash the firmware to your printer.

You can also download it here if you just want the firmware.

md5sum: f1240bc16a5dd614d8b013fceac7ecd2

If the computer you’re building Marlin on is connected to the printer by USB, you can upload the firmware by running: ./buildroot/share/atom/auto_build.py upload.

Happy 3D printing!

Other models you can build for (Update - February 9, 2019)

Marlin comes with many example configurations for printers. The process should be essentially the same for all of them. You’ll of course need to tweak the command in step 5, and the output location will be different if your printer using a different “Environment” (see the picture above) than the CR-10S.

Here’s a list of other included configurations:

└── example_configurations
    ├── adafruit
    │   └── ST7565
    ├── AlephObjects
    │   └── TAZ4
    ├── AliExpress
    │   └── CL-260
    ├── Anet
    │   ├── A2plus
    │   ├── A6
    │   └── A8
    ├── BIBO
    │   └── TouchX
    │       ├── Cyclops
    │       └── default
    ├── BQ
    │   ├── Hephestos
    │   ├── Hephestos_2
    │   └── WITBOX
    ├── Cartesio
    ├── Creality
    │   ├── CR-10
    │   ├── CR-10mini
    │   ├── CR-10S
    │   ├── CR-8
    │   ├── Ender-2
    │   ├── Ender-3
    │   └── Ender-4
    ├── delta
    │   ├── Anycubic
    │   │   └── Kossel
    │   │       └── images
    │   ├── FLSUN
    │   │   ├── auto_calibrate
    │   │   ├── kossel
    │   │   └── kossel_mini
    │   ├── generic
    │   ├── Hatchbox_Alpha
    │   ├── kossel_mini
    │   ├── kossel_pro
    │   └── kossel_xl
    ├── Felix
    │   └── DUAL
    ├── FolgerTech
    │   └── i3-2020
    ├── gCreate
    │   └── gMax1.5+
    ├── Geeetech
    │   ├── GT2560
    │   ├── I3_Pro_X-GT2560
    │   ├── Prusa i3 Pro B
    │   │   ├── bltouch
    │   │   └── noprobe
    │   ├── Prusa i3 Pro C
    │   └── Prusa i3 Pro W
    ├── hangprinter
    ├── Infitary
    │   └── i3-M508
    ├── JGAurora
    │   └── A5
    ├── makibox
    ├── Malyan
    │   └── M150
    ├── Micromake
    │   └── C1
    │       ├── basic
    │       └── enhanced
    ├── RepRapPro
    │   └── Huxley
    ├── RepRapWorld
    │   └── Megatronics
    ├── RigidBot
    ├── Sanguinololu
    ├── SCARA
    ├── TinyBoy2
    ├── Tronxy
    │   ├── X1
    │   ├── X3A
    │   ├── X5S
    │   └── XY100
    ├── tvrrug
    │   └── Round2
    ├── Velleman
    │   ├── K8200
    │   └── K8400
    │       └── Dual-head
    ├── Wanhao
    │   └── Duplicator 6
    └── wt150