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

[FR] Support for Creality board v24S1 v301 for Ender 3 S1 #645

Closed
leofaoro opened this issue Dec 30, 2021 · 122 comments
Closed

[FR] Support for Creality board v24S1 v301 for Ender 3 S1 #645

leofaoro opened this issue Dec 30, 2021 · 122 comments

Comments

@leofaoro
Copy link

Hello
I’d love to install a custom Marlin FW on my new Ender 3. A few annoying things have been disabled by default.
Anyway the board is new, powered by a STM32F103RCT6. I tried to trace the pins but couldn’t do it properly.

Would greatly appreciate an official config.
thanks

@ellensp
Copy link
Contributor

ellensp commented Dec 30, 2021

177D9D10F94E5C24!163305
177D9D10F94E5C24!163295

@leofaoro
Copy link
Author

Yeah that's my post on Reddit :) Here are a couple more that are more clear, also with the back of the board.

20211230_040841358_iOS
20211230_040851248_iOS

@leofaoro
Copy link
Author

HEATER BED is on pin 63 (VSS_3). Also for the CR-Touch, pin 2 (PC13) = servo pin, pin 3 (PC14) = probe pin. Updated Peter's spreadsheet.

@ellensp
Copy link
Contributor

ellensp commented Dec 31, 2021

"HEATER BED is on pin 63 (VSS_3)"
That is a gnd pin. That cannot be correct

The normal arrangement for a heated bed is the +v is permanently connected but the -v is connected via a mosfet
When the bed is off both bed pins are at a positive voltage so no current flows. When the bed is turned on the -ve leg is connected to gnd allowing current to flow.

@leofaoro
Copy link
Author

leofaoro commented Jan 1, 2022

"HEATER BED is on pin 63 (VSS_3)" That is a gnd pin. That cannot be correct

The normal arrangement for a heated bed is the +v is permanently connected but the -v is connected via a mosfet When the bed is off both bed pins are at a positive voltage so no current flows. When the bed is turned on the -ve leg is connected to gnd allowing current to flow.

Oh no, I was tracing the wrong leg then. It went from the STM32 to a resistor, to some logic level chip, then out to the mosfet, then to the bed....

@leofaoro
Copy link
Author

leofaoro commented Jan 3, 2022

Ok I have the printer sort of working. Issues:

  • The extruder fan does not turn on.
  • the part cooling fan makes a strange sound, not sure if it's PWM related. It works and is controllable
  • the screen does not work

Here's my commit on the my 2.0.9.3 fork (not sure I'm doing this the right way, first time contributing)
https://github.com/leofaoro/Marlin/commits/2.0.x

@ellensp
Copy link
Contributor

ellensp commented Jan 3, 2022

Documenting from discord chat.
The screen does not seem to be the same as a e3v2 screen

This is the screen in question

177D9D10F94E5C24!163345

It is using a Allwinner F1C100s as is CPU

From the updated source provided from creality

Ender-3s1-hw24s1_301-sw-V1.0.5_C-CRTouch.zip

It has a DWIN_SET folder, with files for the e3v2 screen, but it also has a private folder which contains the same information as the DWIN_SET but in a different format.

Current thinking is that this new lcd uses the private directory for its data.
This screen is not compatible with Marlin at this time as marlin expects the Marlin DWIN_SET

@leofaoro
Copy link
Author

leofaoro commented Jan 3, 2022

Some progress. Indeed the display will update only if provided a "private" folder. I tried the DWIN_SET from the E3V2 config example in Marlin, renamed it to "private" it took but only blank screen. Also tried the "private" folder provided in Creality's latest firmware update (1.0.5) above, and constantly shows the splash page "Creality".

Also confirmed pinout is exactly the same for both LCD screens.

@leofaoro
Copy link
Author

leofaoro commented Jan 3, 2022

Extruder fan identified and added to pins file + config adv. Working.
leofaoro/Marlin@5e8f206

@Geo-Warrior
Copy link

Hi. I'm probably better suited as a lurker here as a lot of this is over my head. If there's anything I can help with, just throw it out there and I'll do my best. Thanks for the work you're doing.

@skilly00
Copy link

What is left to do on this project? Leo has it been finished or do you need help with anything? I have this printer and would be happy to help id anything you still have outstanding.

@leofaoro
Copy link
Author

What is left to do on this project? Leo has it been finished or do you need help with anything? I have this printer and would be happy to help id anything you still have outstanding.

Hey! The screen is still not working. It’s totally undocumented and I don’t have the skills to reverse engineer it. Everything else seems to be working.

@skilly00
Copy link

Ok cool. well maybe I'm missing something but can't you just include the Firmware from the official files for the screen?

@leofaoro
Copy link
Author

Ok cool. well maybe I'm missing something but can't you just include the Firmware from the official files for the screen?

Nope. Doesn't work.

@mriscoc
Copy link

mriscoc commented Jan 18, 2022

Ok cool. well maybe I'm missing something but can't you just include the Firmware from the official files for the screen?

Nope. Doesn't work.

I don't have a Ender3S1 but have some interest in try to develop something for that printer. We need to know exactly what mean "Doesn't work", the screen is permanent in black, the display shows boot screen and then black, the screen shows a bad user interface, etc.

@leofaoro
Copy link
Author

Fair. Currently the screen turns on and stays on the boot screen. The button when pressed does beep. That’s about all it does. If someone has an ender 3 v2 screen and wants to try that could be helpful.

@mriscoc
Copy link

mriscoc commented Jan 18, 2022

OK, if the boot background is there, then that only ensures that the display is correctly energized and reset. Could be interesting to know if the printer works fine using Octoprint and last Marlin bugfix, for example.

@leofaoro
Copy link
Author

OK, if the boot background is there, then that only ensures that the display is correctly energized and reset. Could be interesting to know if the printer works fine using Octoprint and last Marlin bugfix, for example.

Yes. It works using my pins file and connects/prints with Octoprint. As I said, the only thing that is not working is the screen.

@mriscoc
Copy link

mriscoc commented Jan 18, 2022

OK, if the boot background is there, then that only ensures that the display is correctly energized and reset. Could be interesting to know if the printer works fine using Octoprint and last Marlin bugfix, for example.

Yes. It works using my pins file and connects/prints with Octoprint. As I said, the only thing that is not working is the screen.

Then the next thing is to identify is the serial link between the mainboard and the display.

@leofaoro
Copy link
Author

Then the next thing is to identify is the serial link between the mainboard and the display.

Yes, and that goes beyond my skills :)

@mriscoc
Copy link

mriscoc commented Jan 18, 2022

I need a S1 here, :-D

@skilly00
Copy link

skilly00 commented Jan 18, 2022

How would one go about identifying the serial link? I have the display and am happy to help if you can point me to some kind of guide. I have a CC Debugger would that work?

@mriscoc
Copy link

mriscoc commented Jan 19, 2022

How would one go about identifying the serial link? I have the display and am happy to help if you can point me to some kind of guide. I have a CC Debugger would that work?

I don't know if the correct serial interface in the board was enabled in the @leofaoro files. A CC Debugger could help. I'm assuming that the firmware compilated is issuing some commands to the display at the start up, that serial activity could be noted by the debugging device if the firmware is using the correct pin.

@skilly00
Copy link

Ok, @leofaoro said above that it was using the same pins. They are labeled on the screenshot provided by @ellensp but I can't find a screenshot from the V2 to confirm they are the same. So to be clear I should be hooking up to the 10 pin from the printer at boot to see if its getting the commands your thinking are sent.

@ellensp
Copy link
Contributor

ellensp commented Jan 19, 2022

Ithe pins are the same

I suspect this is a dwni clone, using dwin protocol.
But the way you update its data is different, as it is not runing DWIN os

@mriscoc
Copy link

mriscoc commented Jan 19, 2022

The problem is to know if the firmware is using the correct serial port and pin enables of the display interface in the S1 SoC. @leofaoro, the display beeps when the enconder is pressed? The display beeps when you send a M300?

@leofaoro
Copy link
Author

