Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creality Ender 3 S1 Pro/Plus initial implementation based on lcd_rts.cpp #25948

Open
wants to merge 22 commits into
base: bugfix-2.1.x
Choose a base branch
from

Conversation

ThomasToka
Copy link
Contributor

@ThomasToka ThomasToka commented Jun 8, 2023

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:
683916e

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: CrealityOfficial/Ender-3S1@f8be17f

Crosschecked with the initial and following commits of Synman: synman@25d641e

Laser implementation partly taken from Creality´s commit from: CrealityOfficial/Ender-3S1@cb5f3c3

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.

This is MARLIN-E3S1PRO-FORK-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:
MarlinFirmware@683916e

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:
CrealityOfficial/Ender-3S1@f8be17f

Crosschecked with the initial and following commits of Synman:
synman@25d641e

Laser implementation partly taken from Creality´s commit from:
CrealityOfficial/Ender-3S1@cb5f3c3

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
@thinkyhead thinkyhead force-pushed the MARLIN-E3S1PROFORK-BYTT branch 4 times, most recently from bbc7227 to 875e073 Compare June 9, 2023 03:09
@thinkyhead
Copy link
Member

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.

@thinkyhead thinkyhead force-pushed the MARLIN-E3S1PROFORK-BYTT branch 6 times, most recently from dd43774 to b989967 Compare June 9, 2023 07:44
ThomasToka and others added 3 commits June 9, 2023 17:02
better remove this switch as the ids after the switch won´t be available in their needed order when the laser is deactivated
- probing margin needs to be 45 all around for abl. we cant reach the last 40 mm on y max on the pro and plus with th probe. also the manual tramming points match those outer abl points
- laser feature is enabled only for abl builds as ubl does not fit then
@trapper-
Copy link

Can't wait to try this on my S1 Pro

@piratepike
Copy link

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???

@ThomasToka
Copy link
Contributor Author

ThomasToka commented Aug 5, 2023

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 thinkyhead force-pushed the MARLIN-E3S1PROFORK-BYTT branch 2 times, most recently from d5d5f4c to 5dd53f0 Compare October 26, 2023 03:11
@thinkyhead thinkyhead force-pushed the MARLIN-E3S1PROFORK-BYTT branch 2 times, most recently from e4c3d53 to d22deb4 Compare October 26, 2023 04:27
@thinkyhead
Copy link
Member

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.

@ThomasToka
Copy link
Contributor Author

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.

@thinkyhead thinkyhead force-pushed the bugfix-2.1.x branch 2 times, most recently from 9c65146 to 4f65466 Compare January 26, 2024 00:13
@tedenda
Copy link

tedenda commented Mar 16, 2024

@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
Copy link
Contributor Author

@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

@tedenda
Copy link

tedenda commented Mar 16, 2024

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!

@Jester420247
Copy link

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.
IMG_3893

@ThomasToka
Copy link
Contributor Author

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 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants