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.
    • vistalertundefined
      vistalert
      last edited by Phaedrux

      When my print job completes, I drop the bed to Z=460, then as far as I'm concerned the job is done. However, DWC shows "BUSY" in the status panel. Whilst in this condition, if I try to deploy/retract the BLTOUCH probe, it doesn't respond. Supporting the case that the board is still busy somehow.

      Can anybody suggest how to solve this. In every other way my setup is performing really well.

      Out of curiosity, I can still issue G1 commands and the bed will move:

      G1 H1 Z445
      G1 H2 Z435

      etc.

      1 Reply Last reply Reply Quote 0
      • 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