I went ahead and mapped the pins to the LCD ribbon cable. See below.

DOUT = PA3
DIN = PA2
BEEP = PB13
ENT = PB14
A = PB15
B = PB12

I don't know what these mean in terms of mapping to Marlin pins. I know there's BTN_ENC, BTN_EN1, BTN_EN2, BEEPER_PIN listed for DWIN_E3V2.

2022-01-18 21_01_15-20220103_170559906_iOS jpg ‎- Photos

@leofaoro
Copy link
Author

The problem is to know if the firmware is using the correct serial port and pin enables of the display interface in the S1 SoC. @leofaoro, the display beeps when the enconder is pressed? The display beeps when you send a M300?

the display beeps when buttons is pressed yes. Haven't tested M300.

@ellensp
Copy link
Contributor

ellensp commented Jan 19, 2022

PA3/PA3 is USART2_TX/USART2_RX ie uart port 2

@mriscoc
Copy link

mriscoc commented Jan 19, 2022

PA3/PA3 is USART2_TX/USART2_RX ie uart port 2

That is an advance, in the Ender3v2 the LCD Serial port is 3:

#define LCD_SERIAL_PORT 3

Then, @leofaoro change that to 2 in Conditionals_LCD.h and test.

@skilly00
Copy link

Here are the PID values I got at 230 with 10 cycles.
Recv: #define DEFAULT_Kp 12.83
Recv: #define DEFAULT_Ki 0.76
Recv: #define DEFAULT_Kd 53.90

@skilly00
Copy link

I release some fixes:

* Fix Probe Z offset

* Fix Z Max position

* Fix Buttons background

* Fix Progress bar background

Still getting issues with the Button Background and and progress bars on new compiled version. Z height is fixed and I'm not sure what was wrong with the probe offset so can't say on that. mine is -2.66 with the stock bed and this is over -3

@Wassabichan
Copy link

can u link the new version?

@skilly00
Copy link

Same location as the last one. https://github.com/mriscoc/Marlin_Ender3S1/releases

@mriscoc
Copy link

mriscoc commented Jan 21, 2022

Still getting issues with the Button Background and and progress bars on new compiled version. Z height is fixed and I'm not sure what was wrong with the probe offset so can't say on that. mine is -2.66 with the stock bed and this is over -3

Can you please post a capture of your info page?

@skilly00
Copy link

Still getting issues with the Button Background and and progress bars on new compiled version. Z height is fixed and I'm not sure what was wrong with the probe offset so can't say on that. mine is -2.66 with the stock bed and this is over -3

Can you please post a capture of your info page?

image

@mriscoc
Copy link

mriscoc commented Jan 22, 2022

Sorry, but I'm forced to stop the development here. In the future I will post only in my repository. Thank you for all your help.

@skilly00
Copy link

skilly00 commented Jan 22, 2022

Ok, thank you for all the progress you've made so far.

@mriscoc
Copy link

mriscoc commented Jan 22, 2022

Ok, thank you for all the progress you did make! Anyone know what happened? Sorry I am aware of the exact process for pull requests as a non developer but I'm thinking we need to submit a PR to the bug fix branch to get this config added to the main branch after review. Anyone watching this thread know how to do that? I think its important since @mriscoc isn't supporting it anymore.

I'm moving the support to my repository: https://github.com/mriscoc/Ender3S1 there you can do PR and post issues

@thinkyhead
Copy link
Member

Fixed up and merged. Thanks @mriscoc !

@EvilGremlin
Copy link
Contributor

Can someone make SPI flash dump? Looking at ttf font, i suspect it actually runs linux, so i'm curious to poke around.

@Sebazzz
Copy link
Contributor

Sebazzz commented Feb 4, 2022

It has the F1C100s so I think you may be right. No promises, but I'Il check if these tools can help me with an SPI flash dump.

@Sebazzz
Copy link
Contributor

Sebazzz commented Feb 4, 2022

It has the F1C100s so I think you may be right. No promises, but I'Il check if these tools can help me with an SPI flash dump.

They can - but refer to an USB connection. The ribbon cable connector does have a 5V/GND/Data in/Data Out but that isn't USB - is it?

@ellensp
Copy link
Contributor

ellensp commented Feb 4, 2022

From the image and the datasheat, the connector J3, is USB

Pin 68 is USB-DM
Pin 69 is USB-DP

so the 3 pins on J3 left to right seem to be USB-DM, USB-DP and gnd

@EvilGremlin
Copy link
Contributor

I bet it's DFU port, and J2 is DFU switch.

@mriscoc
Copy link

mriscoc commented Mar 1, 2022

@leofaoro please could you confirm what pin is connected to the Z limit interface?

image

@leofaoro
Copy link
Author

leofaoro commented Mar 2, 2022 via email

@mriscoc
Copy link

mriscoc commented Mar 2, 2022

Hi Miguel. I don't think I mapped the Z limit interface pins.

Thank you. With the release of the official Creality firmware, all pins are correct now. I was able to compile a Manual mesh version for people that the CRTouch is not working correctly.

Here are the configuration files completed for the S1: https://github.com/mriscoc/Marlin_Configurations/tree/main/Ender%203S1

@leofaoro
Copy link
Author

leofaoro commented Mar 2, 2022

Hi Miguel. I don't think I mapped the Z limit interface pins.

Thank you. With the release of the official Creality firmware, all pins are correct now. I was able to compile a Manual mesh version for people that the CRTouch is not working correctly.

Here are the configuration files completed for the S1: https://github.com/mriscoc/Marlin_Configurations/tree/main/Ender%203S1

Thanks again for all your work. Now only if we could have linear advance on this board with Marlin...

@mriscoc
Copy link

mriscoc commented Mar 2, 2022

Thanks again for all your work. Now only if we could have linear advance on this board with Marlin...

I think that it is necessary to have a hardware mod for the board to change the drivers from standalone to UART mode.

@leofaoro
Copy link
Author

leofaoro commented Mar 2, 2022

I think that it is necessary to have a hardware mod for the board to change the drivers from standalone to UART mode.

that's my understanding also from my readings. I could try it, but it's high risk of wrecking the board, so not worth it to me. Might as well just get an opensource board but with all the ribbon cables of the S1 you'd also need perhaps a breakout board.

@mriscoc
Copy link

mriscoc commented Aug 9, 2022

Hi @leofaoro I saw in the Creality official repository that FIL_RUNOUT_STATE in Configuration.h file is LOW, but in our initial research we set that value as HIGH. Can you confirm if the Stock S1 uses LOW or HIGH value for its filament sensor?

@leofaoro
Copy link
Author

leofaoro commented Aug 9, 2022

Hi @leofaoro I saw in the Creality official repository that FIL_RUNOUT_STATE in Configuration.h file is LOW, but in our initial research we set that value as HIGH. Can you confirm if the Stock S1 uses LOW or HIGH value for its filament sensor?

It should trigger on LOW.

Leo

@mriscoc
Copy link

mriscoc commented Aug 9, 2022

It should trigger on LOW.

Leo

Thanks for your reply, so, the Marlin sample configs also have that error:

#define FIL_RUNOUT_STATE HIGH // Pin state indicating that filament is NOT present.

@mriscoc
Copy link

mriscoc commented Aug 9, 2022

It should trigger on LOW.

Leo

Mmm, but the sensor shows TRIGGERED when there is filament inside. So...

Creality may have changed the filament sensor type in recent batches.

@leofaoro
Copy link
Author

leofaoro commented Aug 9, 2022

Mmm, but the sensor shows TRIGGERED when there is filament inside. So...

In the Klipper config for the E3S1 it's triggered = low.

@sammcj
Copy link

sammcj commented Mar 18, 2023

FYI for anyone that stumbles across this historical information - the updated version of this controller board as found in the Ender 3 S1 and Ender 5 S1 printers is almost identical but has the model CR4NS200141C13 and uses a STM32F401 (RET6), otherwise looks pretty much the same:

IMG_8946

And a similar, but different LCD:

IMG_8936

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

No branches or pull requests

10 participants