Thank you for checking out the Unified Firmware. Sales from our store and donations are what help fund this project and others. We also support Marlin through Patreon as this is what it is built on top of. If this firmware helped you out and you are not already a customer please consider making a purchase from our store to help support us or donate below. Happy Printing! Learn about our team here: About Us


What’s in the download?

  • TH3D Unified Firmware
  • EZOut Installation Guide
  • EZABL Installation Guide/Manual
  • Windows 1.8.7 TH3D Arduino IDE – Pre-Setup for Flashing
  • Mac OS X 1.8.5 TH3D Arduino IDE Installer – Pre-Setup for Flashing
    • If you are having issues flashing on a Mac please use a Windows PC.
  • EZABL STL Mount Pack that contains all Pre-Supported Sensor Mounts and basic printable Solid Bed Spacers for Multiple Printer Models
  • EZABL Enclosure STL Files if you want to change color or make your own
  • TH3D Bed Leveling test STL files in multiple sizes
  • 3D Printer/Uno USB Drivers – CH340 & FT232R
  • Pronterface GCode Sender Utility

How to use the firmware: Read the README file in the package to get started and read the top Configuration.h file for directions. EZABL_ENABLE is NOT needed or present anymore in new releases. Only uncomment the probe mount and it will enable the EZABL system.

PLEASE NOTE: You must have a bootloader already on the printer to flash the firmware over USB. Printers with the 1284p chip need a bootloader. Here is how to load the bootloader with links to the hardware needed: See the printer support table below to see if your particular model needs a bootloader. Printers that need the bootloader on the support table below have a “ᵇ” after their name.


ALL slicers (Simplify3D, Cura, Slic3r, etc) or anything else that connects to the COM port must be CLOSED for the firmware to be flash. If anything is connected to the COM port when flashing it will fail, typically “access denied” is listed in the error section of the Arduino IDE.

You MUST use the Included Arduino IDE to flash the firmware if on Windows and if you are on a Mac or Linux follow this guide to setup your IDE to work with the firmware if our automated installer for Mac isn’t working on your machine. -> Arduino IDE for Mac OS X Setup Guide


The Unified Firmware Package and all files in said package are provided AS-IS with no warranty or guarantee, use at your own risk. TH3D is not to be held liable for any damages or issues due to using anything in this package. This is provided for anyone to use at their own risk.

Marlin is used on over 90% of printers worldwide. Scott Lahteine is the project manager for the Marlin Project. Please consider becoming a Patreon below or donate one time with his PayPal link below. TH3D supports the Marlin project through Patreon and through donating equipment that they may need for testing.

Scott’s Patreon Page & PayPal Donation

Supported Printers and Products:

ADIMLab Gantry i3 (HCMaker7)XX
Aibecy DY-H9XX – Custom Mount
Alfawise U10XX
CR-10 MiniXXX
CR-10S MiniXXX
Geeetech A10XX
Folgertech FT-5XX – Custom MountX
Anet A2XX
Anet A6XX
Anet A8XX
Anet E10XX
Anet E12XX
Ender 2XXX
Ender 3
(Pro Included)
Tevo TornadoXXX
TronXY X3SXX – Custom Mount
TronXY X5SXX – Custom Mount
Lulzbot TAZ5XX
Wanhao Duplicator i3(and re-brands)XXX
Wanhao Duplicator i3 Mini (and re-brands)XX
Wanhao Duplicator D6(and re-brands)XMINI ONLY^^X
  • ᵇ – Printers with this after the name need a bootloader installed. We have a full flashing guide here: TH3D Uno Bootloader Flashing Kit
  • ^^ – The Wanhao D6 has a compact head. The EZABL Mini does not reduce any print space using the mount supplied. You can use the regular EZABL however we do not have any pre-supported sensor mounts for it. The physical hardware works with the D6 board but we do not have a mounting option supplied for it. TLDR; Go with the EZABL Mini Direct Wire if you have a Wanhao D6.
  • Custom Mount – This means the firmware is setup and ready for the EZABL kit but you will need to locate a probe mount for that particular machine. We may add official mounts in the future but if this note is here you will need to supply your own probe mounting solution. If you have a mount that works with these machines on the stock hotend please email and we’ll get it officially added into the firmware and download package.

If you use our Uno to flash please follow the CR-10 bootloader guide.

In Development

  • Wanhao Duplicator i3 Plus (Including MonoPrice and PowerSpec variants)
    • Testing is in progress – Working out LCD settings.
  • JG Aurora A5
  • CR-X
  • Creality Ender 4
  • Creality Ender 5
    • Testing in Progress


  • Automatic Probe Point Setup
  • CR-10S Disable Filament Sensor for those with issues
  • Customize your printer name
  • Custom EStep Option
  • Support for TH3D CR-10S Dual Extruder Board
  • EZOut Kit Support (See table above)
  • Hotend and Bed PID regulation
  • Hotend and Bed Protection
  • Home offset tuning
  • Individual Axis Homing
  • Instant BabyStepping for Z Axis
  • Junction Deviation Jerk Control
  • Keenovo Thermistor Support for Heated Bed (when used with SSR)
  • M48 Probe Test
  • Manual Print Timer Support (M73 GCode)
  • Manual Mesh Leveling Support (for users without EZABL)
  • Bed Leveling Assistant (4 Corners) for users not using ABL
  • No volumetric extrusion
  • PID Autotune menu
  • SD Printing Power Resume
  • Preheat for ABS & PLA
  • Slow or Fast Probe Option (Test Printer with M48 if using fast, some cannot handle it)
  • Skew Correction
  • S-Curve Acceleration
  • TH3D Bootscreen
  • TinyMachines3D Bootscreen Option
  • Titan Extruder Support
  • Tornado Bootscreen for Tevo Tornado
  • Tornado Fan Speed Option for noise reduction
  • V6/Volcano Hotend Support


  • What version of Marlin is this built on?
    • The U1.R2.x base started as 1.1.9 but we merge in changes from bugfix that are critical and our own custom fixes/updates.
  • Can you help me flash my printer for free?
    • If you are an EZABL customer yes, otherwise our hourly support charge of $74.99/hr applies. Facebook groups are a great resource. There is one we run for everyone here:
  • Certain Menus are Missing from the Control Sub Menus
    • Printers using the 1284P chips (like the CR-10, Anet Models, Wanhao i3, and Ender 2) will not have motion settings in the LCD menu. This is done to save space. If you want to adjust Jerk, Acceleration, or Steps/mm you can do it by sending the appropriate GCode commands. See here for all GCode commands:
  • Does this firmware support power resume like the CR-10S has?
    • Yes, as of U1.R2.1 and higher this feature is present. It has been tested but due to how Creality implemented the process it is not always reliable. This feature is NOT supported even if you are a customer. This also causes excessive wear on the SD card. Get a proper UPS for power blips.
  • Is the Creality ABL kit supported? 
    • No this does not work. If you want a supported ABL system please check out the EZABL that we make. Includes full support through our support system.
  • Is the BL Touch Supported?
    • Not at this time. We have not tested the firmware with the BL Touch at all. This is not supported as we do not use these probes so we cannot test them. Use at your own risk.
    • By the time you purchase all the cabling, tools, and adapters to use a BL Touch you will be around the same price as our more robust (no moving parts) and accurate EZABL Kit. Check it out by clicking this link.
  • How do I report bugs?
    • Send us a support ticket. Please be very thorough when submitting an issue. Vague requests or flashing issues will not be responded to. Please take the time to write the issue out fully so we can look into it quickly.
  • I am getting a "not in sync" error when trying to flash.
    • This means that there is no bootloader on the board. The above compatibility table lists the machines that need a bootloader to allow the firmware to be flashed. You can learn how to flash the bootloader at our bootloader page here:
  • I am getting “Thermal Runaway” or “Heating Failed” after updating
    • Our firmware has hotend and bed protection enabled. This prevents the printer from causing an electrical fire in the event that there is something wrong with the heater and/or thermistor. If you are getting this error check all your wiring, mosfets, thermistors, and power supply. Most stock firmware does NOT have these safety features enabled.
    • If your hotend is having issues see our PID tuning guide to see if that resolves it.
    • If you have a CR-10 V1.1.2, CR-10S V2.0, or CR-10S V2.1 board please see if you have the temp issue, if you do this can cause thermal triggers. Read more here:
    • This is NOT a firmware issue and tickets opened for this are NOT supported for free even if you have an EZABL kit.
    • Be sure you are not trying to exceed thermal limits of your machine. For example trying to reach 60+C on a S5 stock bed, it will not handle it and will trigger the protection.
    • Our protection values are set very conservatively so it will take a lot to trigger them.
    • If you wish to disable the hotend and/or bed protection you can do so by editing the configuration_backend.h file but we do NOT recommend this.

