Just had something weird happen and want to understand what triggered it.
After a clean 11-minute foam cut completed (M30 sent at 02:06:10Z), machine sat Idle for ~80 minutes at MPos -1222.470, -517.558, Z=70 (bottom-left corner of the sheet, bit safely retracted). FluidNC v1.15 on Maslow S3 board.
I sent G0 X0 Y0 over the WebSocket (port 81) to bring the sled back to sheet center — same command the “Go to Home” button in the UI sends, as far as I know.
Expected: rapid travel to (0, 0), continuous <Run|MPos:...> status reports along the way, ending at <Idle|MPos:0,0,...>.
Actual: no <Run> reports ever appeared. The board rebooted instead. From my session log:
03:28:42.938Z <Idle|MPos:-1222.470,-517.558,70.000,0.000,0.000|FS:0,0>
03:28:42.965Z [MSG:INFO: FluidNC v1.15]
03:28:42.966Z [MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
...
[boot continues, encoder + motor detection runs]
03:28:42.989Z [MSG:INFO: TL encoder moved 540 counts (-5.797mm) since save, adjusting position]
03:28:42.989Z [MSG:INFO: TR encoder angle difference too
03:28:43.185Z large (-1744 counts), treating belt positions as stale]
03:28:43.186Z [MSG:INFO: Starting Maslow Version v1.15]
27 ms between the last Idle status and the FluidNC boot banner. No error:, no ALARM: message before the reboot — just dead silence then firmware coming back up. After reboot, position is NaN and the machine is in Alarm with belt positions flagged stale.
One possible factor: my PC was running low on RAM around this time (lots of tabs and other programs open). Could a host-side RAM/network hiccup somehow propagate to the controller and crash it? My mental model says no — the ESP32 is standalone, the PC just talks to it over WebSocket, and a dropped WS connection should leave the board happily sitting in whatever state it was in. I get why I’d need to reconnect the WebSocket. What I don’t understand is why the controller itself rebooted and lost its belt positions / forced me to re-tension. A PC stall shouldn’t reach across the wire and reset the board.
Questions:
- What could cause sending a simple
G0 X0 Y0rapid to crash the controller? Power glitch coincidence, or is there a known issue with long-rapids from corner positions? - The TR encoder reporting -1744 counts difference on reboot is suspicious — does that suggest motion did start before the crash, or is that a normal “stale since last save” reading after any unclean shutdown?
- Is there any plausible path by which a host-side hiccup (low RAM, WS disconnect) could trigger a controller reboot? Or are these always independent and a reboot here means a genuine board-side fault?
- Is there a way to dump a crash log / panic trace from FluidNC after this kind of reboot?
Log file attached.
Thanks.