Paneldue freezes after print begins



  • I am running

    Firmware Name: RepRapFirmware for Duet WiFi
    Firmware Version: 1.15c (2016-09-05)
    WiFi Server Version: 1.02
    Web Interface Version: 1.12

    The paneldue does not show the bed heater temp rising after printing starts, its still responsive and I can switch between screens. It shows "printing" at the top right.

    Once the bed is heated it starts showing the temps normally.



  • AFAIK, it's a known bug.


  • administrators

    It's been reported by a few others. Please can you tell me:

    1. What are the first 20 or so lines of gcode in the file you were printing? In particular the bit where it heats the bed and waits.

    2. Does the problem occur only when you start the print from PanelDue, or does it also occur if you start the print from the web interface?



  • Okay this is one file

    [[language]]
    ; generated by Slic3r 1.2.9 on 2016-10-09 at 17:07:59
    
    ; external perimeters extrusion width = 0.30mm
    ; perimeters extrusion width = 0.24mm
    ; infill extrusion width = 0.40mm
    ; solid infill extrusion width = 0.40mm
    ; top infill extrusion width = 0.40mm
    
    M107
    M190 S130 ; set bed temperature
    G28                                                       ; home all axes
    G28                                                      ;home again in case of problem
    M104 S160                                         ; preheat extruder without waiting
    G32                                                     ;autocalibration leave OFF until print bite arrives
    M109 S250    ; Set extruder temp
    
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M82 ; use absolute distances for extrusion
    
    

    and this is another

    [[language]]
    ; generated by Slic3r 1.2.9 on 2016-10-09 at 10:13:46
    
    ; external perimeters extrusion width = 0.40mm
    ; perimeters extrusion width = 0.67mm
    ; infill extrusion width = 0.67mm
    ; solid infill extrusion width = 0.67mm
    ; top infill extrusion width = 0.67mm
    
    M107
    M190 S130 ; set bed temperature
    G28                                                       ; home all axes
    G28                                                      ;home again in case of problem
    M104 S160                                         ; preheat extruder without waiting
    G32                                                     ;autocalibration leave OFF until print bite arrives
    M109 S250    ; Set extruder temp
    
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M82 ; use absolute distances for extrusion
    G92 E0
    G1 E-1.40000 F3000.00000
    G92 E0
    G1 Z0.600 F9000.000
    G1 X21.800 Y-25.928 F9000.000
    G1 Z0.560 F9000.000
    
    

    I start all prints from the web interface.
    If its a known issue then its no trouble, I just expect to look over after starting a print to see my bed temp rising, and it isn't on the panel. So I look at the screen instead and it's fine.


  • administrators

    What I think is happening is that the PanelDue notices the status change to "Printing" and sends M36 to ask the Duet for details of the file being printed. By then the M190 command is already being executed. M36 cannot yet be executed concurrently with any other commands, so it is held in a queue. Meanwhile the status requests that PanelDue sends are queued after the M36 command.

    If you can arrange for the starting code to have a G4 P2000 command before the M190 command, that should allow the M36 command to complete before heating commences.

    The problem will be fixed when we implement full concurrency of non-conflicting commands, which is planned for version 1.16 but might get postponed to 1.17.



  • Thanks David, that pause is easy enough to do, I'll try it later on tonight.



  • I added the G4 P2000 before the M190 and the PanelDue showed the bed temp increasing.



  • I could add this manually or by some post processor, after gcode generation by slic3r but I cannot add it before the M190 as slic3r's custom gcode is added after M190 and starts where I have G28. I'll just carry on for now and wait until it gets changed in a later version. Thanks for the help though.



  • If you put the M140/M190 and M104/M109 in the startup gcode, Slic3r will use those.

    Here's my Slic3r startup gcode:
    T0 ; make sure the only hotend is selected
    G4 P2000 ; pause workaround for the rrf/paneldue bug
    M190 S[first_layer_bed_temperature]
    M104 S[first_layer_temperature]
    G28 ; home all axes
    G32 ; bed calibration - RRF
    M109 S[first_layer_temperature]
    M117 [input_filename_base]

    End gcode:
    M104 S0 ; turn off temperature
    M140 S0 ; turn off bed
    G28 X0 ; home X axis
    G1 Y300 ; move y to rear
    M84 ; disable motors



  • Thanks Ill try a variant of that.



  • Yep that worked thank you.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.