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

    Print completes but DWC status shows "BUSY" 3.3b2 SBC

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    2
    12
    459
    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.
    • Phaedruxundefined
      Phaedrux Moderator
      last edited by

      Post your config.g and your full end gcode.

      Grab the results of M122 as well if possible.

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • vistalertundefined
        vistalert
        last edited by

        Thanks as always for the quick response.

        CONFIG.G

        ; Configuration file for Duet 3 (firmware version 3)
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 20 2020 23:24:45 GMT+0800 (Australian Western Standard Time)

        ; General preferences
        G90 ; send absolute coordinates...
        M83 ; ...but relative extruder moves
        M550 P"RatRig" ; set printer name
        M669 K1 ; select CoreXY mode

        ; SET DIRECTION OF TRAVEL FOR STEPPER MOTORS

        ; X
        M569 P3 S0 ; physical drive 0.3 goes forwards

        ; Y
        M569 P4 S0 ; physical drive 0.4 goes forwards

        ; Z has three steppers
        M569 P0 S0 ; physical drive 0.0 goes forwards - Front left
        M569 P1 S0 ; physical drive 0.1 goes forwards - Front right
        M569 P2 S0 ; physical drive 0.2 goes forwards - Rear Center

        ; Extruder
        M569 P5 S1 ; physical drive 0.5 goes backwards

        ; Z 0 - Back Right
        ; Z 1 - Front Center
        ; Z 2 - Back Left

        M584 Z0:1:2 X3 Y4 E5 ; set driver mapping for XYZ steppers
        M906 X2000 Y2000 Z1900 E1200 I50 ; set motor currents (mA) and motor idle factor in per cent

        ; SCREW LOCATIONS RELATIVE TO HOME (0,0)
        ; X Y
        ; Z 0 - Back Right 510 560
        ; Z 1 - Front Center 271 50
        ; Z 2 - Back Left 21 560
        M671 X526:271:15 Y610:50:610 S50 ; Z-screw locations - front right, front left and rear center

        M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
        M92 X80.00 Y80.00 Z400.00 E800.00 ; set steps per mm

        ;M566 X4000.00 Y4000.00 Z20.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
        ;M203 X10000.00 Y10000.00 Z3100.00 E1200.00 ; set maximum speeds (mm/min)
        ;M201 X9000.00 Y9000.00 Z500.00 E250.00 ; set accelerations (mm/s^2)

        M203 X10000.00 Y10000.00 Z3100.00 E4000.00 ; set maximum speeds (mm/min)
        M566 X4000.00 Y4000.00 Z100.00 E400.00 ; set maximum instantaneous speed changes (mm/min)
        M201 X9000.00 Y9000.00 Z500.00 E400.00 ; set accelerations (mm/s^2)

        M84 S30 ; Set idle timeout

        ; Axis Limits
        ; NOTE X0 Y0 is purge position X>20 Y=0 Wipe
        M208 X0 Y0 Z0 S1 ; set axis minima
        M208 X515 Y500 Z470 S0 ; set axis maxima

        ; Endstops
        M574 X1 S1 P"io0.in" ; configure mechanical endstop for low end on X
        M574 Y1 S1 P"io1.in" ; configure mechanical endstop for low end on Y
        M574 Z1 S2 ; Z uses probe for endstop

        ; Filament sensor ; configure Z-probe endstop for low end on Z
        M591 P1 D0 C"io2.in" S1 ; configure filament runout sensor

        ; Z-Probe
        M950 S0 C"io5.out"
        M558 P9 C"io5.in" H7 R1 F750 T10000 A3 S0.03 B1 ; set Z probe type to bltouch and the dive height + speeds
        G31 P500 X35 Y5 Z2.30 ; set Z probe trigger value, offset and trigger height

        M557 X50:450 Y10:460 S50 ; define mesh grid

        ; Bed Heater
        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
        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

        ; Nozzle Heater
        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
        M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
        M143 H0 S285 ; set temperature limit for nozzle 0 to 285C

        ; Part cooler fan
        M950 F0 C"out8" ; create fan 0 on pin out7 and set its frequency
        M106 P0 S0 H-1 C"Part Cooling" ; set fan 0 value. Thermostatic control is OFF

        ; Heat sink fan
        M950 F1 C"out9" ; create fan 1 on pin out4 and set its frequency
        M106 P1 S1 H1 T45 C"Volcano" ; set fan 1 value. Thermostatic control is ON

        ; Tools
        M563 P0 S"Volcano" 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

        ; Miscellaneous
        M501 ; load saved parameters from non-volatile memory

        PREPARE FOR JOB TO START MACRO (raises my bed from its parked position, heats up etc.)

        M0 ; all heaters off

        M140 S70 ; heat the bed
        T0 ; select first tool
        G10 S210 ; heat nozzle

        G32 ; level the bed

        ;M98 P"/macros/calibration/get_levels_3.g"

        ;G29

        G28 XY

        JOB COMPLETE MACRO

        M0 ; all heaters off
        G1 H2 Z460 F3000 ; Drop the bed
        G1 H2 X1 Y1 F8000 ; Move head near home position

        BED.G (just in case)

        M561 ; clear any bed transform

        if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
        G28

        while true

        G30 P0 X460  Y460 Z-99999 F12000 	; probe front left
        G30 P1 X260  Y10  Z-99999 F12000 	; probe back centre
        G30 P2 X45   Y460 Z-99999 F12000 S3	; probe front right
        
        if move.calibration.initial.deviation <= 0.03
            echo "Leveling successful. Deviation: " ^ move.calibration.initial.deviation ^ "mm"
            break
        if iterations >= 10 
            break
        echo "Repeating leveling because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)"
        
        vistalertundefined 1 Reply Last reply Reply Quote 0
        • vistalertundefined
          vistalert @vistalert
          last edited by

          Quick additional notes. After power on and completion of the PREPARE macro, I can execute G29 and get a height map. I can then deploy and retract probe.

          I'll try some different GCODE sequences to see if I can isolate what might leave the status as busy.

          1 Reply Last reply Reply Quote 0
          • vistalertundefined
            vistalert
            last edited by

            OK this is interesting - this is a macro I wrote to do an initial purge. After I run this script, when executing GCODE to deploy probe the probe doesn't actually deploy. But the status isn't showing busy. If I send M999 I can then execute deploy probe again.

            PURGE MACRO (results in probe not deploying after this is executed)

            T0 ; select Tool 0

            G1 X150 Y495 Z50 ; Drop the bed to allow clear space for the nozzle and move to purge bucket

            G92 E0
            G1 E100 F300 ; purge 10mm
            G92 E0

            G91

            G1 X-75 F3000 ; Wipe the head side to side
            G1 X75 F3000
            G1 X-75 F3000
            G1 X75 F3000

            G90

            G28 XY ; Home X and Y

            1 Reply Last reply Reply Quote 0
            • vistalertundefined
              vistalert
              last edited by

              Confirming that running my prepare macro is ok, and probe deploys / retracts. After running the purge script the probe becomes unresponsive. I thought it would be useful to capture M122 whilst it was in this state. Hope that helps...

              M122
              === Diagnostics ===
              RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
              Board ID: 08DJM-956BA-NA3TJ-6J9DL-3S86J-9T9AT
              Used output buffers: 1 of 40 (10 max)
              === RTOS ===
              Static ram: 154604
              Dynamic ram: 162848 of which 44 recycled
              Exception stack ram used: 552
              Never used ram: 75168
              Tasks: NETWORK(ready,1980) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1420) CanClock(blocked,1436) TMC(blocked,68) MAIN(running,4952) IDLE(ready,76)
              Owned mutexes:
              === Platform ===
              Last reset 00:02:27 ago, cause: software
              Last software reset at 2021-03-13 05:20, reason: User, spinning module LinuxInterface, available RAM 74760 bytes (slot 3)
              Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
              Error status: 0
              MCU temperature: min 38.4, current 38.5, max 38.8
              Supply voltage: min 27.9, current 29.4, max 29.4, under voltage events: 0, over voltage events: 0, power good: yes
              12V rail voltage: min 12.2, current 12.2, max 12.3, under voltage events: 0
              Driver 0: standstill, reads 60320, writes 17 timeouts 0, SG min/max 0/130
              Driver 1: standstill, reads 60320, writes 17 timeouts 0, SG min/max 0/138
              Driver 2: standstill, reads 60321, writes 17 timeouts 0, SG min/max 0/128
              Driver 3: standstill, reads 60321, writes 17 timeouts 0, SG min/max 0/222
              Driver 4: standstill, reads 60321, writes 17 timeouts 0, SG min/max 0/219
              Driver 5: standstill, reads 60322, writes 17 timeouts 0, SG min/max 0/61
              Date/time: 2021-03-13 05:22:37
              Slowest loop: 4.87ms; 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: 371, MaxWait: 31970ms
              Bed compensation in use: none, comp offset 0.000
              === MainDDARing ===
              Scheduled moves: 38, completed moves: 38, 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 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.83ms; 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
                === Filament sensors ===
                Extruder 0 sensor: ok
                === CAN ===
                Messages sent 553, longest wait 0ms for type 0
                === Linux interface ===
                State: 0, failed transfers: 0
                Last transfer: 21ms ago
                RX/TX seq numbers: 4243/4245
                SPI underruns 0, overruns 0
                Number of disconnects: 1
                Buffer RX/TX: 0/0-0
                === Duet Control Server ===
                Duet Control Server v3.1.1
                Trigger:
                Finishing macro config.g, started by system

              Next stack level
              Code buffer space: 4096
              Configured SPI speed: 8000000 Hz
              Full transfers per second: 30.52

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

                @vistalert said in Print completes but DWC status shows "BUSY":

                JOB COMPLETE MACRO
                M0 ; all heaters off
                G1 H2 Z460 F3000 ; Drop the bed
                G1 H2 X1 Y1 F8000 ; Move head near home position

                Do you have a stop.g file present in the system folder? M0 would call that file if it exists.

                https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M0_Stop_or_Unconditional_stop

                The effect of M0 depends on the state of the machine.

                The firmware finishes any moves left in its buffer.
                Either: if the axes are homed and if a print is being cancelled (M25), it executes the macro file cancel.g if present.
                Or: if M0 is sent at any other time, stop.g is run if present.
                All motors are put into idle mode.
                If no H1 parameter is present, the heaters are turned off too.

                For those G1 moves you have added H2 to force movement likely because you've already turned off the motors with M0. Which is kind of a weird way to do it.

                I'd suggest you do the moves and then send M0.

                I also notice you're using 3.1.1 and using SBC mode. Can you try updating to 3.2.2 with sudo apt update and sudo apt upgrade?

                Z-Bot CoreXY Build | Thingiverse Profile

                1 Reply Last reply Reply Quote 0
                • vistalertundefined
                  vistalert
                  last edited by

                  Great insights thank you, yes, I can certainly try the upgrade to 3.2.2 this week.

                  Thanks for the clarification on stop.g. The issue is repeatable outside that context though...i.e. I run the prepare, then purge scripts then the probe stops responding. I can test again after the 3.2.2 upgrade.

                  1 Reply Last reply Reply Quote 0
                  • vistalertundefined
                    vistalert
                    last edited by

                    Still no luck. Long story short, I'd previously configured to join the beta program and at the time there were some sort of certificate errors. Today I didn't get those errors, so did apt-get update/upgrade and am now running v 3.3-b2.

                    Keeping it simple, the issue is consistent and can be described as executing G28, G32, setting nozzle temperatures, after which I can deploy and retract the probe multiple times. If I extrude, then execute M0 or M1...I can't deploy the probe until I do an emergency stop.

                    Why this is an issue is because after a print completes, I can't start another print, because without the prove, I can't home the bed for the next job.

                    So I'm happy to work around for the moment by doing a reset between jobs. Would still appreciate any insights / trouble shooting steps.

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

                      I'll move to the beta firmware category. There may be an issue with DSF.

                      It may help if you could test in standalone mode to see if the problem persists. That would help identify if it's a DSF problem or general RRF problem.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      vistalertundefined 1 Reply Last reply Reply Quote 0
                      • vistalertundefined
                        vistalert @Phaedrux
                        last edited by

                        @Phaedrux re: standalone mode, unfortunately I can't do that.
                        Thanks for the category change, makes perfect sense.

                        I'll keep trying different things as they occur to me and keep you posted.

                        1 Reply Last reply Reply Quote 0
                        • vistalertundefined
                          vistalert
                          last edited by vistalert

                          SOLVED: Issuing M18 to turn off motors results in probe responding to deploy/retract.

                          Recap of issue:

                          1. Heat nozzle
                          2. Extrude
                          3. BLTOUCH probe does not respond to deploy retract

                          Suspect cause of issue is incorrectly formed stop, sleep, cancel scripts.

                          Perhaps these scripts should contain M18.

                          @Phaedrux many thanks for your assistance and input.

                          FOLLOW-ON Note in case it helps anyone else. This is my end of job script:

                          G1 H2 Z460 F3000 ; Drop the bed
                          G1 H2 X1 Y1 F8000 ; Move head near home position
                          M18 ; Motors off
                          M0 ; STOP which turns off heaters

                          I'm not sure why, but whilst there were instructions in stop.g the bed heater was shutdown but not the nozzle. So I emptied stop.g and in my shutdown.g the above results in the bed being parked, all heaters off and motors turned off, which finally results in the probe responding again.

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