-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
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] Proper EEPROM support on Fysetc S6 #18434
Comments
Found in pin_FYSETC_S6s.h -> seems to default to flash emulation, even though EEPROM exists. Section should probably look like:
|
OT really S6 has a eeprom chip? can't find in features |
Which revision is your board? Maybe it was added at some point. Edit: @GerogeFu - Do all versions of the S6 have a real EEPROM? |
Not sure about versions prior to V1.2 - but it is shown in the schematics for V1.2. Unfortunately there is no silkscreen print on the PCB, but in the schematic it is shown on the first page as U8 In an Altium online viewer, it can also be loacted - screenshot of location of EEPROM is shown at https://ibb.co/rdmfwqL |
@thisiskeithb I don't have any, it was just a question because I thinking about buying one... |
Hello! I'd like to state that I have no experience in programming so bear with me please. Until my EEPROM module arrives (which now could take 90 days) I'd still like to use my printer with this board. I bought it used without an SD card, so obviously it did not work, the seller disappeared so it took me a good while to figure out the problem. I managed to get it printing by saving the EEPROM to the SD card on a TFT35 v3.0 Here is the problem: obviously if I pull the SD card while the printer is on to upload a .gcode from my computer then put it back, the EEPROM doesn't work (can't explain why, guess it can't read it again or something..). So what I did until now was power cycle the printer so the settings are restored from the SD card. But now it does not seem to work reliably. I use auto bed leveling (I get that that data is stored in the EEPROM) and when I start a print I can see it is correcting the skew of the bed on the Z axis, but after some of the first lines the axis stops completely, the XY axes are still working and the print is going. So the print just goes on trying to mush layers in each other because the Z axis just stops completely, the stepper motor turns off, it doesn't raise Z even on layer changes, you can turn the axis by hand while the print is still going. Now I have to power cycle the printer 2-3 times to get it working. It seems like if I do anything in the printer menu before starting the print, then this will happen. Or not. I can't really explain it, it's pretty random. This was 1,5 months ago. Now my I2C chip has arrived, but I can't get it working. I commented out flash EEPROM emulation and enabled I2C EEPROM in pins.h, yet it does not save there. Without the SD card in there is no boot logo, only a black screen and pressing the knob repeatedly brings forth the menu after like a minute. I don't know what to make of this or how to make it work. When I insert the SD it boots up normally. But I checked and there is no longer an EEPROM file saved on the SD card, so I don't really understand what is going on. Could you help me? I'll try your bit of code in pins.h that you have written here. |
Maybe these lines need to be added as well in pins_FYSETC_S6.h #define IIC_EEPROM_SDA PB9 At least - that is what I can see from the schematic. It could also be: #define I2C_SCL_PIN PB8 And maybe even a #define IIC_BL24CXX_EEPROM needs to be there ? I am not quite sure which of them to use - one of the developers will have to give some input. I have a Fysetc S6 board, it just arrived a couple of days ago... But I am still missing the stepper drrivers, so it has not been hooked up to a printer yet. I have just managed to get the marlin firmware to compile without issues (for my CoreXY setup), next step will be to try to load the firmware to the board - to verify whether the EEPROM bit actually works as expected. |
Thank you for the fast reply! |
From trying to understand the code, it looks like what is needed is something like:
Not sure if this is the exact solution.... |
Thank you, I will try that tomorrow and respond back with the results. Though I don't understand the first part with "#if NO_EEPROM_SELECTED". Where would I select EEPROM in the first place? |
No default section/display exists in configuration.h/configuration_adv.h - I was a bit puzzled about this as well.. Just found out, that I cannot compile if I enable IIC_BL24CXX_EEPROM ... So I guess we will have to wait for input from a developer.. |
Unless somebody can provide a picture showing that part populated on an S6 from FYSETC, this feature request isn't really valid and should be closed. It is hard to know whether the EEPROM was simply not populated to reduce cost, or if there is a problem on the board that prevented it from working. |
I will post a picture later today of my board - as I am not at home at the moment. |
@sjasonsmith You also closed the other issue that I referenced here, saying it was "probably" fixed, yet not answering my question regarding to what and where should I update to get the fix, so my machine is still as useless as they come. Could you be bothered to answer it now? "Thanks for the input, honestly this whole firmware thing was more than a month ago and I'm not even sure what I should update anymore. I remember that I couldn't compile the provided firmwares so I whipped up a vanilla Marlin from scratch and made the settings so it would fit my Sapphire Pro and my preferences. Of course I dated everything, so I have those files. Could you shed some light on what needs to be updated so this issue is fixed?" |
@jimi0303, sorry I missed the question at the end of your comment on the other issue. I probably read the part about not having touched it in a month and glanced over the rest. I read a lot of comments and miss things from time to time. FLASH EEPROM Emulation just works without doing anything special. Just uncomment I said "Probably" when I closed the issue because I couldn't remember whether I had fixed the STM32F4 flash issues on the S6 or an SKR Pro. I knew other people were successfully using the board with flash-based EEPROM, and that was an old issue from literally the second person I saw trying to put Marlin on that board. |
@sjasonsmith Thank you for the answer! I think I'm getting to the end of this problem. So, I confirmed that I have Marlin 2.0.5.3 on my printer, I managed to get the flash-based EEPROM working (couldn't get the I2C), but: when no SD card is inserted before powering on the printer, the LCD hangs on a full black screen - after holding the knob for a random amount of time - sometimes 15s, sometimes a minute, the menu comes of as if nothing happened. If I power on the printer with the SD card inserted, it boots up normally with the logo and everything. I can confirm that it is not using the SD card as EEPROM storage, because no EEPROM file is saved on it and the printer retains information without the card in. So I'd like to solve this last problem. Either with this older marlin or the bugfix version. I've spent hours on configuring Marlin to my printer and needs (no programming skills), so I'd really like to just copy over my settings to the newer version of Marlin, not start from scratch again. Is that possible? Or is it possible to fix this black screen issue with the older software? Thank you in advance. |
@gerleimarci - Thanks - then I won't have to upload a picture as well :-) |
At least - if it just was easier to enable the onboard EEPROM (if present) just by adding |
Thanks for the pictures. Are the boards that shipped with EEPROMs still V1.2? It is printed in the lower-right corner of my board. Using the EEPROM as the default causes a bit of a problem if they have shipped boards both ways, without a good way to identify them. |
Silkscreen still says v1.2 - unfortunately. |
@bipsendk I agree with you that is the best option. It might be best to fill in both options, and use #error statements to prevent the board from building until one of the methods is selected. Unfortunately I damaged my board yesterday doing some other testing, and won't be able to contribute directly to this. I have parts on order to hopefully fix it and add my missing EEPROM, but it will be a few days before they arrive. |
@jimi0303 I'm not sure what is impacting that startup issue. I suggest you start with a clean minimal config, to reduce the chance that your other configurations are contributing to that delay. If it works, then you can then add your changes in slowly to see if the problem appears with one of them. It would be best to separate that issue from this feature request, since they do not seem related. I recommend seeking help from other users to see if they have had similar problems on Discord or one of the other user forums. If there then seems to be a Marlin bug related to this you could report a new issue. |
First batch of the S6 don't have real EEPROM , so the default EEPROM option is FLASH_EEPROM_EMULATION. |
The old bootloader may cause this issue , you can try to update the bootloader here : https://github.com/FYSETC/Bootloader-S6 |
@sjasonsmith - do you have any input on whether #define IIC_BL24CXX_EEPROM should be used or not ? Marlin\src\lcd/dwin/eeprom_BL24CXX.h:29:10: fatal error: libmaple/gpio.h: No such file or directory But if the define shouldn't be used, there is no need to dig further into it... |
@bipsendk, I don't know, but it certainly should not be including anything from a libmaple folder for a FYSETC S6. The STM32 HAL this board uses does not rely on Maple. |
Only Ender 3 V2 uses this, and only to store its some data within the lcd/dwin code. At some point we'll make a proper HAL |
FYI: Got my 2nd S6 board today, and it also has an EEPROM mounted on the PCB. |
Not sure whether to open a new ticket. I just tried with the bugfix branch from today (20200727), and with changing pins_FYSETC_S6.h to have:
Compile of the bugfix branch from 20200726 worked OK. bugfix-2.0.x from 20200727 gives me (with same modification to pins file and same configuration.h/configuration_adv.h files):
|
This should work with Marlin today. It is the default for S6 V2.0 boards. V1.2 boards do not use this as the default since not all shipped boards have EEPROM's populated. If you wish to use the I2C EEPROM on your V1.2 board, simple add the following line somewhere in your |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Description
Add support for the onboard EEPROM for Fysetc S6
Feature Workflow
According to the documentation for Fysetc S6 there is an onboard 24LC16 EEPROM
When compiling with PRINTCOUNTER enabled, an error is issued:
But no FLASH_EEPROM_EMULATION definitions exist on configuration.h or configuration_adv.h
Additional Information
Schematics for Fysetc S6 can be found on https://github.com/FYSETC/FYSETC-S6
Tested with a pull of the current bugfix on June 26th, 2020
The text was updated successfully, but these errors were encountered: