-
Notifications
You must be signed in to change notification settings - Fork 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
Firmware gets corrupted when storing something to the (virtual) EEPROM like the Z-offset #39
Comments
OK, this one compiles and works with a BL Touchv3.1 connected to the Z-endstop header. https://github.com/fluppie/WORKING_Marlin-2.0.x-SKR-Mini-E3-V1.2-BLTouchv3.1 |
At first try to compile FW outside OneDrive, it can cause many strange problems. Also your full path is about 270 chars long, try to make it smaller - Something like C:\Marlin.pio\ - should be good ;) |
Yes you were right. Inside OneDrive gives big issues. I switched to Documents\Github... and problems were resolved. I also run VS Code as admin to make sure I have enough rights during compile. |
EEPROM doesn't work because there is no physical eeprom in the STM chip. 1) EEPROM on SDCARD 2) Flash-based EEPROM emulation More info here: MarlinFirmware/Marlin#14684 I don't have tested yet any EEPROM setting, I will test both ways tomorrow. |
Sorry, forget the 1st one, it was experimantal way and needs more tweaking than just setting in Configuration.h, FLASH_EEPROM_EMULATION should work. I can't find the proper way to init EEPROM on SD card, but there could be some. |
Hmmm it's already enabled by default. Maybe the EEPROM offset is wrong or the bootloader is (semi)corrupted? |
Looks like this could be the solution:
Found in: MarlinFirmware/Marlin#15254 |
The above changes seem to work for me. After enabling BL Touch the build size is 226 KB which is bigger than the 224 KB stated. Worth noting that my CPU is a 256KB one, a RCT6. |
You can try |
BLTOUCH only useful with AUTO_BED_LEVELING = EEPROM MAX 224Kb = 229376 bytes
--- platformio.ini ---
( -fno-tree-scev-cprop -fno-split-wide-types -finline-limit=3 -ffast-math ) --- Configuration.h ---
--- Configuration_adv.h ---
Notes ADD DATA: [== ] 21.9% (used 10752 bytes from 49152 bytes) Fit on Flash :D Good Luck |
Changing EEPROM_START_ADDRESS worked for me. |
Get error 404 on your link. |
@Grayzone233 looks like he changed the repository, based on the commits BLTouch v3.1 is activated in this repository: https://github.com/fluppie/BIGTREETECH-SKR-mini-E3/commits/master |
@bojanpotocnik was looking for the compiled bin file, but I can get there from what he documented in the repository. Thanks! The only bins were the original which is good to save as a backup in case the compiled does not work. |
Good to hear that. Additionally, my fork of the Marlin also contains binary files for BLTouch configuration.
If you happen to run into problems with booting the board using firmware.bin compiled on your machine, check MarlinFirmware/Marlin issue 15767 where we discussed the solutions. |
There is a bin file: https://github.com/fluppie/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V1.2 |
After changing the start write point on the Eeprom emulation (Changing EEPROM_START_ADDRESS) it not crashes anymore after using Eeprom function however seems not to be working, I mean if a value is changed and after Eeprom save, after reboot the value is gone, is it working for you guys? Thanks in advance |
I've had this problem, but my corruption happned mid print. It would just stop printing. I power cycled the board and no boot. After I reloaded the firmware I clicked restore failsafe defaults. We'll see if that works. |
Did it again. Trying running the print through mattercontrol. |
Works fine through mattercontrol. I suspect running the file through the sd card is over writing the firmware space. |
I haven't been able to get flash EEPROM emulation to work at all. Have tried all of the fixes (changing start address, etc.) The best that I can get is that it no longer crashes, but I am unable to save any values to the (emulated) EEPROM. I gave up and switched to SD_EEPROM_EMULATION. Means I have to keep an SD card in the printer 24/7, but I normally do that anyway, and I normally don't print from SD so I never remove/change the SD card anyway. It means the SD gets more writes so it wears out faster, but that doesn't matter to me since I regularly make note of the EEPROM settings that I need to change, and I have tons of SD cards so can always switch to another. |
Old information, scroll down to the part where the EEPROM causes issues.
The text was updated successfully, but these errors were encountered: