Converting TC to use 2 Hemera tools with Duet 3 and Tool Boards

Discussion in 'Tool heads & ToolChanger' started by dc42, Mar 2, 2020.

  1. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
  2. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
  3. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    I've updated both of these blog entries over the past few days as I discover more about this conversion. For instance:
    • I needed to shift the docks for the remaining Bowden tools forward so that they could be picked up without the X axis fouling on the Hemera tools
    • I need about 1.6m of PTFE tubing for each Hemera tool, to go all the way from the spool to the tool
    • I now have printed dock adapters that shift the docks 8mm left and 15mm up, which should work for Hemera tools in dock positions 0 and 1 too
    • I've put my configuration files at https://github.com/Duet3D/RRF-machi..._Changer/dc42-duet3-centreZero-2Titan-2Hemera
    • When the machine has both Bowden and direct tools, it would be really useful to be able to set the firmware retraction parameters on a per-tool basis. So I've implemented this in the forthcoming 3.01-RC4 version of RepRapFirmware.
     
    Nibbels likes this.
  4. Nibbels

    Nibbels Well-Known Member

    Joined:
    Dec 12, 2019
    Messages:
    165
    Likes Received:
    32
    Retraction for me depends on
    the stiffness of the filament
    + type of extruder.
    Using tool based filament configurations I would have to put 4 lines of tested retraction settings into each filaments/config.g. They all will kind of contain a filaments retraction mm + tools additional retraction mm.

    Another way:
    Loading the filament using M703 can be made in in tpostN.g. So the next tool should be known when filaments/config.g is processed.
    I guess I should be able to write a macro which contains conditional execution similar to this:
    tools[].retraction = (state.currentTool * X "+" tools[].retraction)
    ?

    I personally wait for a propper solution to limit the print speed, but not the travel speed, according to the loaded filament. ^^
     
  5. Spoon Unit

    Spoon Unit Well-Known Member

    Joined:
    Sep 6, 2015
    Messages:
    1,546
    Likes Received:
    481
    I've achieved this by specifying the appropriate retraction settings in the relevant tpre. This assumes that you're not changing the type of tool all that regularly. If tools could hot swap, the tool board was recognized, and the appropriate retraction settings spun up, that would be cool.
     
  6. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    I've released RRF 3.01-RC5 for Duet 2, Duet 3 main board, and Duet 3 tool and expansion boards. The main improvements are support for multiple Z probes (not needed on a standard TC but may be useful in some variants) and support for object cancellation via M486.

    I've also updated my config.g file in https://github.com/Duet3D/RRF-machi..._Changer/dc42-duet3-centreZero-2Titan-2Hemera. The change is to run the Hemera extruders in spreadCycle mode instead of stealthChop and to reduce extruder motor currents. I find that this gives more reliable extrusion.
     
    Joe Pomo likes this.
  7. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    #7 dc42, Jun 6, 2020
    Last edited: Jun 6, 2020
    Nibbels likes this.
  8. Joe Pomo

    Joe Pomo Well-Known Member

    Joined:
    Sep 21, 2019
    Messages:
    68
    Likes Received:
    27
    Thanks for continuing to update this thread. I read your post, and I plan to implement this on my printer. Is conditional gcode working with SBC+Duet3?
     
  9. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    Yes.
     
    Joe Pomo likes this.
  10. twam

    twam Active Member

    Joined:
    Aug 29, 2019
    Messages:
    31
    Likes Received:
    7
    @dc42: First of all thank you for your detailed explanations on your blog.

    I'm currently working through everything and have a new power supply (independent of your changes), the mainboard and tool distribution board installed.

    I slightly modified your gcode files as I want to stay with the 'original' coordinates and not have 0,0 at the center, reduce the motor currents to 1 A as mine were quiet loud at 2 A (with Duet 2), and use endstops for X/Y.

    However I face two problems (independent of the motor current):
    * Motors are whistling quite loud in standstill. Never observed this with Duet2.
    * If I home all 4 axis the last move the last move to bring the motor in the front runs into to metal stops with a 'big bang' instead of stopping ~2.5 mm in front of it where the endstops already trigger.

    Any hints what could be a problem here?
     
  11. twam

    twam Active Member

    Joined:
    Aug 29, 2019
    Messages:
    31
    Likes Received:
    7
    Another thing I noticed, is that I need to move

    M950 F1 C"out4" ; T0 HE
    M950 F2 C"out5" ; T0 PCF
    M950 F3 C"out7" ; T1 HE
    M950 F4 C"out8" ; T1 PCF
    after

    M106 P1 S255 H1 T50 ; T0 HE
    M106 P2 S0 ; T0 PCF
    M106 P3 S255 H2 T50 ; T1 HE
    M106 P4 S0 ; T1 PCF ​

    in the config file as otherwise only Fan 2 and Fan 4 are shown in UI and are controllable via M106.
     
  12. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    Endstop switches are a good idea, especially if you want to try the stealthChop mode of the TMC5160 drivers.

    You haven't published your homing or config files, so I don't have any suggestions on what is causing the last move to be wrong.

    I don't have any whistling motors. Are you using the same M569 settings as me?

    It's not normal to have the hot end fans show up in DWC, because they are in thermostatic mode so not under user control.
     
    #12 dc42, Oct 13, 2020
    Last edited: Oct 18, 2020
  13. twam

    twam Active Member

    Joined:
    Aug 29, 2019
    Messages:
    31
    Likes Received:
    7
    I use the same M569 settings as in your files.

    Endstops are configured by
    Code:
    M574 X1 S1 P"io0.in"             ; Set X endstop
    M574 Y1 S1 P"io1.in"             ; Set Y endstop
    I configure the size build size as
    Code:
    M208 X-35:328.5 Y-49:243 Z0:300 C0:500 S0          ; Set axis maxima & minima
    And then home with
    Code:
    ; homey.g
    M400                 ; make sure everything has stopped before we change the motor currents
    M913 X40 Y40         ; drop motor currents to 40%
    
    G91                 ; use relative positioning
    G1 H2 X0.5 Y-0.5 F10000    ; energise motors and move them 0.5mm in the +Y direction to ensure they are not stalled
    G1 H2 Z3 F5000        ; lift Z 3mm
    G1 H1 Y-400 F3000     ; move to the front 400mm, stopping at the endstop
    G1 Y2 F2000         ; move away from end
    G1 H2 Z-3 F1200        ; lower Z
    G90                 ; back to absolute positioning
    
    M400                 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100         ; motor currents back to 100%
    
    ; homex.g
    M400                 ; make sure everything has stopped before we change the motor currents
    M913 X40 Y40         ; drop motor currents to 40%
    
    G91                 ; use relative positioning
    
    G1 H2 X0.5 Y0.5 F10000    ; energise motors to ensure they are not stalled
    G1 H2 Z3 F5000        ; lift Z 3mm
    G1 H1 X-400 F3000     ; move left 400mm, stopping at the endstop
    G1 H1 X2 Y2 F2000     ; move away from end
    G1 H2 Z-3 F1200        ; lower Z
    G90                 ; back to absolute positioning
    
    M400                 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100         ; motor currents back to 100%
    
    ; homez.g
    
    M98 P"/macros/Coupler - Unlock"    ;Open Coupler
    
    M400                 ; make sure everything has stopped before we change the motor currents
    
    G91                 ; use relative positioning
    G1 H2 Z5 F5000        ; Lower the bed
    G90                    ; back to absolute positioning
    
    G1 X150 Y100 F50000        ; Position the endstop above the bed centre
    
    M558 F1000
    G30
    M558 F300
    G30
    
    ; homeall.g
    ; called to home all axes
    M98 Phomec.g            ; Home C (ToolHead)
    M98 Phomey.g            ; Home Y
    M98 Phomex.g            ; Home X
    M98 Phomez.g            ; Home Z
    
    G1 X150 Y-49 F15000        ; Park
    
    I uploaded a video showing the homing. Please not the distance between the screw and the carrier when homing Y and at the end.
     
    #13 twam, Oct 16, 2020
    Last edited: Oct 16, 2020
  14. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203
    The only odd thing I spotted was this line in homex.g:

    > G1 H1 X2 Y2 F2000 ; move away from end

    As you have just homed X at this point, the X endstop switch will already be triggered. Did you mean G1 H2 X2 Y2 F2000 ?
     
  15. twam

    twam Active Member

    Joined:
    Aug 29, 2019
    Messages:
    31
    Likes Received:
    7
    Good catch! That really did solve the issue. Big thanks!
     
  16. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    450
    Likes Received:
    203

Share This Page