1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

D.E.I.S.S. Dual Extruder Interfacing Single Stepper

Discussion in 'Mods and Upgrades' started by Stargrove1, Jan 25, 2015.

  1. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    I want to share my latest Robo3D upgrade. A dual extruder with a single stepper, it is still in development and testing phase, but first tests look promising. I published the files at Thingiverse (http://www.thingiverse.com/thing:651723) also included is the setup guide as .pdf

    There is a problem in the firmware, I would appreciate if someone could help me to fix this issue. From time to time, when the extruder receives the command to change the "tool" (T0/T1), the last move and extrusion is not finished yet, I added a delay, but this is not the optimal solution and also fails sometimes.


    upload_2015-1-25_16-7-45.png


    Introduction

    The DEISS extruder provides a dual extruder with only one stepper motor by the help of an RC servo. This makes it possible to realize a dual direct drive extruder which is lightweight and space efficient, it only slightly bigger than a wade extruder. Because it is a direct driven extruder with PTFE tube, it is possible to use flexible filament as well as PLA or ABS.

    The extruder was designed for the Robo3D printer, but could be adapted to many printers by adapting the x-carriage. This guide will describe how to assemble the DEISS and how to integrate it to a printer at the example of the Robo3D.

    An adaption of the firmware is required to drive the extruder, since this concept is new, it is not prepared in Marlin firmware, the changes are documented in this guide.

    Disclaimer: I am not responsible in case of damage, use the guide at your own risk.


    Features

    · Direct drive dual extrusion
    · Body fully printable
    · Compact setup, comparable to stock wade extruder
    · Low mass due to single motor setup
    · Nozzle level mechanism
    · Quick extruder change setup
    · Supports flexible filament


    BOM:

    Printed parts:

    1 x X-carriage (no support required, included in stl file)
    1 x Servo-arm (needs to be printed with support, used Slicer)
    1 x Motor-carriage or Motor-carriage-geared
    1 x Lever-axis
    2 x Lever a & b
    1 x Hotend-lock
    1 x Base-top
    1 x Base (needs to be printed with support, used Slicer)


    Additional parts:

    2 x E3D hotend (or any kind of similar hotend)
    1 x Nema 17 stepper or Nema 17 planetary geared stepper 5.18:1
    1 x RC servo (MG996 55g metal geared from ebay)
    1 x 40 x 40 fan (for cooling print)
    1 x 40 x 40 fan (for cooling hotends)
    1 x GT2 belt (~1m)
    2 x 5cm PTFE tube for 1.75mm filament
    2 x 694 (4x11x4 mm) ball bearings
    1 x MK8 drive gear pulley for 1.75mm filament
    2 x Small wire strips
    4 x LM8UU linear bearing
    12 x M3 x 10 screw
    6 x M3 x 10 flat hat screws
    1 x M3 x 20
    1 x ~10mm spring (push)
    1 x M4 x 16 screw
    1 x M4 nut
    2 x Spring or some rubber bands
    1 x 5V power supply for servo

    Setup:

    The setup is split into the following parts:
    · Assembly x-carriage
    · Assembly extruder
    · Implementation of the x-carriage
    · Implementation of the extruder
    · Setup of the electronics
    · Firmware adaption




    Assembly x-carriage

    The x-carriage is designed for the Robo3D printer, to use the extruder with another printer, this part needs to be adapted to the used printer.
    1. Insert the four LM8UU linear bearings at each corner and push them against a hard surface until they are aligned with the surface.

    2. Use a M3 x 10 screw and insert it half way at the hole where the end switch is located. The screw could be later be used adjust the end position like at the stock carriage of Robo3D

    3. Mount the two fans with four of the M3 x 10 screws at the front of the carriage, the blowing direction points towards the print bed.


    Assembly extruder

    The extruder is assembled in one step and then mounted to the x carriage (x carriage installed or not installed). The extruder could be removed by three screws to be exchanged quickly by a single direct drive extruder.

    1. Install the motor (geared or non-geared) to the corresponding motor carriage with the four M3 x 10 flat head screws. Keep in mind to limit the motor current and to update the steps per mm in case of using a geared stepper.

    2. Mount the lever axis with two M3 x 10 flat heat screws from the backside to the extruder base. The screws must be completely sunk that the motor carriage can move freely.
    3. Put the assembled motor carriage in place and fix it by assembling the base top part with three M3 x 10 screws.
    4. Screw the servo arm to servo with a flat head screw, if the servo didn’t come with a flat head screw, it is possible to take a normal M3 screw with the correct length. The servo arm must be installed in the right position to move from left to right, it needs to be checked before it is mounted to the mechanism, if you are not sure, remove the servo before the first test.
    5. Insert the servo from the bottom of the extruder and fix it with four M3 x 10 screws, take care that the top of the servo arm fits into the slot of the motor carriage.
    6. Assemble the drive gear pulley to the motor axis, the pulley needs to be aligned to the filament path.
    7. Put the two levers for the filament path together, insert the two bearings at the lower cylinder and push the two parts of the levers together.
    8. Slide the two levers over the axis and turn them to the center.
    9. Use springs or rubber bands or something else to put tension on the levers, it should be adjustable (different springs, more or less bands, different bands) for best functionality.
    10. Slide in the M4 nut for the hotend lock.
    11. Insert the PTFE tubes at the filament channels.
    12. Install the hotends and lock them in place with the hotend lock mounted with the M4 x 16 screw


    Implementation x-carriage

    For the assembly of the x-carriage, the Robo3D must be partly disassembled, the top housing must be removed.

    1. Remove the filament and spool if still installed
    2. Remove the four screws at the side of the printer
    3. Remove the housing and put it aside
    4. Disconnect the connectors of the x end switch
    5. Remove the whole x axis by pulling it upwards of the z rods
    6. Take the GT2 belt of the pulley and the ball bearings on the other side
    7. Carefully remove the side part from the x rods and pull of the whole x-carriage. Replace the old carriage with the new one and put back the side part.
    8. Return the x axis by sliding it over the z rods, take care to insert the z nuts back in the hexagonal holes.
    9. Use the replacement GT2 belt and the wire strips to mount it like it was done at the stock setup. The belt should have the same tension as before, the belt tensioner should be reused to maintain the tension.
    10. Reconnect the x axis end switch.
    11. Reassemble the housing and lock it with the four screws



    Implementation extruder

    The installation of the extruder is quite simple, it was designed to be exchangeable with my single direct drive extruder.

    1. Put the extruder in place, the hotends pointing to the fans.
    2. Use two M3 x 10 to create a hinge on the right side, don’t lock the screws to tight or to loose, the hinge should be movable but still remain in position.
    3. Put the 10mm spring between the x carriage and the extruder base, install the M3 x 20 screw and use it to level the two nozzles.
    4. Wire the electronics to the RAMPS board



    Setup electronics

    Available in full setup guide at Thingiverse


    Firmware adaption

    Available in full setup guide at Thingiverse


    Testprint

    First print test

    upload_2015-1-25_16-19-22.png



    Next steps

    • Fix firmware
    • Long term durability testing of the shifting mechanism (servo arm, servo gear, sliding setup of the stepper)
    • Adding wire management
    • Test of geared stepper setup
     
    12 people like this.
  2. John Rygg

    John Rygg Active Member

    Joined:
    Feb 21, 2013
    Messages:
    111
    Likes Received:
    31
    very cool
     
    3 people like this.
  3. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    Thanks John
     
  4. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,278
    This is awesome man. I hope you can sort out the bugs.
     
    3 people like this.
  5. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    I hope I could find some support about marlin firmware, I don't know why the change of the extruder happens even before movement ends.
     
  6. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,278
    Not necessarily sure the blame is on Marlin. Seems to me more like G-code and/or communication delay.
     
  7. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    I think it should be possible to solve it in Marlin, a simple check if the last move has finished before moving the servo would be enough. But I haven't found where I could add that flag :)
     
  8. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,947
    Likes Received:
    7,342
    @Ziggy would be the best person to ask about that.
     
  9. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    I asked Ziggy before, but told him I found a way :) I was wrong, guess I need to ask again. Thanks
     
  10. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    I replied to your PM. Marlin works in mysterious ways when handling G v M (or T) codes - I need to see how the T code has been done in your firmware.
     
  11. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    It works, big thanks again to Ziggy, transition now waits for completion of the previous command. I have updated the setup guide with the new code.
     
  12. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,278
    We need a video of the transition ASAP!
     
    3 people like this.
  13. Galaxius

    Galaxius Well-Known Member

    Joined:
    Jan 18, 2014
    Messages:
    632
    Likes Received:
    342
    Awesome work Stargrove1. Like Mike, I can't wait to see vids of that beast in action.
     
    3 people like this.
  14. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    #14 Stargrove1, Jan 26, 2015
    Last edited by a moderator: Jan 26, 2015
    9 people like this.
  15. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,278
    That's really awesome man. Mind if I share this to the google+ 3d printing group? Might be worth hosting on youtube

    Would be a really cool way to add direct drive to a small dual extruder like the cyclops
     
    3 people like this.
  16. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    Looks great - really nice job!!!

    Just for anyone reading this thread in future

    Firmware change required was:

    Throughout Marlin the function

    st_synchronize(); // Block until all buffered steps are executed

    is used to wait for all blocks to be cleared out of the move buffer by the stepper interrupt handling. It is possible to simply replace the delay(x); lines in your tool changeover code with st_synchronize();

    This will work as the st_sychronize() will not return until all move blocks which have been queued are cleared.
     
    #16 Ziggy, Jan 26, 2015
    Last edited by a moderator: Jan 26, 2015
    5 people like this.
  17. Dbeal

    Dbeal Active Member

    Joined:
    Jul 10, 2014
    Messages:
    110
    Likes Received:
    84
    Nice job Stargrove1
     
    3 people like this.
  18. Stargrove1

    Stargrove1 Member

    Joined:
    Apr 17, 2014
    Messages:
    75
    Likes Received:
    77
    Sure, no problem

    Magic-Goat asked the same thing about cyclops/chimera on Thingiverse, I think the design needs some adaptions due to the closer position of the nozzles and the different mounting.
     
  19. Galaxius

    Galaxius Well-Known Member

    Joined:
    Jan 18, 2014
    Messages:
    632
    Likes Received:
    342
    +1 for Cyclops support. No inactive nozzle to ooze then.
     
    3 people like this.
  20. Magic-Goat

    Magic-Goat Member

    Joined:
    Mar 4, 2014
    Messages:
    75
    Likes Received:
    10
    Jeez, i could watch that tool change for hours. Have you got a pic of the finished traffic cone print?

    Yeah would be awesome to see it on the chimera/cyclopes, but it looks like it needs a total re-design
     

Share This Page