[3.5.0 b1+] M291 causes a reset if more than 3 choices are given
-
M291 causes reset if more than 3 choices are given.
M291 P"Please select the tool to load.Press"Cancel" to abort" R"Load Tool" S4 K{"Cancel","Tool#1","Tool#2"};display message box with choices
Works just fine and
M291 P"Please select the tool to load.Press"Cancel" to abort" R"Load Tool" S4 K{"Cancel","Tool#1","Tool#2","Tool#3"};display message box with choices
causes a reset.
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5beta1 (2022-12-23 18:27:08) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 0JD2M-999AL-D2PS0-6J9DJ-3SD6J-9RJB0 Used output buffers: 1 of 40 (17 max) === RTOS === Static ram: 151524 Dynamic ram: 76688 of which 0 recycled Never used RAM 119532, free system stack 154 words Tasks: SBC(ready,0.5%,481) HEAT(notifyWait,0.0%,373) Move(notifyWait,0.0%,265) CanReceiv(notifyWait,0.0%,943) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,340) TMC(notifyWait,0.2%,68) MAIN(running,99.1%,1273) IDLE(ready,0.2%,30), total 100.0% Owned mutexes: Telnet(MAIN) === Platform === Last reset 00:03:41 ago, cause: power up Last software reset at 2023-01-16 12:49, reason: User, GCodes spinning, available RAM 118696, slot 1 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 18124 MCU temperature: min 19.3, current 24.8, max 25.1 Supply voltage: min 0.2, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 0.0, current 11.9, max 11.9, under voltage events: 0 Heap OK, handles allocated/used 99/2, heap memory allocated/used/recyclable 2048/32/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: ok, SG min 0, mspos 196, reads 31613, writes 14 timeouts 0 Driver 1: standstill, SG min 0, mspos 12, reads 31613, writes 14 timeouts 0 Driver 2: standstill, SG min 0, mspos 8, reads 31617, writes 11 timeouts 0 Driver 3: standstill, SG min 0, mspos 8, reads 31617, writes 11 timeouts 0 Driver 4: standstill, SG min 0, mspos 8, reads 31617, writes 11 timeouts 0 Driver 5: standstill, SG min 0, mspos 8, reads 31617, writes 11 timeouts 0 Date/time: 2023-01-16 13:14:13 Slowest loop: 28.61ms; fastest: 0.03ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 3, maxWait 219230ms, bed compensation in use: none, comp offset 0.000 next step interrupt due in 105 ticks, disabled === DDARing 0 === Scheduled moves 6, completed 5, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by HTTP, null HTTP* is idle in state(s) 2 0 15, running macro Telnet* is doing "M122" in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000005 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 1110, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1110/0/0 Tx timeouts 0,0,1109,0,0,0 last cancelled message type 30 dest 127 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 7915/7915 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x29b04 Buffer RX/TX: 160/208-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-b1 (2022-12-23 20:41:36) HTTP: Buffered code: G1 H1 Z6 F250 ; move slowly to X axis endstop once more (second pass) Buffered code: G90 ; absolute positioning ==> 72 bytes Executing macro 0:/sys/homez.g, started by M98 P"0:/sys/homez.g" > Next stack level Executing macro homeall.g, started by G28 Suspended code: M98 P"0:/sys/homey.g" > Next stack level Code buffer space: 3888 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 2 Full transfers per second: 2.64, max time between full transfers: 60.9ms, max pin wait times: 54.9ms/14.4ms Codes per second: 0.03 Maximum length of RX/TX data transfers: 4184/952 ok
-
@MaxGyver
I'm only on my phone at present, but this works for me.
You need double quotes if you're using a quoted string inside the stringM291 P"Please select the tool to load.Press""Cancel"" to abort" R"Load Tool" S4 K{"Cancel","tool#1","tool#2","tool#3",}
Duet 2 stand alone RRF3.5.0b1+
-
Also you can use The J1 parameter to have RRF include a cancel button which will work as it always has
M291 P"Please select the tool to load.Press""Cancel"" to abort" R"Load Tool" S4 K{"tool#1","tool#2","tool#3","tool#4",} J1
-
-
@MaxGyver there's a possible issue here with DSF handling the bad command incorrectly. We will investigate.
-
Thank you on my CNC-Lathe the DSF seems to crash whenever a bad command is present or for example the probe is not triggered during a probing move. The Maschine status is stuck at "Busy" but at least M122 still works.
I have to power cycle to restart the controller, M999 does not work either.I took this diagnostic after the probe was not triggered during a probing move and triggered an error that subsequently froze the system. I hope this helps.
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5beta1+ (2023-01-01 18:32:38) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 0JD2M-999AL-D2PS0-6J9DJ-3SD6J-9RJB0 Used output buffers: 1 of 40 (28 max) === RTOS === Static ram: 151300 Dynamic ram: 77528 of which 204 recycled Never used RAM 118400, free system stack 154 words Tasks: SBC(ready,0.7%,472) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.1%,252) CanReceiv(notifyWait,0.0%,943) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,334) TMC(notifyWait,7.8%,56) MAIN(running,90.8%,1209) IDLE(ready,0.6%,30), total 100.0% Owned mutexes: Telnet(MAIN) === Platform === Last reset 00:03:56 ago, cause: software Last software reset at 2023-01-17 12:01, reason: User, none spinning, available RAM 118392, slot 0 Software reset code 0x6012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Aux0 errors 0,1,0 Step timer max interval 18061 MCU temperature: min 25.8, current 26.2, max 26.7 Supply voltage: min 0.4, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 0.0, current 11.9, max 11.9, under voltage events: 1 Heap OK, handles allocated/used 99/13, heap memory allocated/used/recyclable 2048/848/664, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 404, reads 34392, writes 33 timeouts 0 Driver 1: standstill, SG min 0, mspos 12, reads 34392, writes 33 timeouts 0 Driver 2: standstill, SG min 0, mspos 8, reads 34403, writes 22 timeouts 0 Driver 3: standstill, SG min 0, mspos 8, reads 34404, writes 22 timeouts 0 Driver 4: standstill, SG min 0, mspos 8, reads 34404, writes 22 timeouts 0 Driver 5: standstill, SG min 0, mspos 8, reads 34404, writes 22 timeouts 0 Date/time: 2023-01-17 12:05:21 Slowest loop: 65.04ms; fastest: 0.03ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 16, maxWait 39235ms, bed compensation in use: none, comp offset 0.000 no step interrupt scheduled === DDARing 0 === Scheduled moves 993, completed 993, hiccups 0, stepErrors 0, LaErrors 0, Underruns [395, 0, 13], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by HTTP, null HTTP* is doing "G10 L2 P1 X9.750000 Y0.000000 Z17.469999" in state(s) 0 0 0, running macro Telnet* is doing "M122" in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is doing "G0 F500 X-0.09" in state(s) 0 Trigger* is idle in state(s) 0 Queue* is doing "G10 P1 X0.000000 Y0.000000 Z0.000000 00.000000" in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000007 Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 1182, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1182/0/0 Tx timeouts 0,0,1181,0,0,0 last cancelled message type 30 dest 127 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 9436/9436 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x29b7c Buffer RX/TX: 768/1304-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-b1 (2022-12-23 20:41:36) HTTP: Buffered code: G10 L2 P1 X9.75 Y0.00 Z17.47 Buffered code: G10 L2 P2 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P3 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P4 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P5 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P6 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P7 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P8 X0.00 Y0.00 Z0.00 Buffered code: G10 L2 P9 X0.00 Y0.00 Z0.00 ==> 576 bytes Executing macro config-override.g, started by M501 ; load new offsets > Next stack level Executing macro 0:/macros/Test Toolprobe, started by M98 P"0:/macros/Test Toolprobe" Suspended code: G0 X0 Suspended code: G0 Z2 Number of flush requests: 1 > Next stack level Code buffer space: 2792 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 2 Full transfers per second: 40.31, max time between full transfers: 497.7ms, max pin wait times: 48.9ms/9.2ms Codes per second: 1.06 Maximum length of RX/TX data transfers: 5520/952
-
@dc42 said in [3.5.0 b1+] M291 causes a reset if more than 3 choices are given:
@MaxGyver there's a possible issue here with DSF handling the bad command incorrectly. We will investigate.
I've noticed a couple of times that bad commands can just "fail" without giving any messages and also without terminating the macro.
I have to send M99 in order to be able to edit the macro.
The multiple input streams can confuse the issue as well when the fill the console with echo output from later in the macro, but I know you're onto that one. -
@OwenD said in [3.5.0 b1+] M291 causes a reset if more than 3 choices are given:
I've noticed a couple of times that bad commands can just "fail" without giving any messages and also without terminating the macro.
Is this in SBC mode or in standalone mode?
-
I'm running in SBC mode.
-
@MaxGyver said in [3.5.0 b1+] M291 causes a reset if more than 3 choices are given:
I'm running in SBC mode.
Thanks. Please report any specific instances in which this happens, so that we can fix them.
-
@dc42 said in [3.5.0 b1+] M291 causes a reset if more than 3 choices are given:
@OwenD said in [3.5.0 b1+] M291 causes a reset if more than 3 choices are given:
I've noticed a couple of times that bad commands can just "fail" without giving any messages and also without terminating the macro.
Is this in SBC mode or in standalone mode?
In my case stand alone.
I'll see if I can replicate it before the weekend -