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

    A strange custom printer -I need help with some of the basics

    Scheduled Pinned Locked Moved
    General Discussion
    2
    5
    142
    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.
    • serendipityundefined
      serendipity
      last edited by

      Hi all, I've made a bit of a weird custom printer design. I'm not new to 3D printing in general but completely new to Duet and Reprap 3.5.
      I have a Duet 3 Mini 5+ Wifi board running standalone.
      The printer is set up for paste extrusion and curing, so there are NEMA lead screw driven pumps for E0 and E1. There's also a laser module fitted between them.
      X axis is also lead screw driven by a NEMA 14.
      y axis is rotary and driven by a NEMA 17.
      There's a BLTouch probe.

      So far I've managed to test each component individually and set up basic things. The x axis is able to home successfully with sensorless homing. The probe works nicely for locating the Z axis.
      But I really don't know what I'm doing in terms of figuring out the config file and whatever else is required. By biggest issues have been trying to get driver stall warnings to interrupt an action. I set up the event triggering on the drives and tried to make a very simple driver-stall file to just stop a motor when it crashes but so far it doesn't seem to work.

      My aims are:
      1: for the Z axis to home using the probe but not crash if it's given a command too high for the gantry ( not important as I can just set limits if it's not doable)
      2: to be able to "home" the extruders with a macro - I found a snippet of code in the duet wiki that was for loading PLA that would stop the motor if a stall was sensed. This didn't seem to work for me. It would also be nice if the extruders stopped automatically if sensing a stall, but again that's not as important.

      So if anyone can explain more about the driver-stall file and what's possible then I'd be very happy.

      
      ; General
      G90 ; absolute coordinates
      M83 ; relative extruder moves
      M550 P"Duet 3" ; set hostname
      
      ; Smart Drivers
      M569 P0.0 S1 D3 V5 ; driver 0.0 goes forwards (Extruder 1
      ;M915 P0.0 S30 R0 F0 ; set StallGuard threshold
      M569 P0.1 S1 D3 V5 ; driver 0.1 goes forwards (Extruder 2)
      M915 P0.1 S30 R0 F0 ; set StallGuard threshold
      M569 P0.2 S1 D3 V5  ; driver 0.2 goes forwards (Z axis)
      M915 P0.2 S20 R3    ; set StallGuard threshold
      M569 P0.3 S1 D2 ; driver 0.3 goes forwards (Y axis)
      M915 P0.3 S1 ; set StallGuard threshold
      M569 P0.4 S1 D3 V5  ; driver 0.4 goes forwards (X axis)
      M915 P0.4 S50 R0 F0    ; set StallGuard threshold
      
      ; Motor Idle Current Reduction
      M906 I30 ; set motor current idle factor
      M84 S30 ; set motor current idle timeout
      
      ; Axes
      M584 X0.4 Y0.3 Z0.2 ; set axis mapping
      M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
      M906 X800 Y800 Z800 ; set axis driver currents
      M92 X3216 Y80 Z1608 ; configure steps per mm
      M208 X0:200 Y0:200 Z0:200 ; set minimum and maximum axis limits
      M566 X500 Y900 Z500 ; set maximum instantaneous speed changes (mm/min)
      M203 X150 Y6000 Z150 ; set maximum speeds (mm/min)
      M201 X10 Y500 Z10 ; set accelerations (mm/s^2)
      
      ; Extruders
      M584 E0.0:0.1 ; set extruder mapping
      M350 E16:16 I1 ; configure microstepping with interpolation
      M906 E800:800 ; set extruder driver currents
      M92 E1608:1608 ; configure steps per mm
      M566 E120:120 ; set maximum instantaneous speed changes (mm/min)
      M203 E100:100 ; set maximum speeds (mm/min)
      M201 E25:25 ; set accelerations (mm/s^2)
      
      ; Kinematics
      M669 K0 ; configure Cartesian kinematics
      
      ; Probes
      M558 K0 P9 C"io3.in" H5 F120 T6000 ; configure BLTouch probe via slot #0
      G31 P500 X0 Y0 Z0.7 ; set Z probe trigger value, offset and trigger height
      M950 S0 C"io3.out" ; create servo #0 for BLtouch
      
      ; Endstops
      M574 X1 S3;
      M915 X R0 F0
      M574 Y0 ; Disable endstop for Y-axis
      
      
      ; Mesh Bed Compensation
      M557 X25:175 Y25:175 S40:40 ; define grid for mesh bed compensation
      M950 P1 C"out6" Q200
      ; Lasers
      ;M452 C"out6" F200 R255 S0 ; configure Laser port
      
      ; Tools
      M563 P0 D0 ; create tool #0
      M563 P1 D1 ; create tool #1
      
      ; Miscellaneous
      M451 ; select FFF mode
      
      

      Thanks in advance!

      droftartsundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @serendipity
        last edited by

        @serendipity Sounds like an interesting machine! I take it that the rotary Y axis is like a lathe axis, rather than a rotating table (aka a Polar printer)?

        See the stall detection and sensorless homing documentation here: https://docs.duet3d.com/en/User_manual/Connecting_hardware/Sensors_stall_detection

        Note that for a Mini 5+, stall detection only work well when the driver is in stealthChop mode (M569 ... D3). You can swap in to this mode for stall/sensorless homing. The Y axis appears to be set to D2, currently. Also, stall detection can be difficult to set up slow moving and/or leadscrew axes.

        Please post the macros and/or homing files (which would help understanding the Z probe homing problem) that you are trying to set up for stall detection, for me to see what's happening.

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        serendipityundefined 1 Reply Last reply Reply Quote 0
        • serendipityundefined
          serendipity @droftarts
          last edited by

          @droftarts Thanks very much for the reply, yes the y axis is set up like a lathe arrangement. I didn't bother to set up the stall feature properly on the y axis as I don't need it to home and it's unlikely to stall in my application. And getting the settings for the x axis to home correctly took many hours of changing speeds and sensitivity values. I initially tried it faster but it didn't work.

          I don't have the files with me at the moment annoyingly.

          But ignoring the Z axis for a minute, having homing and stall detection for the syringe extruders is my biggest challenge so far.

          I tested a macro based on this code:

          ; Load T0 with PLA
          G10 P0 S200 R160    ; set temperatures for PLA
          T0                  ; select tool
          M116                ; wait for temperatures to be reached
          G1 E-0.3 F300       ; retract a little filament
          M400                ; wait for move to finish before changing current
          M915 E0 S3          ; set stall sensitivity
          M913 E30            ; motor current to 30%
          M83                 ; relative extrusion
          G1 H1 E800 F6000    ; feed up to 800mm until stall
          M913 E100           ; restore normal motor current
          G1 E50 F120         ; extrude 50mm @ 2mm/sec
          

          But I deleted temperature references etc. And it just crashed over and over. I checked M122 and could see the stalls were being recorded. But nothing was happening.

          droftartsundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @serendipity
            last edited by

            @serendipity It may be because the extruder axes aren't moving fast enough to detect the stall. Your config.g limits the speed the axis can move, particularly these three:

            ; Extruders
            ...
            M566 E120:120 ; set maximum instantaneous speed changes (mm/min)
            M203 E100:100 ; set maximum speeds (mm/min)
            M201 E25:25 ; set accelerations (mm/s^2)
            

            So the axis won't move faster than 100mm/min. You also need to make sure that the speed is in the correct range for a stall to be recognised, and the maths for that is here: https://docs.duet3d.com/en/User_manual/Connecting_hardware/Sensors_stall_detection#stall-detection-sensitivity-m915-s-f-and-h-parameters

            I have a macro that I was testing for (normal 3D printer) extruder stalls, that works well on extruders connected to the main board (ie not a toolboard) here: https://forum.duet3d.com/post/352709

            If you can post the actual macro you are using, that may help.

            Ian

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            serendipityundefined 1 Reply Last reply Reply Quote 0
            • serendipityundefined
              serendipity @droftarts
              last edited by

              @droftarts Thanks I will give it a try! In terms of the other features I'm looking for, what's the correct way to use the driver-stall.g system file. What are it's limitations and how does it parse information from unique stepper stalls. It mentions param.b and param.d. How do I use it stop a motor/ give a warning etc during a print?

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