Marlin
Marlin copied to clipboard
Creality Ender 3 S1 Pro/Plus initial implementation based on lcd_rts.cpp
This is MARLIN-E3S1PROFORK-BYTT final release.
This fork was ported from the Original Creality Ender 3 S1 Pro Code from here: https://github.com/CrealityOfficial/Ender-3S1/tree/s1_pro
This port was created by Thomas Toka.
This code is based on Marlin bugfix-2.1.x taken from: Marlin Github on the 08th june 2023 after this commit: https://github.com/MarlinFirmware/Marlin/commit/683916e17a6fe35c9726ad7e57e73c519fc96222
Other Code was implemented from: Creality Github Synman Github Mriscoc Github johncarlson21 Github
Initial commit code taken from the Creality Ender 3 S1 Github Repo: https://github.com/CrealityOfficial/Ender-3S1/commit/f8be17fcdd26adc93cf32632ee84ff6b1ec2f8fa
Crosschecked with the initial and following commits of Synman: https://github.com/synman/Marlin/commit/25d641e743384bb3547a2adeeb392f5d18554e45
Laser implementation partly taken from Creality´s commit from: https://github.com/CrealityOfficial/Ender-3S1/commit/cb5f3c3dc42b7f165036e45ad4b69d0dcf20af3f
Extended temperature table from mriscoc from: https://github.com/mriscoc/Ender3V2S1/blob/Ender3V2S1-Released/Marlin/src/module/thermistor/thermistor_1.h#L27
Cardreader Update inspiration taken from: https://github.com/CrealityOfficial/CR-10-Smart-Pro/blob/main/Marlin/src/lcd/dwin/lcd_rts.cpp
Autopid implementation and other functions taken from here: https://github.com/CrealityOfficial/Ender-5S1
Meshviewer taken from: https://github.com/johncarlson21/SV04-Marlin-2.1.x
Description
This is the pull request to support the Creality Ender 3 S1 Pro and Ender 3 S1 Plus with the stock touchscreen display.
This code is based on the official release of creality with many many enhancements integrated.
It supports both display hardware versions delivered by the manufacturer which are DWIN and Dacai.
The screen firmware is based on the newly released "3S1 PRO High Speed" files that have the version number 1.0.4.
In the screen folder are three files:
- Ender-3S1-3S1_Pro_HighSpeed_E3S1PROFORKBYTT_V001.zip -> matching screen firmware for this project
- Ender-3S1-3S1_Pro_HighSpeed_source_E3S1PROFORKBYTT_v001.zip -> full source for the E3S1PROFORKBYTT project version v001 with the hmi project file
- Ender-3S1-3S1_Pro_HighSpeed_source.zip -> decompiled 3S1 PRO High Speed sources provided by creality with the hmi project file
The used lcd_rts.cpp class is still backward compatible to the stock screen firmware released by Creality.
The code is well tested and in production use for months.
The building of the firmware is based on the marlin build system. All variants are buildable.
The "personal" build is a build for the person that maintains it. So it has set some debug headers and the zoffset for the builders machine. Search for "personal" in configuration.h to change you zoffset.
The laser feature is enabled and also implemented like in crealities release. Still untested.
Abl builds are fully supported with the new screen firmware.
Ubl builds only work with the stock display firmware.
My little community participated in the beta and release candidate phase so its functional in production and has so far only minor bugs.
The cardviewer class has been extended to support folders and subfolders. This also works with the stock screen firmware.
If a user installs the attached screen firmware it unlocks new features like:
- meshviewer replaces the autoleveling page
- enhanced tramming points
- automatic cr-touch measuring of the tramming points
- manipulation of input shaping hz and zeta over touch
- manipulation of linear advance k over touch
- manipulation of hotend offsets over touch
- autopid for hotend and hotbed over touch
- 4 material presets abs,pla,petg,cust (cust for custom)
- zoffset setting has 0.01mm and 0.05mm toggles
- babystepping during print set to 0.01mm
Besides the new features it has many many enhancements like:
- working M600. also multiple times in one print as it resets the variable correctly.
- stop and pause from touchscreen during host print (like from octoprint)
- working pause and resume printing from sd
- folders and subfolders support
- out of the box support for 300°C on both pro and plus
- correct hardware dimensions on both pro and plus
- material change on the pause site is possible. user can adjust hotend and hotbed temperature on the pause sites.
I tried to be as transparent as possible to keep marlin working and everything that is relevant should work after this pr also.
This is my first pull request ever. So dont kill me if i did something wrong!
Requirements
Creality Ender 3 S1 Pro or Plus
Benefits
Support for Ender 3 S1 Pro or Plus with the stock display firmware or with enhanced display firmware made by Thomas Toka for the E3S1PROFORK-BYTT
Configurations
inside this pr.
Related Issues
- on dawin displays the autopid curve is visually going from left to right. but the graph goes to the left up. same code, displays behave different. to be fixed if possible. result and run is technically perfect.
- shown decimals is limited for some PID fields to 1 decimal. saved are the correct values. ex. 100.1 is shown but 100.08 is messured, saved and used. so its just a visual display bug.
- the sound off/on toggle seams not to work on mostly all dacai dispays. i have both dwin and dacai (rev. 092) and on my printer this works. for most users it does not work. but a minor bug.
- autoleveling starts without waiting for heatup of hotend and hotbed. start heatup. you can now set it directly on the autoleveling site. be patient. wait till it heated up. then press start.
- as in all Creality lcd_rts.cpp classes "pause on layer" (M0) implementation does not work. i have to dismatle this like i did with M600
- the gcode preview is prepared but does not work yet. to be fixed and is enablable with a variable on top of the lcd_rts.cpp. then the front picture has to be included on the main page. to be done in a future release.
Thanks for the submission of the code in its raw form. Obviously this will require some weeks of cleanup before it will be suitable for merging into our carefully curated codebase, so get ready for the real work to begin.
Can't wait to try this on my S1 Pro
Great Thanks for your firmware for ENDER 3S1 Plus. I like it. But I cant understand about "laser feature", In MENU I didnt find any labels for working with laser???
The PR Version is meanwhile a bit behind my production branches.
Laser is fixed in the latest releases i made. but not in the pr and only active in the ABL Builds.
My actual production branch is this here:
https://github.com/ThomasToka/Marlin/tree/MARLIN-E3S1PROFORK-BYTT-RELEASE-CODE-v005
@thinkyhead is this still going to merged at some point?
This PR is well out of date so it's probably best to close it and start with a fresh PR after you've had a chance to rebase your working branch on the latest bugfix-2.1.x
. I presume it's more polished and complete than the contents of this PR at this point anyway.
My actual branch has so many enhancements that the whole Marlin is dynamic.
- dynamic mesh size without reboot on mesh change without loosing eemprom settings.
- dynamic margins for abl and ubl
- dynamic probes for abl and ubl
- full octoprint integration with own M19 function to transfer and load thumbnails from octoprint to a dgus display
- dozens of other changes that make Marlin usable at all in some parts.
If you want:
- i am actual on bugfix-2.1.x
- i can rebase it again for a new PR and adjust it in the way you could merge it probably in most parts
- then you have all the code that is in production here since months.
I have everything some people only dream to have in Marlin.
@ThomasToka This looks very interesting :) Are you still working on this PR? I have a Ender S1 Pro and can join your test group if needed!
@ThomasToka This looks very interesting :) Are you still working on this PR? I have a Ender S1 Pro and can join your test group if needed!
Well.. Its got a bit more advanced meanwhile.. Simply have a look in v025 in the releases. read the installation.txt
https://github.com/ThomasToka/MarlinFirmware
It's now installed, calibrated, 3DBenchy printed from PrusaSlicer via OctoPrint. So far all good! Will use it for some days and get familiar with it.
Thanks for making this firmware available and also for answering promptly. There have been many things I have wanted Creality to fix, sent them several emails. But it seems that you fixed several or all of them!
Hello, I have the 3 s1 pro. I’ve managed to get your firmware installed on my board, however when I flash my screen, it runs all the files, says done! Yet the screen is not updated. Can you please point me in the right direction? I’m very new to GitHub so please bare with me.
Hello, I have the 3 s1 pro. I’ve managed to get your firmware installed on my board, however when I flash my screen, it runs all the files, says done! Yet the screen is not updated.
Please come over to my discord.
https://discord.com/invite/Fh4jsUJWe6
Please post there in #installation-help .