-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
[BUG] Babystepping causes freeze on delta printer with marlin 2.0.x bugfix but not on older 1.1.x versions - caused by wrong calc with MINIMUM_STEPPER_PULSE and _PULSE_WAIT #13300
Comments
Configured down with very few compiler switches and even without "doubleclick" but only babystepping accessible via TUNE-menu. That config in zip attached, but problem still exists. Now migrating config to Marlin 1.1.x release and I will try again. ********************************* UPDATE AND TESTS *************************************
|
Found it! Value overflow in stepper.cpp when calculating EXTRA_CYCLES_BABYSTEP. In old Marlin the default for MINIMUM_STEPPER_PULSE when not given was 2. This "MINIMUM_STEPPER_PULSE" is taken in stepper.cpp to calculate EXTRA_CYCLES_BABYSTEP #define EXTRA_CYCLES_BABYSTEP (STEP_PULSE_CYCLES - (CYCLES_EATEN_BABYSTEP)) But it does not check if a higher value is subtracted from a smaller one (which is not the case on a 16MHz CPU with MINIMUM_STEPPER_PULSE of 2 - BUT: It takes place when MINIMUM_STEPPER_PULSE is 1 - like in the new default settings of Marlin 2 ) Solution: With this one:
Hope this helps. I would expect this to be an issue on more machines when trying to babystep. Not only on my ANET A4 atmega128 A4988 with minstepperpulse=1 configuration. I will leave this item open until confirmed by core-team. Maybe this bugfix is worth applying to mainline. I will leave this topic open until inspected and evaluated if worth applying to mainline or not for core team. Just had a quick look - seems to be an issue ever since having minstepperpulse configured to 1. Thank you for your current support and efforts so far! Hope this helps a little bit! Great work! Thank You! |
Maybe check what happens if you force If this solves your issue it is still not strongly related to my topic above. But maybe another side effect of changing the default of MINIMUM_STEPPER_PULSE. I haven't had that issue on my machine , yet. |
I just enabled |
Hi Stady234, |
You are correct.. i was simply stating that changing that value back to the previous commit of 2.. solved it.. i have since made the changes in the stepper file as you showed and reset the stepper pulse back to 1 and all is well. |
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
Compiling Marlin 2 bugfix for a ANET A4 delta (Melzi board with atmega 128k) and 20x4 LCD controller.
Activated babystepping with doubleclick feature during print as well as:
NO_WORKSPACE_OFFSETS
Update: independent if ON or OFF -> Problem still there
MIN_STEPS_PER_SEGMENT set to 2 -> for 20um on a A4
S-Curve active
-> Update: independent if ON or OFF -> Problem still there
Adaptive step smooth active
-> Update: independent if ON or OFF -> Problem still there
endstops_interrupt_feature is already OFF
-> Seen that babystepping is ISR sensitive.
ABL and Delta Auto Calibration: With or without this active with manual/LCD leveling
-> Problem still there
Steps to Reproduce
2.) Try to adjust with up or down button
-> Crashes / Hangs up, after approx 2 sec all actuators are shut off. Have to do a power-on-reset to get the printer up and running again.
Expected behavior: [
Babystepping should work.
Actual behavior:
Hangs up.
Additional Information
Marlin2A4_config.zip
Build done on Arduino 1.8.8.
update: config zip attached.
Can you reproduce or is it a known issue? Which compiler switch can be related to that issue? Something already known or further investigation needed.
The text was updated successfully, but these errors were encountered: