Open fluppie opened 5 years ago
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 ;) At last if this won't work, try to clone new Marlin at https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x ....modify configs, compile and you're done ;)
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. Only having a EEPROM issue at the moment with this fork: https://github.com/fluppie/BIGTREETECH-SKR-mini-E3 When saving the Z-offset to EEPROM the firmware corrupts and doesn't boot anymore after powering down the printer. So you need to reflash the MCU.
EEPROM doesn't work because there is no physical eeprom in the STM chip. There have to be two ways:
1) EEPROM on SDCARD
On SD card put empty file called "eeprom.dat" and it should work.
2) Flash-based EEPROM emulation
More info here: https://github.com/MarlinFirmware/Marlin/issues/14684 ...and in many other threads on Marlin with STM chips :)
I don't have tested yet any EEPROM setting, I will test both ways tomorrow. Good luck ;)
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:
If your using my STM32F103RE_bigtree_USB build;
you should change the file pins_BIGTREE_SKR_E3_DIP.h
change line 38 that reads
define EEPROM_START_ADDRESS uint32(0x8000000 + 256 1024 - 2 EEPROM_PAGE_SIZE)
to: //#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 1024 - 2 EEPROM_PAGE_SIZE) //use for F103RC
define EEPROM_START_ADDRESS uint32(0x8000000 + 256 2048 - 2 EEPROM_PAGE_SIZE) //use for F103RE
Then eeprom emulation in flash will work, and it will sit at 0x0807D000 rather than 0x0803EA00. You only have to do this if our build is larger than 256KB-28KB-4KB = 224KB If using _USB you probably need it.
Found in: https://github.com/MarlinFirmware/Marlin/issues/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 activate #define SLIM_LCD_MENUS
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 ---
We NEED #define Z_SAFE_HOMING +368 bytes
Test Disable //#define SDSUPPORT Build FAILED
Test Disable //#define CR10_STOCKDISPLAY (if you not need [Octopi]) -38.520 bytes
--- Configuration_adv.h ---
Notes TMC_DEBUG is no longer needed in Marlin 2.0.x, but enabling it produces an extended report
ADD
DATA: [== ] 21.9% (used 10752 bytes from 49152 bytes) PROGRAM: [======== ] 80.2% (used 210276 bytes from 262144 bytes)
Fit on Flash :D Good Luck
Looks like this could be the solution:
If your using my STM32F103RE_bigtree_USB build; you should change the file pins_BIGTREE_SKR_E3_DIP.h change line 38 that reads
define EEPROM_START_ADDRESS uint32(0x8000000 + 256 1024 - 2 EEPROM_PAGE_SIZE)
to: //#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 1024 - 2 EEPROM_PAGE_SIZE) //use for F103RC
define EEPROM_START_ADDRESS uint32(0x8000000 + 256 2048 - 2 EEPROM_PAGE_SIZE) //use for F103RE
Then eeprom emulation in flash will work, and it will sit at 0x0807D000 rather than 0x0803EA00. You only have to do this if our build is larger than 256KB-28KB-4KB = 224KB If using _USB you probably need it.
Found in: MarlinFirmware/Marlin#15254
Changing EEPROM_START_ADDRESS worked for me.
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
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.
in case the compiled does not work.
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.
@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.
There is a bin file: https://github.com/fluppie/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V1.2 Only check/change your E-steps after flashing the FW.
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.