Board self-resets during the the print
-
@thedragonlord that overpowered warning is just a warning.
Grab an output of M122 when it resets again -
@jay_s_uk said in Board self-resets during the the print:
@thedragonlord that overpowered warning is just a warning.
Grab an output of M122 when it resets againIt did it again, here's the M122...it looks an out of memory error....why??
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0beta6 (2021-11-06 11:37:41) running on Duet WiFi 1.02 or later Board ID: 08DLM-996RU-N85T0-6JKFJ-3SD6R-9SSHN Used output buffers: 10 of 24 (19 max) === RTOS === Static ram: 23772 Dynamic ram: 79768 of which 12 recycled Never used RAM 5672, free system stack 174 words Tasks: NETWORK(ready,96.5%,247) ACCEL(notifyWait,0.0%,350) HEAT(notifyWait,2.8%,326) Move(notifyWait,0.3%,364) MAIN(running,1228.3%,440) IDLE(ready,1.0%,30), total 1328.9% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 09:00:41 ago, cause: software Last software reset at 2021-11-21 21:04, reason: OutOfMemory, GCodes spinning, available RAM 648, slot 0 Software reset code 0x41c3 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x20002400 Task MAIN Freestk 842 ok Stack: 20019570 0040fa8d 00000063 0040fc5b 00000008 0000031c 2001a2c4 004062f3 00000002 00000002 20002478 00406409 20002478 20002480 20002478 00000002 200097c5 0040645b 00000000 20002480 00000001 20001478 200024a4 20002478 00000000 0040647f 20002478 Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 0 MCU temperature: min 32.5, current 32.8, max 38.3 Supply voltage: min 23.8, current 24.0, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/16, heap memory allocated/used/recyclable 2048/342/24, gc cycles 15 Driver 0: pos 0, standstill, SG min n/a Driver 1: pos 0, standstill, SG min n/a Driver 2: pos 0, standstill, SG min n/a Driver 3: pos 0, standstill, SG min n/a Driver 4: pos 0, standstill, SG min n/a Driver 5: pos 0 Driver 6: pos 0 Driver 7: pos 0 Driver 8: pos 0 Driver 9: pos 0 Driver 10: pos 0 Driver 11: pos 0 Date/time: 2021-11-22 06:05:28 Cache data hit count 4294967295 Slowest loop: 10.77ms; fastest: 0.18ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 1.2ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle 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 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === Filament sensors === Extruder 0: pos 84.38, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 1: pos 352.97, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === Network === Slowest loop: 82.17ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(1), 1 sessions HTTP sessions: 2 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.26 WiFi MAC address 84:0d:8e:b3:bc:96 WiFi Vcc 3.45, reset reason Turned on by main processor WiFi flash size 4194304, free heap 25096 WiFi IP address 192.168.1.7 WiFi signal strength -43dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 2 0 0 0 0 0 0 0
Here's how I setted Ideamaker:
here's my config.g, I've setted some variables but I don't think this could be the problem:
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Nov 01 2020 08:34:36 GMT+0100 (Ora standard dell’Europa centrale) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"DragonCore" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S0 ; physical drive 2 goes backwards M569 P3 S0 ; physical drive 3 goes backwards M569 P4 S0 ; physical drive 4 goes backwards M584 X0 Y1 Z2 E3:4 ; set drive mapping M350 E16 I0 ; configure microstepping without interpolation M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X159.6 Y159.6 Z1188.11 E415:415 ; set steps per mm M566 X660.00 Y660.00 Z12.00 E1500:1500 ; set maximum instantaneous speed changes (mm/min) #################################### M203 X6000.00 Y6000.00 Z180.00 E10000.00:10000.00 ; set maximum speeds (mm/min) ############################ M201 X300.00 Y300.00 Z20.00 E2000.00:2000.00 ; set accelerations (mm/s^2) ############################### M906 X800 Y800 Z900 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent ###################################e M84 S30 ; Set idle timeout ; Axis Limits M208 X-20 Y-30 Z0 S1 ; set axis minima ################################ M208 X320 Y320 Z350 S0 ; set axis maxima ######################################### ; Endstops M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X33.995 Y17.262 Z0.34 ; set Z probe trigger value, offset and trigger height ############################################### M557 X34:315 Y20:315 S20 ; define mesh grid ##################################################### ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 H12 L-5 R4200 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S285 ; set temperature limit for heater 1 to 280C M308 S2 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8 H13 L-5 ; configure sensor 2 as thermistor on pin e1temp M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S285 ; set temperature limit for heater 2 to 280C ; Fans M950 F0 C"fan0" Q2000 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M308 S4 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper M308 S3 Y"drivers" A"Drivers" ; configure sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet M950 F2 C"fan2" Q2000 ; create fan 2 on pin fan2 and set its frequency M106 P2 H3:4 L0.5 X1 B1 T40:50 ; set fan 2 value ; ============================================= ; = WATER COOLING CONTROLLER = ; ============================================= M950 F10 C"exp.heater5" M106 P10 S1 H1:2 T51 ; ============================================= ; = LED FAN = ; ============================================= M950 F11 C"exp.heater4" M106 P11 S0 ; Tools M563 P0 S"Master" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 S"Slave" D1 H2 F0 ; define tool 1 G10 P1 X20 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M912 P0 S-2.45 ; calibrates CPU temp M501 ; load saved parameters from non-volatile memory ; ========================================================= ; = D R A G O N C O R E = ; ========================================================= ; ================== ; = VARIABLES = ; ================== global isPrinting = false global isActuallyPrinting = false global toolsSafeTemperature=50 global tool0ActiveTemperature=0 global tool1ActiveTemperature=0 global coolDownTemperature=20 global primingExtruderAmount=20 global purgingAmount=15 ; ================== ; = NOZZLES WIPING = ; ================== global XWipeCoord=56 global YWipe1Coord=-10 global YWipe2Coord=-30 global leftNozzleAngle=17 global rightNozzleAngle=42 global middleWiperAngle=29 global leftMostWiperAngle=3 global rightMostWiperAngle=55 ; ================== ; = FOR PA SETTINGS= ; ================== ;global g_pa_setting = 0.39 ; the current pressure advance setting ;global g_pa_increment = 0.05 ; the amount to increment the pressure advance setting ;global g_pa_layer_count = 25 ; the number of layers to count to cause the incrementing of the pressure advance setting ;global g_pa_layer_counter = 0 ; the current layer count ; =================== ; = NOZZLES WIPER = ; =================== M950 S1 C"exp.heater6" Q50 ; ================== ; = SCREWS POINTS = ; ================== M671 X5:320:320:5 Y320:320:5:5 P0.5 ; point1 (5,320), point2 (320,320), point3 (320,5), point4 (5,5) ; ===================== ; = MAGNETIC SENSORS = ; ===================== M98 P"Print_gcodes/magnetic_filament_sensors.g" ; ===================== ; = ACCELEROMETER = ; ===================== M955 P0 C"spi.cs4+spi.cs3" I50 M593 P"ei3" F67.8 ; ====================== ; = POWER FAILURE = ;======================= M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; power failure
Have any idea?
Thanks
-
@thedragonlord could be linked to the amount of variables you are using.
@dc42 will have to comment -
@jay_s_uk said in Board self-resets during the the print:
@thedragonlord could be linked to the amount of variables you are using.
@dc42 will have to commentok, I'll wait @dc42 but I'm afraid it's something gcode related because printing the same gcode I have the same issue at the same height...the stragest thing is that the gcode is a simple box with only a 2 perimeters thick wall...
-
@thedragonlord you may want to upload the gcode just in case
-
@jay_s_uk said in Board self-resets during the the print:
@thedragonlord you may want to upload the gcode just in case
I've modified it to take off all the "extra" extrusions, the thin wall check etc to see if that were the issued and now it's printing...in few minutes it will reach the "crtical" heigth, if it will resets again I'll post the gcode...
-
This post is deleted! -
@thedragonlord Do you have a daemon.g file? If so you should probably upload it for DC42 to take a look at.
-
@gloomyandy said in Board self-resets during the the print:
@thedragonlord Do you have a daemon.g file? If so you should probably upload it for DC42 to take a look at.
here it is:
; Check for safe temperature reaching if {global.isPrinting == true && state.status == "idle" && heat.heaters[1].current < global.toolsSafeTemperature && heat.heaters[2].current < global.toolsSafeTemperature} M118 P0 S"Safe temperature reached, turn off the printer" L2 set global.isPrinting = false
-
@thedragonlord I've rebuild the gcode taking off the unnecessary retractions, the thin wall check and taking off the snapshot at layer change and the print has completed normally....so the "guilty" could be the taking of the snapshot or the Ideamaker "fine-tuning" of the GCODE....
-
@thedragonlord from your M122 report:
=== Platform === Last reset 09:00:41 ago, cause: software Last software reset at 2021-11-21 21:04, reason: OutOfMemory, GCodes spinning, available RAM 648, slot 0 ... Heap OK, handles allocated/used 99/16, heap memory allocated/used/recyclable 2048/342/24, gc cycles 15
The heap usage appears OK but it has already done 15 garbage collection cycles, which is rather a lot. So I think you must be creating variables quite a lot. It may be that there is an error in the garbage collection code. What variables to you create or reassign during a print? Is there a macro that gets called regularly during the print, that creates local variables or changes the value of global ones?
-
@dc42 is it significant that the first error reported on the paneldue was:
Warning: failed to parse response heat:heaters^: in state 12
-
@dc42 said in Board self-resets during the the print:
@thedragonlord from your M122 report:
=== Platform === Last reset 09:00:41 ago, cause: software Last software reset at 2021-11-21 21:04, reason: OutOfMemory, GCodes spinning, available RAM 648, slot 0 ... Heap OK, handles allocated/used 99/16, heap memory allocated/used/recyclable 2048/342/24, gc cycles 15
The heap usage appears OK but it has already done 15 garbage collection cycles, which is rather a lot. So I think you must be creating variables quite a lot. It may be that there is an error in the garbage collection code. What variables to you create or reassign during a print? Is there a macro that gets called regularly during the print, that creates local variables or changes the value of global ones?
I thought it was somethng related to the garbage collector. During a single color print (like this) I don't read/reassign global variables, during a dual color I read (but not reassign) all the GLOBAL variables setted in the config.g. As I told before, taking off all the Ideamaker "fine tuning" for the gcode and taking off the shoot of the picture for the timelapse in the layer change it all works.
In my opinion the issue should not be related to the Ideamaker "fine tuning" but should be related to the picture shooting. In my layer change gcode I execute a macro wich executes the commands:; ******************* LAYER CHANGE, TAKE SNAPSHOT ************** M400 ; wait for all movement to complete M118 P4 S"LAYER CHANGE" ; take a picture
I use a plugin installed on a Raspberry PI, I don't remember its name....
Generally speaking if I have only a script wich needs a variable is it better to declare it as local or global in the config.g? I've declared all the variables as global because I didn't know if a garbage collector runs during the print so I didn't know if the memory space were set free or not after the script closure...
-
@t3p3tony said in Board self-resets during the the print:
@dc42 is it significant that the first error reported on the paneldue was:
Warning: failed to parse response heat:heaters^: in state 12
Originally I was asking this too...I don't think this warning is normal...what could be the cause for this warning to show in the PanelDue console?
-
@thedragonlord key "heat:heaters^" looks wrong to me, I think it should be "heat.heaters^". Do you always get this after power up? Do you get it if you press the PanelDue Reset button?
-
@dc42 said in Board self-resets during the the print:
@thedragonlord key "heat:heaters^" looks wrong to me, I think it should be "heat.heaters^". Do you always get this after power up? Do you get it if you press the PanelDue Reset button?
always
-
@thedragonlord said in Board self-resets during the the print:
@thedragonlord key "heat:heaters^" looks wrong to me, I think it should be "heat.heaters^". Do you always get this after power up? Do you get it if you press the PanelDue Reset button?
there's nothing to worry about. it's just a warning. As there are no successive warning, one transmission failed and then things recovered nicely.
-
@mfs12 is that error coming from the PanelDue requesting a key using the wrong format?
Either way it looks like that is a red herring for the board resets?
-
@T3P3Tony, the key reported is from an internal parsing map, which maps json names to internal data structures. So this data is not send. The warning is reported when an incomplete answer is received or an answer gets corrupted on the way from RRF to PD.
So if transmission would be an real issue it would likely occur more often.
-
@thedragonlord you said that the M118 command was processed by a plugin on a RPi. Are you using the regular Duet 2 firmware, or are you using the SBC version with the RPi connected to the Duet via SPI?
Can you run a print (without filament if you like) with the Ideamaker fine turning turned off, to confirm that it is the layer change macro that provokes the out-of-memory error?