Marlin icon indicating copy to clipboard operation
Marlin copied to clipboard

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

Open ThomasToka opened this issue 1 year ago • 12 comments

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.

ThomasToka avatar Jun 08 '23 07:06 ThomasToka

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 avatar Jun 09 '23 03:06 thinkyhead

Can't wait to try this on my S1 Pro

trapper- avatar Jun 22 '23 04:06 trapper-

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

piratepike avatar Aug 05 '23 10:08 piratepike

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

ThomasToka avatar Aug 05 '23 11:08 ThomasToka

@thinkyhead is this still going to merged at some point?

trapper- avatar Aug 05 '23 13:08 trapper-

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.

thinkyhead avatar Jan 10 '24 06:01 thinkyhead

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 avatar Jan 10 '24 10:01 ThomasToka

@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!

tedenda avatar Mar 16 '24 10:03 tedenda

@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

ThomasToka avatar Mar 16 '24 11:03 ThomasToka

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!

tedenda avatar Mar 16 '24 21:03 tedenda

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

Jester420247 avatar Mar 24 '24 01:03 Jester420247

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 .

ThomasToka avatar Mar 24 '24 07:03 ThomasToka