Change Log

  • U1.R2.7 (11/23/2018) – Bug Fixes For Dual Extruder Single Nozzle & New Machine Support
    • Support for TronXY X3S and X5S printers – custom mount for EZABL only currently
    • Fix dual extruder board with single or mixing nozzle config
  • U1.R2.6b (11/21/2018) – Bug Fixes For 1284p
    • PID BED disabled by default – causes issues on some machines with certain options enabled
  • U1.R2.6a (11/15/2018) – In House Machine Updates
  • U1.R2.6 (11/7/2018) – Bug Fixes For Some Machines
    • PID for bed on 1284p Chips
    • ADIMLAB i3 Plus Fix
    • Ender 2 EZOut V2 Filament Sensor Support
    • Updated In house Machine Configs
  • U1.R2.5 (11/7/2018) – New Machine Support
    • Added Support for CR-20
      • EZOut V2 Filament Sensor Supported
      • EZABL Supported
    • Added Support for ADIMLab Gantry i3 Plus
      • EZABL Supported
  • U1.R2.4b (10/19/2018) – ABL Expert Plugin Rollback
    • ABL Expert plugin is broken, removed support for it until fixed.
  • U1.R2.4a (10/17/2018) – CR-10 with Linear advance and other features overflow fix
    • CR-10 with Linear advance and other features overflow fix
  • U1.R2.4 (10/16/2018) – EZABL Tuning and Code Update
    • New Arduino 1.8.7 IDE for Windows Users
    • ABL Expert OctoPrint Plugin Support
    • Aibecy DY-H9 Support
    • Directions and layout update
    • EZABL Probe Test from LCD Support
    • EEPROM Menu System Cleanup
    • SD Card not mounting on Boot Fix
    • Tuned filament sensor threshold from 100 to 50
  • U1.R2.3 (10/3/2018) – EZABL Tuning and Code Update
    • Updated to Marlin 1.1.9 Latest Patch
    • Changed Z Probe Low Point from -2 to -3
      • Fixes “Probing Failed” errors when bed is more than 2mm out of skew
    • General Code Cleanup
    • Changed EZABL Points to 3
    • Now EZABL leveling will be restored even after G28 is ran
    • Added note about sticking with ODD numbers for EZABL Points. Performs best with odd numbers since there is a probe in the center of the bed.
  • U1.R2.2 (9/24/2018) – CR-10S Touch LCD Fix & Fang Backend Support
    • Added option to fix issues with CR-10S Touch LCD when filament sensor is connected to the touch LCD instead of the printer board
    • Added the CR10_FANG settings back in on the backend file for backwards compatibility for people still using it.
      • The original fang with the sensor mount on it should be replaced. It can sag and cause issues with the sensor getting bad readings.
      • Upgrade to the PETSFang or use the OEM mount to mount your sensor.
  • U1.R2.1d (9/11/2018) – Code Cleanup & Ender 3 Dual Board LCD Bugfix
    • Cleaned up code and fixed indents
    • Fixed Ender 3 Dual Board LCD Bug
  • U1.R2.1c (9/10/2018) – Prep for BL Touch Support
    • Added in settings for BL Touch support preparation
  • U1.R2.1b (9/10/2018) – Fixed compile errors for BL Touch
    • Fixed compile errors for BL Touch – NOT OFFICIALLY SUPPORTED YET.
  • U1.R2.1a (9/5/2018) – Error check and PID Tune Max Temp Patch
    • Added check for printer model in case someone doesn’t define one.
    • Added SECURITYFIX for PID tune max temp
  • U1.R2.1 (9/4/2018) – New Unified Release 2 Launch
    • Geeetech A10 Support
    • S Curve Acceleration
    • Junction Deviation
    • More machines supported with EZOut
    • Intermittent filament sensor issues fixed (EZOut and Stock sensors on misc machines)
    • All bugfixes from Marlin 1.1.9 code base
  • —– U1.R1.X Versions are discontinued and no longer supported —–
  • U1.R1.10a (8/11/2018) – Removal of Experimental Feature
    • Removed Experimental USB Print Fix Test Code – Did not work
  • U1.R1.10 (8/7/2018) – Cleanup & Feature Add
    • FT5 Support Custom Probe ONLY – Need more testers and probe mount
    • Removed depricated options (Linear, heater recovery)
    • Removed Bed skew due to user confusion.
    • Cleanup for compile redefine warnings
    • Code cleanup
    • TH3D Artillery EZ300 Support
    • USB Print Fix Testing Added
  • U1.R1.9b (7/17/2018) – Cleanup, Feature Add, and BugFix (Anet+EZABL)
    • Anet Bootscreen Disable with EZABL
    • Code Cleanup
    • Ender 3 Dual Board Notes Updated
    • Added Dual Hotend X Offset Setting Change – Defaults to 18mm
  • U1.R1.9a (7/13/2018) – Ender 3 CR-10S Dual Board Support
    • Ender 3 Dual Board Support
    • Changed ESteps to Manufacturer defaults for certain machines.
  • U1.R1.9 (6/24/2018) – Wanhao D6 Support
    • Added EZABL MINI Support for Wanhao D6
      • EZABL will work with the D6 but we do not have a probe mount for it. Only EZABL Mini is pre-supported at this time.
    • Added Stock Support for Wanhao D6
  • U1.R1.8j (6/19/2018) – New Features and Mounts
    • Added Ender Bootscreen Option
    • Added TM3D Aero Extended Mount
    • Added option to completely disable Bootscreen
    • Shortened Bootscreen time to 1500ms
    • EZABL STL Pack Update
  • U1.R1.8i (6/12/2018) – New feature and text updates
    • EZABL outside grid compensation option added
    • Thermistor for dual hotend updates
    • Verbage changes to make setup more clear
  • U1.R1.8h (6/6/2018) – Dual Titan/Tough Extruder BugFix
    • Bugfix for dual CR-10S board and using dual Titans/Tough Extruders
    • Added basic solid mount STL files to EZABL STL Pack
  • U1.R1.8g (6/2/2018) – Min Endstop Change and Dual Board Update
    • Changed Min Endstop for XY to prevent from going beyond negative limits
    • Fixed compile error for CR-10S Dual Board with Dual Hotend Single Nozzle setup
  • U1.R1.8f (5/31/2018) – EZABL Setting Fix
    • Fixed bug where some machines would not read EZABL Z signal correctly
  • U1.R1.8e (5/29/2018) – New Extras
    • Made EZABL setup easier. Only uncomment the probe mount to enable EZABL.
    • Added in Tornado Speed selection for fans.
    • Cleaned up extra features section.
    • Added home offsets setting option.
  • U1.R1.8d (5/21/2018) – CR-10S Dual E Board Support
    • Added in support for multiple nozzle/extruder setups for the TH3D CR-10S Dual Extruder board.
  • U1.R1.8c (5/18/2018) – Added in TH3D Thermistor Settings for Bed and Hotend
    • Added setting for using TH3D thermistors on bed or hotend. All our thermistors are NTC 3950’s and temp table #1 is the best match for these.
  • U1.R1.8b (5/5/2018) – Wanhao i3 LCD Tuning & Z Offset Changes
    • Further tuning of Wanhao i3 LCD settings as it was not working on older original machines, Working on ALL now.
    • Disabled ABL Fade as it causes issues with Z Offsets
      • Remove M420 Z line from starting code, not needed anymore – Will not hurt anything to still have it.
  • U1.R1.8a (4/23/2018) – Fan Speed Tuning
    • Tuned how 5015 fans are handled to reduce noise and improve control
  • U1.R1.8 (4/22/2018) – Alfawise U10 Support, PETSfang Support, & Bugfixes
    • Added Support for Alfawise U10 Printer
      • Stock Printer Support
      • EZABL Support
      • *Note just like the stock firmware the power resume is not working. We are working in figuring out how their hardware works*
    • Added Creality/Tornado support for PETSfang
    • Fixed bug with custom esteps
  • U1.R1.7 (4/15/2018) – i3 Mini & Ender 3 Support
    • Added Support for Creality Ender 3
      • Stock
      • EZABL
      • EZOUT FIlament Sensor Kit
    • Added Support for i3 Mini
      • Stock
      • EZABL and EZABL Mini
  • U1.R1.6 (3/26/18) – I3 LCD Timing Fix & Anet Min Pos Fix
    • Fixed Wanhao i3 LCD Corruption due to timing issues on older printer LCDs
    • Fixed compile issue for Anet Min Pos settings
  • U1.R1.5 (3/13/2018) – New Printer Support
    • Added Wanhao/Monoprice/Cocoon i3 support
    • Support for 10K wanhao boards on thermistor headers
    • Added fan kickstart option for fans that do not like low PWM signal (like the TH3D 5015 and Evercool 5015 fans).
  • U1.R1.4 (3/4/2018) – New Features and EZABL Updates
    • Added Manual Mesh Leveling
    • Added Slow/Fast EZABL probing (slow is default – some machines can not handle the faster speeds)
    • Added Titan Aero Support for CR-10/CR-10S/Tornado/Ender2
    • Tuned Z Axis Acceleration
    • Grammatical error corrections
  • U1.R1.3 (2/23/2018) – Bug fixes and new features
    • Added EZABL Probe edge configuration
    • Added Custom EStep Option
    • Fixed A2, A6, A8 Steps/mm for XY
    • Added Titan Extruder support for Anet Machines
    • Fixed Anet Z Endstop switch logic to match stock configuration.
    • Fixed SD Progress bar not working
  • U1.R1.2 (2/14/2018) – Performance Update/New Machine Support
    • Added Anet A2, A6, A8, E10, E12 Support for stock and EZABL machines.
    • Tuned EZABL Routine for quicker probing, larger probe area, and better accuracy.
    • Added in option to wait for bed heater to recover between probes.
    • Added in Skew Correction support for all machines.
  • U1.R1.1 (2/5/2018) – Bugfix/Patch
    • Fixed Pause Unload Length from 500 to 1
    • Fixed Tornado and Keenovo Bed Sensor Interference
    • Changed Probe Locations to not place sensor over Screw heads – This can cause invalid readings.
  • U1.R1 (1/3/2018) – Initial Release

The Unified Firmware has been tested with the above features in the “Features” list. Any deviation from the TH3D configurations can cause issues and is not supported. If you are a customer and have made changes in the features our support will have you use our standard configuration to rule out any issues. This is done for stability and quality assurance reasons as well as to minimize possible end user issues.

The Unified Firmware Package and all files in said package are provided AS-IS with no warranty or guarantee, use at your own risk. TH3D is not to be held liable for any damages or issues due to using anything in this package. This is provided for anyone to use at their own risk.

If you are an EZABL customer – support on the EZABL kit and the Unified Firmware features is provided free of charge. Anyone is welcome to use this firmware as it is under the GPL V3 license but there is NO support if you are not a customer. If you contact support and are not a customer you will have the option to purchase support at an hourly rate.