3.01RC11 on WiFi + Duex5 M950 Fan on Duex causes reboot loop.



  • Greetings,
    I hope and wish that in the midst of these challenging times you and your families are safe.

    I had four extruder setup with Duet 2 WiFi + Duex5 running against RRF2 and now switching to RRF3.

    With RRF3 Release 3.01-RC11 (didn't print with it yet) I got the new configuration under control, but only when using up to two extruders.

    As soon as third extruder is introduced, firmware keeps rebooting and I can only edit configuration by removing micro-SD card.

    Problem:
    With three extruder setup, as soon as this line is present, rebooting occurs:

    M950 F3 C"duex.fan3" Q500
    

    Configuration:

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 04 2020 12:00:23 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    G90                                                     ; send absolute coordinates...
    M83                                                     ; ...but relative extruder moves
    M550 P"Maker3D-V4"                                      ; set printer name
    
    M667 S1                                                 ; select CoreXY mode
    
    ; Network
    M552 S1                                                 ; enable network
    M586 P0 S1                                              ; enable HTTP
    M586 P1 S0                                              ; disable FTP
    M586 P2 S0                                              ; disable Telnet
    
    ; Drives
    M569 P0 S1                                              ; physical drive 0 goes forwards
    M569 P1 S1                                              ; physical drive 1 goes forwards
    M569 P2 S1                                              ; physical drive 2 goes forwards
    M569 P3 S1                                              ; physical drive 3 goes forwards
    M569 P4 S1                                              ; physical drive 4 goes forwards
    M569 P5 S1                                              ; physical drive 5 goes forwards
    M584 X0 Y1 Z2 E3:4:5                                    ; set drive mapping
    M350 X16 Y16 Z16 E16:16:16 I1                           ; configure microstepping with interpolation
    M92 X80.11 Y79.90 Z240.00 E420.00:420.00:420.00         ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00:120.00       ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00:250.00       ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800:800:800 I30                    ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                 ; Set idle timeout
    
    ; Axis Limits
    M208 X-2 Y-42 Z0 S1                                     ; set axis minima
    M208 X294 Y310 Z150 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
    M558 P5 C"zprobe.in+zprobe.mod" H5 F120 T6000           ; set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z2.5                                     ; set Z probe trigger value, offset and trigger height
    M557 X13:215 Y-27:195 S20                               ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138          ; 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
    M143 H0 S120                                            ; set temperature limit for heater 0 to 120C
    M307 H0 B1 S1.00                                        ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                                 ; map heated bed to heater 0
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138           ; 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
    M143 H1 S300                                            ; set temperature limit for heater 1 to 300C
    M307 H1 B0 S1.00                                        ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138           ; 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
    M143 H2 S280                                            ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00                                        ; disable bang-bang mode for heater  and set PWM limit
    M308 S3 P"duex.e2temp" Y"thermistor" T100000 B4138      ; configure sensor 3 as thermistor on pin duex.e2temp
    M950 H3 C"duex.e2heat" T3                               ; create nozzle heater output on duex.e2heat and map it to sensor 3
    M143 H3 S280                                            ; set temperature limit for heater 3 to 280C
    M307 H3 B0 S1.00                                        ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                                    ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                          ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                                    ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                                       ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500                                    ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S1 H2 T45                                       ; set fan 2 value. Thermostatic control is turned on
    M950 F3 C"duex.fan3" Q500                               ; create fan 3 on pin duex.fan3 and set its frequency
    M106 P3 S1 H3 T45                                       ; set fan 3 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 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 D1 H2 F0                                        ; define tool 1
    G10 P1 X0 Y0 Z0                                         ; set tool 1 axis offsets
    G10 P1 R0 S0                                            ; set initial tool 1 active and standby temperatures to 0C
    M563 P2 D2 H3 F0                                        ; define tool 2
    G10 P2 X0 Y0 Z0                                         ; set tool 2 axis offsets
    G10 P2 R0 S0                                            ; set initial tool 2 active and standby temperatures to 0C
    
    ; Custom settings
    ; Tool Changer
    M950 P6 C"nil"
    M950 S6 C"duex.pwm4"
    

    Any suggestions are greatly appreciated!


  • administrators

    That line looks valid. can you try commenting it out and the tool definitionas etc that use F3 and then one the board boots try entering the line by itself. Also check that M122 reports the Duex is being found properly.



  • Thank you Tony,

    5/4/2020, 2:15:04 PM	M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.01-RC11 ELECTRONICS: Duet WiFi 1.02 or later + DueX5 FIRMWARE_DATE: 2020-04-30b3
    

    I successfully started two-extruder configuration and issued:

    M950 F3 C"duex.fan3" Q500
    

    The web control lost connection, firmware rebooted and web control re-established connection.


  • Moderator

    Moved to the Beta Firmware forum and updated the post title.



  • @T3P3Tony

    	M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.01-RC11 running on Duet WiFi 1.02 or later + DueX5
    Board ID: 08DGM-917DA-G4MS8-6JTD4-3S86L-19S7AUsed output buffers: 3 of 24 (20 max)
    === RTOS ===
    Static ram: 28060
    Dynamic ram: 94724 of which 44 recycled
    Exception stack ram used: 552
    Never used ram: 7692
    Tasks: NETWORK(blocked,172) HEAT(blocked,540) DUEX(blocked,160) MAIN(running,1816) IDLE(ready,76)
    Owned mutexes: WiFi(NETWORK) I2C(DUEX)
    === Platform ===
    Last reset 00:32:48 ago, cause: software
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 7708 bytes (slot 2)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 8
    MCU temperature: min 28.8, current 30.2, max 31.4
    Supply voltage: min 24.0, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/156
    Driver 1: standstill, SG min/max 0/166
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max 0/152
    Driver 4: standstill, SG min/max not available
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Driver 7: standstill, SG min/max not available
    Driver 8: standstill, SG min/max not available
    Driver 9: standstill, SG min/max not available
    Date/time: 2020-05-04 16:12:18
    Cache data hit count 3253372840
    Slowest loop: 38.63ms; fastest: 0.13ms
    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 3.9ms, write time 1.2ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 125, MaxWait: 989754ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 13310, completed moves: 13310, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.71ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    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.23
    WiFi MAC address 80:7d:3a:3f:f4:ce
    WiFi Vcc 3.38, reset reason Unknown
    WiFi flash size 4194304, free heap 22168
    WiFi IP address 192.168.1.44
    WiFi signal strength -43dBm, reconnections 0, sleep mode modem
    Socket states: 0 4 0 0 0 0 0 0
    === DueX ===
    Read count 325536, inf reads/min
    

  • administrators

    @UticaTechClub thanks. just as a test can you try configure another fan on the Duex with M950 please?



  • @T3P3Tony
    Testing...



  • @T3P3Tony
    I tested them, - all end up rebooting the unit.

    M950 F3 C"duex.fan3" Q500
    M950 F4 C"duex.fan4" Q500
    M950 F5 C"duex.fan5" Q500
    M950 F6 C"duex.fan6" Q500
    M950 F7 C"duex.fan7" Q500
    

    However!
    I ran the print job on two extruders, then paused and cancelled it, and then all of them worked.
    It was one successful time. Subsequent reboot, caused the problem to return and I tried running and cancelling jobs again only to find the the same issue 😞

    With one time success, it presents itself as a possible firmware issue.
    If some sort of low level logging was available, I could try to further track it.

    I will try to derive as to what caused it to succeed one time and perhaps to find a pattern.

    These boards were used in four extrude configuration with RRF2, so I am positive the hardware is OK.

    Thank you!


  • administrators

    Your M122 command contains little useful information because it shows that the last software reset done was commanded by you, for example because you used the Emergency Stop button.

    To get further information, I suggest you get the machine in the reboot loop, then pop the SD card out so that it boots up. You can then either attach via USB/YAT to get the M122 report, or if you have a PanelDue then you can send M552 S1 from it to enable the network, then get the M122 report from DWC.

    If the last software reset was caused by a firmware crash then the 'reason' field after 'Last software reset' will probably be "Hard fault".



  • @dc42
    Thank you!

    I followed the procedure and executed M122 over USB connection, right after the reboot:

    SENDING:M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.01-RC11 running on Duet WiFi 1.02 or later + DueX5
    Board ID: 08DGM-917DA-G4MS8-6JTD4-3S86L-19S7AUsed output buffers: 1 of 24 (2 max)
    === RTOS ===
    Static ram: 28060
    Dynamic ram: 92304 of which 20 recycled
    Exception stack ram used: 312
    Never used ram: 10376
    Tasks: NETWORK(ready,1988) HEAT(blocked,1460) DUEX(blocked,160) MAIN(running,2508) IDLE(ready,76)
    Owned mutexes: I2C(DUEX)
    === Platform ===
    Last reset 00:00:08 ago, cause: software
    Last software reset time unknown, reason: Stuck in spin loop, spinning module GCodes, available RAM 7944 bytes (slot 3)
    Software reset code 0x0083 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f80f BFAR 0xe000ed38 SP 0x20004334 Task 0x454c4449
    Stack: 0045481d 0045524e 61000000 a5a5a5a5 0045481d a5a5a5a5 a5a5a5a5 2000435c 2000424c 00000002 20004d94
    Error status: 0
    [ERROR] Error status: 0
    
    MCU temperature: min 27.8, current 28.3, max 28.4
    Supply voltage: min 24.2, current 24.2, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Driver 7: standstill, SG min/max not available
    Driver 8: standstill, SG min/max not available
    Driver 9: standstill, SG min/max not available
    Date/time: 1970-01-01 00:00:00
    Cache data hit count 8327457
    Slowest loop: 13.57ms; fastest: 0.14ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 30.0MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === 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 ready with "M122" 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 0.22ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    HTTP sessions: 0 of 8
    - WiFi -
    Network state is disabled
    WiFi module is disabled
    Failed messages: pending 2779096485, notready 2779096485, noresp 2779096485
    Socket states: 0 0 0 0 0 0 0 0
    === DueX ===
    Read count 1306, inf reads/min
    

  • administrators

    Thanks! How long does the reboot loop take, per iteration? The DIAG LED may give you a clue.


  • administrators

    Please try 3.01-RC12 and see if the behaviour is any different.



  • @dc42
    Thank you!
    Every re-boot, red DIAG LED blinks.
    It takes approximately 24 seconds between re-boots.

    New discovery:
    One time, it booted all the way in and discovered all four tools. It basically stopped re-booting.
    I am trying this again, but I am not sure if I will succeed.

    Looking forward:
    I will try updating to RC12 after few more attempts at the above.

    Greatly appreciated!



  • @dc42
    The same exact pattern repeats with RC12.

    Or, the reboot could be induced by simply issuing

    M950 F3 C"duex.fan3" Q500
    

  • administrators

    I've tested your config.g on my Duet WiFi + DueX setup, and it works here. I don't have a fan connected to Fan3 on the DueX yet. Does your machine boot up if no Fan3 is connected? Are you using VIN or 12V fan supply on the DueX?

    I am beginning to suspect a hardware fault on your DueX5.



  • @dc42
    I have tried different Duex board and it keeps rebooting. I doubt it is hardware related, it used to also work in this hardware configuration with version 2 firmware.

    I also tried the very latest 3.1.1 firmware and it is still the same.

    Perhaps something else in my configuration causes this problem indirectly.config-good.g config-bad.g



  • @dc42
    I am using VIN, 24V.
    No difference if Fan3 is connected or not.


  • administrators

    Now that you are running firmware 3.1.1, please can you get and post another M122 report after the reboot happens.



  • @dc42
    Thank you! Here it is:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later + DueX5
    Board ID: 08DGM-917DA-G4MS8-6JTD4-3S86L-19S7A
    Used output buffers: 3 of 24 (11 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 94788 of which 60 recycled
    Exception stack ram used: 264
    Never used ram: 7980
    Tasks: NETWORK(ready,384) HEAT(blocked,1224) DUEX(blocked,160) MAIN(running,1812) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK) I2C(DUEX)
    === Platform ===
    Last reset 00:00:20 ago, cause: software
    Last software reset at 2020-05-28 12:58, reason: Stuck in spin loop, spinning module GCodes, available RAM 7480 bytes (slot 3)
    Software reset code 0x4083 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f80f BFAR 0xe000ed38 SP 0x200042e4 Task IDLE
    Stack: 00454cdd 00455710 61000000 a5a5a5a5 00454cdd a5a5a5a5 20004308 200041f8 00000002 20004de4 00046153 
    Error status: 0
    MCU temperature: min 27.7, current 28.4, max 28.8
    Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Driver 7: standstill, SG min/max not available
    Driver 8: standstill, SG min/max not available
    Driver 9: standstill, SG min/max not available
    Date/time: 2020-05-28 12:59:08
    Cache data hit count 32201028
    Slowest loop: 21.83ms; fastest: 0.13ms
    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 2.7ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.74ms; fastest: 0.00ms
    Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 1 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.23
    WiFi MAC address 80:7d:3a:3f:f4:ce
    WiFi Vcc 3.38, reset reason Unknown
    WiFi flash size 4194304, free heap 25984
    WiFi IP address 192.168.1.44
    WiFi signal strength -47dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0
    === DueX ===
    Read count 3219, 9584.64 reads/min
    


  • @dc42
    M122 was achieved by first booting with good configuration file and then issuing

    M950 F3 C"duex.fan3" Q500
    

    to cause the reboot.


Log in to reply