G29 required after every power down or printer locks up 3.1.1



  • My Duet 3/pi3B+ core x/y printer will not start a print after a power up without first doing a G29. If I don't do a G29 when a print is started the printer homes after the bed and h.e. temps come up and then starts to go to the nozzle wipe area but only travels about 20 mm and stops, console reports that the print has uploaded. Dwc reports that its printing but nothing is happening. A little over 2 minutes after the start of the print console indicates the height map has loaded (the delay is the heaters coming up to temp I believe) but the printer is still doing nothing . Control inputs have no effect, a hard reset is required to regain control of the printer.

    After the initial power up and G28/G29 I can do as many prints as I like, the printer works normally, but if power is removed another G29 will be required before a print can start. It started doing this after I configured the Y endstop as seen in the Config G file , here are the relevant files including the S3d start script.
    All f/w and dwc are at 3.1.1
    Also when the G29 S1 load height map is removed from the start script the print now starts normally but there is no Z height adjustment during the print.
    So my question is, is this normal?

    Config G

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Apr 29 2020 12:52:20 GMT-0600 (Mountain Daylight Time)
    
    ; General preferences
    G90                                          ; send absolute coordinates...
    M83                                          ; ...but relative extruder moves
    M550 P"Duet 3"                               ; set printer name
    
    M669 K1                                      ; select CoreXY mode
    
    ; Bed leveling
    M671 X-8.0:175.0:320.0 Y-11.0:320.0:-11.0   ; Define position of bed leveling screws
    
    ; Configure panelDue
    
    M575 P1 S1 B57600                            ; set to channel 1, panel due mode with checksum, baud 57600
    
    ; Drives
    M569 P0.0 S1                                 ; physical drive 0.0 goes forwards
    M569 P0.1 S1                                 ; physical drive 0.1 goes forwards
    M569 P0.2 S0                                 ; physical drive 0.2 goes backwards
    M569 P0.3 S0                                 ; physical drive 0.3 goes backwards
    
    M584 X0.1 Y0.0 Z0.2 E0.3                     ; set drive mapping Y = drive 0 X = drive 1 Z = drive 2 Extruder drive 3
    
    M350 X16 Y16 Z16 E16 I1                      ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z1600.00 E420.00         ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00          ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00      ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00          ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1000 I30                 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                      ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y-8 Z-3 S1                            ; set axis minima
    M208 X300 Y300 Z300                          ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"!io1.in"                        ; configure for low end, active-low endstop on X via pin io1.in
    M574 Y2 S1 P"!io2.in"                        ; configure for high end, active-low endstop on Y via pin io2.in
    M574 Z1 S1 P"!io3.in"                        ; configure for low end, active-low endstop on Z via pin io3.in
    
    ; Z-Probe
    M950 S0 C"io4.out"                           ; create a gpio servo pin 0 for BLTouch
    M558 P9 C"io4.in" H3 F120 R.350 T6000        ; set Z probe type to bltouch, set input to io 4 in, set dive height + speeds
    G31 P500 X2 Y58 Z3.00                       ; set Z probe trigger Height, X and Y offset and trigger height
    M557 X15:295 Y-8:310 S30:30                  ; define mesh grid
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out0" T0                           ; create bed heater output on out0 and map it to sensor 0
    M143 H0 S110                                 ; set temperature limit for heater 0 to 110C
    M307 H0 A236.8 C516.8 D3.0 V24.1 B0          ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                      ; map heated bed to heater 0
    M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1                           ; create nozzle heater output on out1 and map it to sensor 1
    M143 H1 S260                                 ; set temperature limit for heater 1 to 260C
    M307 H1 A445.5 C173.0 D5.5 V24.1 B0          ; disable bang-bang mode for hotend heater and set PWM limit
    
    ; Fans
    M950 F0 C"out7" Q500                         ; create fan 0 on pin out7 and set its frequency
    M106 P0 S0 H-1                               ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q500                         ; create fan 1 on pin out8 and set its frequency
    M106 P1 S1 H1 T45                            ; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"E3D-V6" 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
    
    ; Lights
    M950 P1 C"out3"                             ; Create port on out 3 to power lights, 12v led strips are wired in series
    
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    T0                                           ; select first tool
    

    Homeall

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Wed Apr 29 2020 12:52:20 GMT-0600 (Mountain Daylight Time)
    G91                     ; relative positioning
    G1 H2 Z7 F6000          ; lower bed 7mm to ensure probe is above the Z probe trigger height
    G1 H1 X-310 Y310 F2600  ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-310             ; home X axis
    G1 H1 Y310              ; home Y axis
    G1 X5 Y-5 F6000         ; go back a few mm X and Y
    G1 H1 X-310 F360        ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y310 F360         ; then move slowly to Y axis endstop
    G90                     ; absolute positioning
    G1 X150 Y90 F2000       ; Move probe over to the centre of the bed
    G30                     ; lower probe, stop when probe triggered and set Z to trigger height, home Z by probing the bed
    
    
    ; Uncomment the following lines to lift Z after probing
    ;G91                    ; relative positioning
    ;G1 Z5 F100             ; lift Z relative to current position
    ;G90                    ; absolute positioning
    

    S3d Start script

    G90                                              ; absolute positioning
    T0                                                 ; select tool
    M109 S200                                 ; wait for hotend temp
    M190 S60                                   ; wait for bed temp
    G28                                             ; home all axes
    G29 S1                                        ; load height map
    G1 X130.0 Y15 Z0.0 F2000      ; move tool
    G1 X40.0 E10 F1000                 ; prime nozzle
    

    Console.jpg


  • Moderator

    Can you try deleting your current heightmap.csv and running a new G29 to create a fresh one?



  • @Phaedrux When would you have me delete the current heightmap.csv, at a fresh power up or after I've already done a G28/G29 and the printer is in a working state? Because currently I know to get the printer to work at a fresh power up I need to do the G29. And doesn't a G29 replace the current height map anyway? Not trying to be facetious here just trying to understand the logic, the action and effect if you will.



  • @luckyflyer I'd suggest not deleting heightmap.csv but renaming it to xyz.csv and then running G29. Logic is to remove faulty / corrupted SD card from the list of things to check.

    Are you running G29S1 after you power on to load and turn on heightmap.csv? (from s3d startup it looks like you do)



  • @arhi said in G29 required after every power down or printer locks up 3.1.1:

    @luckyflyer I'd suggest not deleting heightmap.csv but renaming it to xyz.csv and then running G29. Logic is to remove faulty / corrupted SD card from the list of things to check.

    Are you running G29S1 after you power on to load and turn on heightmap.csv? (from s3d startup it looks like you do)

    I have tried a G29 S1 from dwc after a power up and the result is the same as the G29 S1 from the start script. Only a complete G29 cycle will make the printer work correctly.

    So by renaming the old height. csv and saving we can compare with the new, correct?



  • I'll do that but will be about an hour before I'm able to.


  • Moderator

    I've flagged this for @dc42 and @chrishamm to take a look at.

    Can you also ensure that your pi/DSF is fully updated? And also please provide the results of an M122.



  • @luckyflyer said in G29 required after every power down or printer locks up 3.1.1:

    height. csv and saving we can compare with the new, correct?

    Not only to compare but to see new one is properly created and to check if new one will be properly loaded with G29S1 after reboot.

    Probing on my printer is very slow so I run G29 once every few weeks only and G29S1 loads on every print start and works ok for me. But I'm on duet2 and no SBC so this might be a duet3+sbc bug that I can' confirm. Anyhow doing this simple test of renaming the file does remove a huge chunk of possibilities so should be done.



  • .old.csv is after powerup=no print
    .csv=print ok
    heightmap.old.csv

    heightmap.csv



  • @Phaedrux
    All pi and Duet files were updated within the last couple of days with

    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot
    

    M122

    6/2/2020, 7:00:52 PM	M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
    Board ID: 08DJM-956L2-G43S8-6JTDA-3SN6M-1V0LG
    Used output buffers: 1 of 40 (17 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 162832 of which 60 recycled
    Exception stack ram used: 544
    Never used ram: 75176
    Tasks: NETWORK(ready,1968) HEAT(blocked,1188) CanReceiv(suspended,3820) CanSender(suspended,1412) CanClock(blocked,1436) TMC(blocked,60) MAIN(running,4952) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:37:54 ago, cause: power up
    Last software reset at 2020-06-02 11:43, reason: User, spinning module LinuxInterface, available RAM 75384 bytes (slot 1)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 44.2, current 50.8, max 51.0
    Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
    Driver 0: standstill, reads 1302, writes 27 timeouts 0, SG min/max 0/207
    Driver 1: standstill, reads 1302, writes 27 timeouts 0, SG min/max 0/206
    Driver 2: standstill, reads 1303, writes 27 timeouts 0, SG min/max 0/986
    Driver 3: standstill, reads 1316, writes 14 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 1320, writes 11 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 1320, writes 11 timeouts 0, SG min/max 0/0
    Date/time: 2020-06-02 19:00:51
    Slowest loop: 5.47ms; fastest: 0.14ms
    === 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 ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 369, MaxWait: 190518ms
    Bed compensation in use: mesh, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 838, completed moves: 838, 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 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 0 is on, I-accum = 0.1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP* is ready with "M122" 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
    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
    Code queue is empty.
    === Network ===
    Slowest loop: 0.96ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
    HTTP sessions: 0 of 8
    - Ethernet -
    State: disabled
    Error counts: 0 0 0 0 0
    Socket states: 0 0 0 0 0 0 0 0
    === CAN ===
    Messages sent 9286, longest wait 0ms for type 0
    === Linux interface ===
    State: 0, failed transfers: 0
    Last transfer: 18ms ago
    RX/TX seq numbers: 7752/7753
    SPI underruns 0, overruns 0
    Number of disconnects: 0
    Buffer RX/TX: 0/0-0
    === Duet Control Server ===
    Duet Control Server v3.1.1
    Daemon:
    Finishing macro daemon.g, started by system
    > Next stack level
    Code buffer space: 4096
    Configured SPI speed: 8000000 Hz
    Full transfers per second: 30.63
    

    DSF.jpg



  • Short video, change .txt to .mpg
    DuetLapse0602202057.txt



  • @Phaedrux
    I will be leaving on 6 or 7 day vacation tomorrow so I apologize for my poor timing on this. I was going to upload a copy of my pi image but there is a 4096 kb cap on file uploads. So if you feel that an sd card image would be helpful for troubleshooting I can upload it if you temporarily raise the upload cap. Image is 32,000,000kb


  • administrators

    @luckyflyer, I think the problem is caused by a bug in the processing of G29 S1 on Duet 3 with attached SBC. Does the problem go away if you remove the G29 S1 call from your start GCode?

    There is an early build of RRF 3.2 with a fix for the G29 S1 issue at https://www.dropbox.com/s/2shcm7gc975q94p/Duet3Firmware_MB6HC.bin?dl=0.



  • @dc42 said in G29 required after every power down or printer locks up 3.1.1:

    @luckyflyer, I think the problem is caused by a bug in the processing of G29 S1 on Duet 3 with attached SBC. Does the problem go away if you remove the G29 S1 call from your start GCode?

    There is an early build of RRF 3.2 with a fix for the G29 S1 issue at https://www.dropbox.com/s/2shcm7gc975q94p/Duet3Firmware_MB6HC.bin?dl=0.

    The problem does indeed go away if the G29 S1 is removed from the start script.

    I'll probably just wait until the first RC or so of 3.2 because as it is I usually leave the printer on for days at a time.



  • @luckyflyer when you run G29 mesh probing, are any of the probe points skipped due to them being unreachable by the probe?



  • @jay_s_uk

    Yes as it is the complete last row is skipped. I have a cast bed plate ordered, when it's installed I'll reduce the number of probe points.



  • The bug only comes in to play when probe points are skipped (when the heightmap is loaded, a junk value is being inserted rather than interpolated value, resulting in super slow movement which makes it seem as though a print as frozen).
    In the short term, if you still want to use G29, make sure that the mesh to be probed is fully reachable and no points are skipped.



  • @jay_s_uk I'll give that a try when I get back from my trip.


Log in to reply