-
-
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
Crash (Hard Reset) when issuing G2/G3 command #3729
Comments
Could you please attach a serial log ? |
What slicer you use? |
Also…
|
Here is the serial log:
I am unable to send anything until I disconnect and reconnect (OctoPrint). A slicer did not generate this, I have gcode I run to test new config options or features. |
Do you get the same result with: G1 X130 Y130 F9000
G2 I50 J50 It's the same idea, and should make a complete circle with a radius just over 70mm, centered around the point 180, 180. |
Let's debug, shall we? Add the following lines to the SERIAL_ECHOPAIR("Segment ", segment);
SERIAL_ECHOPAIR(" at ", arc_target[X_AXIS]);
SERIAL_ECHOPAIR(",", arc_target[Y_AXIS]);
SERIAL_EOL; …immediately after the lines… // Update arc_target location
arc_target[X_AXIS] = center_X + r_X;
arc_target[Y_AXIS] = center_Y + r_Y;
arc_target[Z_AXIS] += linear_per_segment;
arc_target[E_AXIS] += extruder_per_segment; …and re-flash and test. This will tell us how far it gets before it blows up. |
70mm arc @ 180 did crash it, I will update the firmware tonight (long work hours). |
Ok, ran the updated firmware (segment wasn't a defined variable, ended up using "i" from the loop).
I do wonder though, am I the only one duplicating this issue? If so, I'll focus on it on my own board, I just wasn't sure if anyone else was experiencing this. |
Alright, life would've been easier if the 2560 bootloader didn't zero out MCUSR, but I'm 90% positive its a watchdog reset. Disabling watchdog temporarily solves the issue, and WATCHDOG_RESET_MANUAL causes a bootloop that otherwise would've pointed out the issue. You may want to consider another location for wdt_reset other than Temperature.cpp |
Uiiii.
idle() is not called, what should call the heater manager. As a workaround try to increase One of the possible real solutions could be to call at least |
Someting like
|
I can reproduce the problem with setting |
#3751 prevents from the watchdog reset but increases the stuttering a bit. Using |
How about something like this… uint8_t idle_counter = 0;
millis_t next_ping_ms = millis() + 200UL;
for (i = 1; i < segments; i++) { // Iterate (segments-1) times
millis_t now = millis();
if (ELAPSED(now, next_ping_ms)) {
next_ping_ms = now + 200UL;
if (idle_counter++ & 0x03)
thermalManager.manage_heater(); // ...and reset watchdog timer
else
idle();
}
. . . |
@AnHardt @thinkyhead what is the status of this ticket, should we consider it a bug that needs a patch or can it be closed ? Thanks. |
Fixed by #3751 and follow ups. |
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. |
I am using a RUMBA board with a 300x300x300 build area. I'm running RCBugFix commit 735f1f5.
I've found when running this code, I lose all comms with the board, and the graphical LCD shows the splash screen (full reset).
Still experimenting to see if its only large moves, or any arc moves causing this
[edit] Found pretty much any move with I + J over ~50 crashes the board.
The text was updated successfully, but these errors were encountered: