Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    G29 required after every power down or printer locks up 3.1.1

    Scheduled Pinned Locked Moved
    General Discussion
    5
    18
    696
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • luckyflyerundefined
      luckyflyer
      last edited by Phaedrux

      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

      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

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

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • luckyflyerundefined
          luckyflyer
          last edited by

          @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.

          arhiundefined 1 Reply Last reply Reply Quote 0
          • arhiundefined
            arhi @luckyflyer
            last edited by arhi

            @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)

            1 Reply Last reply Reply Quote 0
            • luckyflyerundefined
              luckyflyer
              last edited by luckyflyer

              @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?

              arhiundefined 1 Reply Last reply Reply Quote 0
              • luckyflyerundefined
                luckyflyer
                last edited by

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

                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  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.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 0
                  • arhiundefined
                    arhi @luckyflyer
                    last edited by

                    @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.

                    1 Reply Last reply Reply Quote 0
                    • luckyflyerundefined
                      luckyflyer
                      last edited by luckyflyer

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

                      heightmap.csv

                      1 Reply Last reply Reply Quote 0
                      • luckyflyerundefined
                        luckyflyer
                        last edited by luckyflyer

                        @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

                        1 Reply Last reply Reply Quote 0
                        • luckyflyerundefined
                          luckyflyer
                          last edited by luckyflyer

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

                          1 Reply Last reply Reply Quote 0
                          • luckyflyerundefined
                            luckyflyer
                            last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators
                              last edited by

                              @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.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              1 Reply Last reply Reply Quote 0
                              • luckyflyerundefined
                                luckyflyer
                                last edited by luckyflyer

                                @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.

                                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                                • jay_s_ukundefined
                                  jay_s_uk @luckyflyer
                                  last edited by

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

                                  Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                  1 Reply Last reply Reply Quote 0
                                  • luckyflyerundefined
                                    luckyflyer
                                    last edited by luckyflyer

                                    @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.

                                    1 Reply Last reply Reply Quote 0
                                    • jay_s_ukundefined
                                      jay_s_uk
                                      last edited by

                                      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.

                                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                      1 Reply Last reply Reply Quote 1
                                      • luckyflyerundefined
                                        luckyflyer
                                        last edited by

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

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Unless otherwise noted, all forum content is licensed under CC-BY-SA