This branch is intended specifically for the Creality touchscreen machines and was split off from the standard Creality branches due to specific custom changes not found upstream. This includes extensions to the EXTui framework among other smaller tweaks that we have been working towards getting submitted upstream. Primary machines supported here are :
- CR10S Pro
- CR10 Max
- CR-X
- Ender 5 Plus (Preliminary, untested)
Any machine with bed leveling should utilize the 10SPro tagged screen files. Anything without should use the CR-X tagged screen files. For more notes on supported configurations here, see the Bleeding Edge or Devel branches.
Screen files are archived with 7-Zip simply because it came out 1/5 the file size of a zip file. That added up fast!
The firmware branches maintained here are made possible by the support of sponsors like Tiny Machines 3D as well as our customer base through our 3D printing Services. Maintaining and developing these branches takes a significant investment, made up of time and machines. To support continued development, please consider your next 3D Printer related purchase from Tiny Machines 3D and thank them for supporting open source development. Or, consider us for printing services outside of your machine’s capabilities. Print service requests can be sent to [email protected] and we will respond typically within 1 working day. If you do not need anything printed or a 3D Printer but still want to contribute, you can support us through Patreon.
All configuration options intended to be adjusted by end users have been placed in the top section of Configuration.h and have been documented there. There is typically a break line to segregate the standard configuration below. Anything aside from the upper options is intended for advanced users only.
-
While auto leveling (measuring) is in progress pressing other buttons on the screen can abort portions of the script depending where it is
-
- The process includes heating the bed before probing, probing then heating the nozzle before moving to Z0.
-
Manual move screen has a planner issue with Bilinear when segmented moves is enabled. This is caused by a bug in the main Marlin branch. UBL is recommended in most cases anyway. If you choose to enable Bilinear, segmented moves has been set to a value over the possible manual moves by default to avoid the bug.
-
UBL functions differently than Bilinear. It currently probes 16 points and extrapolates where the probe cannot reach. This is because UBL is designed to build a mesh everywhere the nozzle can reach, where bilinear only works where the probe can reach. These points are intended to be manually tuned however the touchscreen has no interface to do so. We are working on a way to increase the mesh density and feed alternative points to the screen. This is especially important for the CR-10 Max. Please mind the differences with UBL during use.
-
There are some points where the screen accepts input before it's really ready to (Measuring on Auto Leveling for example, wait for message to Set Z Offset) so please be patient! Sending inputs (pressing buttons) essentially overwrites the existing command with the new one.
-
CR-X Non-Auto Leveling screens have the start of baby-stepping abilities on the adjust screen, however this has not been fully tested yet. Use with caution.
This firmware is provided to the public as-is with no warranty or guarantee. It's based on a large open source project and there is no entitlement to support. That said, Tiny Machines 3D customers may obtain support through their normal support queue. I will provide support to Patreons as I am able. If you require more immediate support and are not a Tiny Machines customer, you may contact them at [email protected] about purchasing support hours. Aside from this, we are active many Facebook groups as well as several discord channels and typically help anyone we can when we come across them.
3D Printing Discord - https://discord.gg/MZrsgVU Marlin Discord - https://discord.gg/n5NJ59y
For this branch, we still have some active goals open that we plan to continue working on provided there is continued interest in the project.
- SD Card sub directory traversal
- Volume and leveling state EEPROM storage
- LCD pause messages and responses taken from machine instead of static messages
- Additional Maintenance and tools screens (PID Tuning, Init EEPROM ect)
- Tuning of status message clearing
- Utilize a few more of the background screens (such as print finished) that are currently not in use but not necessary
If there is any interest in re-implementing the Chinese language screens, that's definitely possible at this point. In order to put the effort in however I would need to see a notable amount of interest in this.
- 1.1.9 Firmware (Stable, EOL) TM_CR10
- 2.0 Firmware Creality_Marlin2.0.x
- 2.0 Development Branch (Beta, but well tested) Creality_2.0_Devel
- 2.0 Bleeding edge Branch (Here there be dragons!) Creality_2.0_Bleeding
- Touchscreen Firmware (10SPro and CR-X 1.1.9 Stable) Creality_DWINTest
- Touchscreen Firmware (10SPro and CR-X 2.0 Active Development) CrealityDwin_2.0
- Raptor 1 1.1.9 Firmware TM_Raptor
- Raptor 1/2 2.0 Firmware Raptor_2.0.X
- Trex 2+/3 1.1.9 Firmware Trex3_1.1.9
- Trex 2+/3 2.0 Firmware (Be warned of layer shift issue below!) TM_Trex2+_2.0.x
- SX4 1.1.9 Firmware (Stable, EOL) Mamorubot_SX4
- SX4 2.0 Firmware (Beta, but well tested) TM_SX4_2.0
- SX4 Development Branch TM_SX4_2.0_Devel
- Raise 3D N2+ (Dual) 2.0 Raise3D-N2+-Dual
- Evnovo Artillery Sidewinder X1 2.0 Evnovo X1
- Tracing Marlin 2.0 Planner bug causing layer Shifting
- Creality Dwin Touchscreen rewrite to ExtUI - DONE
- IDEX drifting z offset on tool change with UBL
- Multiple touch homing
- Tool change offset changes
- Hotend offset adjustment clamping
- Filament width sensor hang on 32 bit
- Probe point output for all leveling types matching incomplete ubl implementation - DONE
- SKR1.1 Pro integration to Trex2 with TMC2209 Drivers - Mostly done, blew an output...
- SKR1.3 Integration to Mamorubot SX4 - DONE
- Mosquito BMG-M integration to Raptor
- Porting Chithu Touchscreen board to Marlin 2.0 with ExtUI
- Anet A10 Delta STM32F103 board analysis
- Smoothing integration and vendor components of Marlin 2.0 (Revision to version.h handling, limit clamping, usability enhancements ect)
- Consolidate more probing functions, improve G33/4 and G28/29 handling
- G34 Z stepper reordering and automatic detection / adjustment of reversed stepper connections
- Video documentation of firmware branch configuration options and flashing with platformio
- Implement Virtual Tools
- Port Duet2 Wifi with Duex5 to Marlin 2.0
- Further Gcode Parity with RRF
- Extend Host Prompt Support for Power Loss Recovery
- Improve native ESP32 web support
- Port M425 Auto backlash and offset calibration to IDEX
- Integrate 12 stepper LPC1778 PCB to configure ideXY quad head system as well as integrate 3 extruder mixing to IDEX
- Video walkthrough of each bed leveling system usage and all functions
This is just one of many forks of Marlin. We don't try to bury that behind fancy marmarketingketting or anything else. As you can see from the links above, most of the work done here is submitted back to the mainstream Marlin branches. The end goal of every project is to get it to the point where it is merged and maintained there. See marlin resources, including how to contribute to the Marlin Project as well, down below.
To build Marlin 2.0 you'll need Arduino IDE 1.8.8 or newer or PlatformIO. We've posted detailed instructions on Building Marlin with Arduino and Building Marlin with PlatformIO for ReArm (which applies well to other 32-bit boards).
- Scott Lahteine [@thinkyhead] - USA
- Roxanne Neufeld [@Roxy-3D] - USA
- Bob Kuhn [@Bob-the-Kuhn] - USA
- Chris Pepper [@p3p] - UK
- João Brazio [@jbrazio] - Portugal
- Erik van der Zalm [@ErikZalm] - Netherlands
Marlin is published under the GPL license because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork.
While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own.