This article describes another release for Marlin this version is based on 126.96.36.199 released 29th May 2021 and prepared for use with an updated custom hardware configuration comprising of the: E3D Hemera Hot-end, the BigTreeTech SKR 1.4 Turbo board, TMC2209 stepper drivers and the BLTouch v3.1. The printer frame and PSU are from a Ender 3 Pro (v1).
Table of Contents
Here are some highlights on key features enabled in this custom version of Marlin 188.8.131.52:
- Now compiled for: LPC1769
- E3D Hemera Hot-end support
- Available bed-size reduced to extra safe values from 235 to 230 and probe margins revised for new hot-end carriage and mount.
- TMC2209 drivers with Stealth-chop & Hybrid threshold enabled on X, Y, Z axis.
- BLTouch for ABL Bilinear.
- Auto bed levelling is used in addition to the Z-stop switch.
- Menu for levelling bed corners.
- Restores bed levelling after G28.
- Probes bed once at each point.
- Movement on any axis is restricted until axis’s are homed.
- PID Tuning
- Extruder fan after 50°C
- Z Safe homing
- Advanced pause and filament change
- Probing wizard
- Junction Deviation or Classic Jerk (see notes below)
- Mute menu sound capability
- Custom quick commands:
- Home & Level bed
- Home & Info
- TMC_DEBUG enabled by default
To read more on changes introduced check the official Marlin 184.108.40.206 change log. Before we begin it’s assumed that you have the following equipment:
- E3D Hemera Hot-end (a 220.127.116.11 version for the stock hot-end has been additionally included).
- BTT SKR 1.4 Turbo Board.
- BLTouch v3.1 (other versions of the BLTouch will work but you will need to adjust settings related to it and check your wiring).
I suggest VSCode as a quick method for compiling the Marlin 2.0.x from source.
- Download VSCode and install.
- Open VSCode > Extension Manager > Search for and install the official PlatformIO IDE extension.
Firmware configuration source files
You can download the binary release for the firm or optionally build you own with the configuration files and instructions provided.
If you use the binary release please consider reviewing the checklist on tasks to perform after updating your 3D printers firmware.
- View and download the: Binary releases v18.104.22.168 on GitLab
Building your own binary
I have made my Marlin configurations and compiled firmware binaries available for download they feature the same changes mentioned within this article; if you use my configuration you should review your Probe offsets, check driver currents & determine if your endstops require inversion.
You will find configurations for both the stock hot-end and the newly added E3D Hemera hot-end:
- Marlin 22.214.171.124 – BTT SKR1.4 and the E3D Hemera Hot-end: https://gitlab.com/oddineers-public/marlin-ender-3/-/tags/Marlin-126.96.36.199-Hemera
- Marlin 188.8.131.52 – BTT SKR1.4 and the Ender 3 Pro Stock Hot-end: https://gitlab.com/oddineers-public/marlin-ender-3/-/tags/Marlin-184.108.40.206-Ender3
To build your own variant from source; start by downloading the relevant Marlin releases used in this article from Marlin 220.127.116.11 branch:
- Official Marlin 18.104.22.168 source code: https://github.com/MarlinFirmware/Marlin/releases/tag/22.214.171.124
Once you have downloaded the sources above you will need to extract them to an accessible location, use the following steps as a reference:
- Download and extract Marlin 126.96.36.199 sources
- Copy the 4 files to the
Marlindirectory contained within the extracted Marlin 188.8.131.52 sources.
- Then update the
- Compile by running the PlatformIO build operation: CTRL + ALT + B (Windows users).
Binary release releases are available on the GitLab project page
Firmware configuration modifications
Next we will be modifying 2 specific files from the release to customise the firmware for to our requirements:
Depending upon whether you used my configurations or the stock configurations will determine if you need to merge the changes required to support the new hardware:
- Compare file:
/Marlin/Configuration.hwith custom file: Configuration.h (GitLab)
- Compare file:
/Marlin/Configuration_adv.hwith custom file: Configuration_adv.h (GitLab)
Switching between Classic Jerk and Junction Deviation
In the configuration provided you can change between classic jerk and junction deviation by commenting out (disable)
#CLASSIC_JERK (found in file Configuration.h).
Use Junction deviation comment out #CLASSIC_JERK as follows:
Use Classic Jerk remove omission by deleting forward slashes from start #CLASSIC_JERK as follows:
Checklist & suggested reading
Friendly reminder; consider reviewing the checklist on tasks to perform after updating your 3D printers firmware.