Dual Switching Extruder Servo rotating no ooze

Dual Switching Extruder Servo rotating no ooze

thingiverse

Edit April 30-2018: I have added an adapter for a 40mm fan. Just in case you want to run a quiet Noctua. Edit Mar 18-2018: Note on Calibration. Due to the angle the hotend clamps are printed the hotend will not move perfectly smoothly to level. It is not necessary to be perfectly aligned. You can enter the nozzle height difference into Marlin Switching extruder. Edit Feb 4-2018: Added a new Parts cooling Fan for the left side for better clearance. https://www.youtube.com/watch?v=JipLZppDMAk First off, a big thanks from Galaxyman7 and his support on this project. BACKGROUND: This project is a remix from: https://www.thingiverse.com/thing:2187379 I wanted to modify this to servo drive instead of mechanical drive. I wanted to keep this partially universal to keep the number of printed parts down so I used this modular x-carriage which was a remix of one of the most popular but with BLTouch mounts. Other brackets can be found by following the links within this one as well. https://www.thingiverse.com/thing:2007048 This project still takes a lot of patience to get setup correctly. Servo angles are a bit finicky to adjust and the shields have to be perfectly aligned to stop the flow of filament and not snag on the parts you are printing. PARTS: 2 E3D V6 hotends 1 MG90D Servo (an SG90 may work but I wanted stronger) 2 608 Bearings 2 5015 Fans 2 6x3 magnets 2 3x1.5 magnets 3 3x25mm socket bolts 6 3x8mm socket bolts 4 3x10mm socket bolts 8 3mm nuts 3 4x12mm socket bolts to hold bracket to Carriage 3 4mm nuts for above 1 Metal to cut shields from, I used a duct pipe 1 4’ ziptie to secure the hotend wires and the cooling fan into the fan shroud. Optional 3 Cotton insulators for hotends and Kapton tape to prevent Thermal Runaway. SWITCHING: There are 2 ways you can control the servo to switch. You can either write script in the slicer or modify the firmware to control switching. I personally modified the firmware which allows me to use any slicer without writing a script for each. FIRMWARE: In Marlin you will want to activate SWITCHING_NOZZLE in Configuration.h. // A dual-nozzle that uses a servomotor to raise/lower one of the nozzles #define SWITCHING_NOZZLE #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 1 // This is your Servo Number, Match to your configuration #define SWITCHING_NOZZLE_SERVO_ANGLES { 123, 58 } //Angles for E0, E1 Set these to your Calibration //#define HOTEND_OFFSET_Z { 0.0, 0.0 } // I haven’t used these but could be an option to correct for height misalignment. #endif Confirm you have the number of servo’s defined and wait times associated for them. /** * Number of servos * * For some servo-related options NUM_SERVOS will be set automatically. * Set this manually if there are extra servos needing manual control. * Leave undefined or set to 0 to entirely disable the servo subsystem. */ #define NUM_SERVOS 2 // Servo index starts with 0 for M280 command // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle. // 300ms is a good value but you can try less delay. // If the servo can't reach the requested position, increase it. #define SERVO_DELAY { 375,375 } //***Modified*** Once this is uploaded, anytime in the g-code T0 or T1 activates it will switch that servo. SLICER: The G-code (Marlin) for moving a Servo is: M280 P(0 or 1) S(ANGLE) ; There are no brackets used when you type that in ex: M280 P1 S90 So in the Tool Change script in your slicer you would enter the following: {IF NEWTOOL=0}M280 P1 S100 ;Where 1 = your servo number and 100 will be your servo angle for E0 {IF NEWTOOL=1}M280 P1 S34;Where 1 = your servo number and 34 will be your servo angle for E1 You could get fancy here and add codes to cool the inactive nozzle and heat the active nozzle back up. I so far found I did not need to do this but there may be situations such as using PVA where you would want to remove the heat from the nozzle. CONSTRUCTION: I printed all parts with PETG which is strong, flexible and able to withstand the temps at the hotends. For most parts I used 5 perimeters for additional strength and 60% infill. I printed both the hotend holders vertical so the bearing dowel was upright to ensure the most accurate fit through the bearing. This takes a fair amount of support which can be minimized using Simplify3D multi process, use 10 support up to about 48mm then increase to 35%. The Carriage should be printed upside down but will need support for above the bearing where the rotating hotend slides into and rotates around. - Press the bearings into the carriage. - Assemble the rotating hotend front and back with the hotends inside. These can be removed later but the 3x25 bolts need to be completely removed for the hotends to slide in or out. - Mount the 3x1.5 magnets into the hotend front cover. Make sure that the polarity is the same direction for both of them. - Then mount the 6x3 magnets into the carriage. Ensure you have the polarity the correct way so they snap together with the hotend Front cap in both directions. I was able to use large plyers to snug fit the magnets in without glue. DO NOT USE HEAT OR THEY WILL LOSE THEIR MAGNITISM AT 80C. - You will want to insert the rotating hotend into the carriage while it is free and not mounted to the modular x-carriage. This gives it the needed flexibility to open wide enough to slide it into the bearings. It should snap into the bearings tightly. - Before you connect your Servo for the first time, you will want to centre it at 90 and make sure you have 66 degrees of movement on it. You can do this with the following command: - M280 P1 S90 (if you are using Servo0 then this will be P0). From there you will want to slowly move the servo forward and back until it connects. If the servo is told to move too far it will lock and not move back to the previous location and you will have to remove the servo from the bracket to relieve the pressure in it. Once you determine the locations of the servo for E0 and E1 record them (in either your slicer or the firmware). - Attach the rotating hotend onto the modular x-carriage. - Lower the nozzles to the bed (glass). Using your slicer to control the printer activate E1 and adjust the height of it so it matches the height of E0. - Attach the hotend cooling fan shroud with the 5015 fan. - Secure the hotend wires to the back of the fan shroud through the fan hole. - Mount the nozzle shields. You will want them bent at 20 degrees to the bed so the nozzle is completely flush against the shield when parked. I would suggest to bend the tip of the shield up like a ski in case it hits a blob in the future so it does not bend backwards. Ensure the shield is completely above the bed and the active nozzle. This whole process can take some time to get everything set just right. - Mount the parts cooling fan. You will want to print a dual extruder calibration test. The following works out great to measure your offsets in both the X and Y axis. Expect your Y to be in around the 1mm range as due to extrusion errors the rotating head may not be perfectly aligned. https://www.thingiverse.com/thing:533814 BOARD CONNECTIONS: I am running a MKS Base V1.5. I have my BLTouch on PINS 11 for Servo0. I used PINS 12 for Servo1 that operates the servo to switch the Hotend. My firmware was setup to use PINS 12 for the PSU Shutoff, If you are using that you can redefine any of the X,Y, or Z + endstops as a servo for the hotend. In your firmware this should be in PINS.h or PINS_Ramps.h or similar.

Download Model from thingiverse

With this file you will be able to print Dual Switching Extruder Servo rotating no ooze with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Dual Switching Extruder Servo rotating no ooze.