If one of your filament was in that list, it will most likely need tip shaping. However, if another of your filaments was not in that list, it won't need tip shaping.
-
Configuration
-
In your 3ms/settings.cfg, chagne the unload_distance and load_distance to be equal.
This documentation is still under construction. If you have any questions not answered by the documentation, please open an issue on Github.
"},{"location":"#sample-prints","title":"Sample Prints","text":"Sample Prints SheepCalendarVoron Cube
Model: Sheep by Cipis
Model: Monolith Cryptic Calendar by Sevro
Model: Voron Cube (bundled with OrcaSlicer), painted by me in OrcaSlicer
"},{"location":"#photos","title":"Photos","text":"Photos Full Printer3MSY Splitter"},{"location":"#why-3ms","title":"Why 3MS?","text":"
Why use the 3MS when there are many other multi-material systems?
Here are a few reasons:
Extremely simple design increases reliability
Thorough documentation to help setup, optomize, and troubleshoot
No slicer custom toolchange G-Code needed
Easily expandable to any number of filaments (currently up to four)
In development: Toolchanges Without Tip Shaping or Filament Cutter!
With that said, there are a few reasons why you might not want to/be able to use the 3MS:
Klipper firmware is a requirement, so Marlin and RRF setups are a no go
A filament sensor is required, so if you don't have one/don't plan to get one, the 3MS won't work with your setup
"},{"location":"#how-it-works","title":"How it works","text":"
Here is a example step by step of what goes on during a single 3MS toolchange from T0 to T1:
Tip shaping and filament unload is performed by the slicer
The 3MS unloads T0 200mm at 4500mm/min (75mm/s)
The 3MS desyncs T0 from the extruder
The 3MS checks if the filament was successfully unloaded
The 3MS syncs T1 with the extruder
The 3MS loads T1 210mm at 4500mm/min
The 3MS checks if the filament was successfully loaded
The printer loads the filament to the nozzle
For more detail about the Tx command, see Flowchart.
Think of the 3MS as an extension to your current extruder's length. It allows for switching filaments, but while printing allows for all the benefits of your printer's extruder.
The 3MS's motors work together with your printer's extruder. This way, there won't be any additional resistance from pulling the filament through a disabled extruder. Also, unloads and loads to/from the printer's extruder are fully synchronized with the 3MS. This allows for even faster toolchanges!
To get started with the 3MS, see the Master Instructions.
"},{"location":"#what-about-the-3dchameleon","title":"What about the 3DChameleon?","text":"
I recently created a klipper plugin for the 3DChameleon after purchasing a unit. I'm sure my Chameleon could have worked if I had tuned it further, but after several months with only partial success, I gave up. I am still open to pull requests for 3dchameleon-klipper and will do my best to respond to issues there, but I won't be able to test it myself anymore.
Before starting the instructions, a basic understanding of how the 3MS works is recommended. There are two types of components in the 3MS:
Controller
This controls the stepper motors
Filament Units
This moves the filament
The number of filaments you will be able to print with is equal to the number of filament units you have. For example, two filament units will let you print with two colors. It is important to note that one filament unit will NOT let you print in multimaterial.
"},{"location":"instructions/#05-choosing-a-controller","title":"0.5. Choosing a Controller","text":"
Choose one of the controllers from Controllers before continuing.
"},{"location":"instructions/#1-getting-a-bom","title":"1. Getting a BOM","text":"
Go to BOM to view the bill of materials for the number of filament units you want. Example BOM for two filament units and a SKR Mini E3 V2:
Name Price Quantity Link Notes SKR Mini E3 V2 $34.99 1 Amazon Duponts $9.99 1 Amazon These wires are only sufficient to run steppers, not heaters 12V PSU $7.39 1 Amazon This PSU is only sufficient to run steppers, not heaters NEMA17 Stepper Motor $9.99 2 Amazon You can use a pancake stepper if you want, but it will have less torque MK8 Metal Extruder $9.99 2 Amazon Capricorn PTFE Tubing $11.49 1 Amazon You likely won't need this for every unit, as this is usually too long for only one unit"},{"location":"instructions/#2-assembling-your-3ms","title":"2. Assembling your 3MS","text":"
Follow Assembly to assemble your 3MS.
"},{"location":"instructions/#3-configuring-your-3ms","title":"3. Configuring your 3MS","text":"
Install Klipper firmware onto the MCU by following Firmware.
Follow Installation to install the 3MS configuration.
Follow Filament Sensor to setup your filament sensor with the 3MS.
"},{"location":"instructions/#4-stepper-motor-setup","title":"4. Stepper motor setup","text":"
Follow Stepper Setup to setup and calibrate each of your filament units.
Follow this guide to configure your filament sensor with the 3MS.
"},{"location":"configuration/fsensor/#location-of-sensor","title":"Location of Sensor","text":"
The filament sensor should be right before the extruder, and after the Y splitter. Other locations, such as between the hotend and extruder, have not been tested.
Warning
The 3MS has only been tested with a filament_switch_sensor, and not with a filament_motion_sensor
To configure your filament sensor with the 3MS, open 3ms/settings.cfg and change the following (assuming your filament sensor is named \"runout_sensor\"):
"},{"location":"configuration/macros/#print-start-and-end","title":"Print Start and End","text":""},{"location":"configuration/macros/#mmms_start","title":"MMMS_START","text":"
Starts the print by checking the filament sensor. If filament is detected, the print is paused and the user is notified. Regardless of the filament sensor state, the initial tool is loaded.
Follow this guide to calibrate each of the stepper motors. Each of these steps should be repeated for each of your filament units, replacing TOOL=0 with TOOL=1, and so on. Also replacing 3ms0 with 3ms1, and so on.
Info
If your stepper motor shakes erratically while running any of these commands, your wiring may be incorrect.
"},{"location":"configuration/steppers/#is-the-motor-spinning","title":"Is the motor spinning?","text":"
Run this command:
SYNC_TOOL TOOL=0\nG1 E50 F4500\n
If the motor spins, skip to the next step. If not, check your wiring first. If your wiring is fine, go to 3ms/steppers.cfg. Locate the section named [extruder_stepper 3ms0]. In front of the enable_pin, add, an !. If there already is one, remove it. Example:
BeforeAfter 3ms/steppers.cfg
enable_pin: !3ms: PD7\n
3ms/steppers.cfg
enable_pin: 3ms: PD7\n
"},{"location":"configuration/steppers/#is-the-motor-spinning-backwards","title":"Is the motor spinning backwards?","text":"
Preload each of the filament units with a piece of scrap filament by pushing the lever to release the tension, inserting filament, then releasing the lever to restore tension. Next, run this command:
SYNC_TOOL TOOL=0\nG1 E50 F4500\n
Note which way the filament moves. If it moves forwards, away from the PTFE coupler, skip to the last step. If it moves backwards, you have two choices:
Switch the motor's wires
Invert the pin in the configuration
To invert the pin in the configuration, locate the configuration section for the filament unit spinning backwards, and invert the dir_pin. See the previous section for how to invert the pin.
"},{"location":"configuration/steppers/#how-far-does-the-filament-move","title":"How far does the filament move?","text":"
This section is a modified version of the Klipper Docs
Preload each of the filament units with a piece of scrap filament at least 200mm long by pushing the lever to release the tension, inserting filament, then releasing the lever to restore tension.
Use a ruler and a marker to place a mark 70mm from the inlet of the filament unit. Use calipers to measure the actual distance. Write it down, as it will be referred to as <initial_mark_distance>.
Next, run this command:
SYNC_TOOL TOOL=0\nG1 E50 F1500\n
Use calipers to measure the new distance between the inlet of the filament unit and the mark. Write it down, as it will be referred to as <next_mark_distance>.
Note the rotation_distance (last line). In this case, it is 32.8450.
Calculate the new rotation distance: new_rotation_distance = <rotation_distance> * <actual_extrude_distance> / 50.
Round this result to three or four decimal places. Decrease it by 0.005 (this is so that if this result is slightly off, the 3MS filament unit will skip, instead of the printer's extruder stripping the filament during a print).
Set the new rotation_distance in your config. Save it and restart Klipper.
Info
If you use the same stepper motor brand and model for each of your filament units, you likely only have to do this step for one stepper, then copy over the rotation_distance to all the others.
"},{"location":"experimental/notip/","title":"Toolchanges Without Tip Shaping or Filament Cutter!","text":"
Because the 3MS is synchronized to the printer's extruder, it can potentially toolchange without any tip shaping or filament cutter. So far, the only testing has been done outside of prints.
Info
This page, and the features mentioned on it, are in develpment
Development Status
So far, the following work without tip shaping:
Toolchanges without tip shaping
Print start/end routines without tip shaping
Small prints without tip shaping (up to 5 toolchanges)
Medium prints without tip shaping (over 50 toolchanges)
Long prints without tip shaping (over 100 toolchanges)
Common materials:
PLA
PLA+
High Speed PLA
Silk PLA
PETG (untested)
TPU (not tested even with tip shaping)
"},{"location":"experimental/notip/#speed-benefits","title":"Speed Benefits","text":"Print Job Original Time New Time New Time Relative To Original Time Speed Boost Dual Color 3DBenchy 2h45m 1h25m 51.5% 1.95x"},{"location":"experimental/notip/#should-tip-shaping-be-used","title":"Should Tip Shaping be Used?","text":"
Check if your filament is in this list:
Silk PLA
Matte PLA
If one of your filament was in that list, it will most likely need tip shaping. However, if another of your filaments was not in that list, it won't need tip shaping.
An optional board enclosure for the SKR Mini E3 is available here.
Additionaly, an optional univeral mount for the MK8 extruder using M3 bolts is available here. Note that this requires 2-4 M3 bolts and a place to screw the bolts into.
Finally, you will need to print enough of these Y splitters for the filament.
Next, assemble the MK8 extruders onto the NEMA17 motors using the provided instructions that came with them. If you use the mount provided above, make sure it is in between the MK8 and NEMA17.
Follow one of the following guides based on your controller:
SKR Mini E3 V2
BTT Octopus (main MCU)
"},{"location":"setup/bom/","title":"BOM","text":""},{"location":"setup/bom/#number-of-filament-units","title":"Number of filament units","text":"
First, choose the number of filament units you want. Each filament unit lets you print with an additional filament. Two filament units are the minimum. You can add or remove filament units after building, but the BOM and configuration will vary based on how many filament units you want.
Choose the BOM for your chosen controller from the list below:
BTT SKR Mini E3 V2
BTT Octopus (main MCU)
"},{"location":"setup/bom/#filament-unit-boms","title":"Filament Unit BOMs","text":"
For each filament unit, purchase this BOM:
Name Quantity Price Link Notes NEMA17 Stepper Motor 1 $9.99 Amazon You can use a pancake stepper if you want, but it will have less torque MK8 Metal Extruder 1 $9.99 Amazon Capricorn PTFE Tubing 1 $11.49 Amazon You likely won't need this for every unit, as this is usually too long for only one unit"},{"location":"setup/firmware/","title":"Firmware","text":"
Follow this guide to install Klipper firmware onto your 3MS MCU. This guide is a modified version of the Klipper Documentation.
Make sure your 3MS MCU is plugged into your Klipper Host. Run in your terminal:
cd ~/klipper\nmake menuconfig\n
In the menuconfig, configure it to your MCU. Instructions are included at the top of 3ms/controllers/xxx/steppers.cfg for future reference. A copy of it is provided here:
# This file contains common pin mappings for the BIGTREETECH SKR mini\n# E3 v2.0. To use this config, the firmware should be compiled for the\n# STM32F103 with a \"28KiB bootloader\" and USB communication. Also,\n# select \"Enable extra low-level configuration options\" and configure\n# \"GPIO pins to set at micro-controller startup\" to \"!PA14\".\n
Run in your terminal:
make clean\nmake\n
The klipper.bin file, located in ~/klipper/out/klipper.bin needs to be copied to a MicroSD card and renamed to firmware.bin (case-sensitive).
Next, unplug the 3MS board from the PSU and your Klipper Host and insert the SD Card. Next, plug in the PSU, THEN the Klipper Host to the 3MS board. The firmware is now flashed.
In this case, the first line is the 3MS, and the second line is the 3D printer. Now that you know the id of the 3MS MCU, copy it and save it to a file:
This method allows you to turn any model, even if it's not designed for multimaterial printing, into a multimaterial print. First, import your model into the slicer. In this case, a 3DBenchy will be used.
Cmd+I OR Ctrl+I
Next, select the model and click multimaterial painting at the top.
N
Once you're in this menu, you can choose any tool, tool size, and filament. Now, just drag over the model to apply the selected tool to the model. In this case, the hull of the 3DBenchy will be set to filament two using the fill tool.
Finally, hit slice and your model is ready to print!
This method allows you to turn parts of a model to different materials. For this tutorial, this T-rex by Cipis will be used. First, import your model into the slicer. If prompted while opening to treat the model as multiple parts, select \"Yes\".
Cmd+I OR Ctrl+I
Next, go to object settings and change the different parts of the model to different colors.
Finally, hit slice and your model is ready to print!
In the examples, you may have noticed that the wipe tower is far from the model. The travel time between the model and wipe tower adds up, and moving the tower closer can help reduce print time.
In the \"Prepare\" view, click and drag the wipe tower as close to the object as you can without colliding.
If you have a camera on your 3D printer, you may want to put the wipe tower \"behind\" the part from your camera's perspective.
Follow this guide to setup the 3MS with your slicer. OrcaSlicer will be used in this guide, but these same settings (with different names) can be applied to PrusaSlicer and SuperSlicer.
"},{"location":"setup/slicer/#number-of-filament-units","title":"Number of Filament Units","text":"
Set the number of filaments in your slicer to the number of filament units in your 3MS.
In OrcaSlicer, press the filament plus button until there are as many filaments displayed as you have filament units.
If your printer's mainboard has spare stepper ports, you can use them to control 3MS steppers. You can open an issue on Github (there's a template) to get a configuration made for your specific setup. Any controllers listed with \"(main MCU)\" use those spare stepper plugs.
Choose one of the following supported controllers (a checkmark indicates it is fully tested):
SKR Mini E3 V2.0 (4 colors)
Fully Tested
BTT Octopus (main MCU) (4 colors)
Untested
Einsy RAMBo (main MCU) with SKR Mini E3 V2.0 (3ms MCU)
This configuration is a main MCU configuration, meaning that your printer should already be running off a BTT Octopus and you don't need to purchase one.
Route the wires from the NEMA17's to the controller board. Follow this table to determine which port to plug the motors into:
Filament Unit # Motor Port 0 MOTOR7 1 MOTOR6 2 MOTOR5 3 MOTOR4"},{"location":"setup/controllers/einsyrambo-skrminie3v2/","title":"Einsy RAMBo (main MCU) with SKR Mini E3 V2","text":"
Danger
This guide is an expert guide only and under construction.
Info
This modification is designed for the Prusa MK3/S/S+.
When printing fast, the TMC2130's on the Einsy RAMBo can get quite loud. The TMC2209's on the SKR Mini are much quieter and support denser microstepping.
First, unplug the 3MS steppers from the SKR Mini, and the XY steppers from the Einsy RAMBo. The motors will need to be switched due to different connector types between boards.
This table outlines the major wiring of this modification.
Einsy RAMBo SKR Mini E3 V2 Motor PSU+ POWER+ PSU- POWER- XM 3ms0 YM 3ms1 XM X YM Y"},{"location":"setup/controllers/einsyrambo-skrminie3v2/#configuration","title":"Configuration","text":"
Info
This section is under construction.
"},{"location":"setup/controllers/skrminie3v2/","title":"BTT SKR Mini E3 V2","text":"
Max filament units: 4
MCU Name: 3ms
"},{"location":"setup/controllers/skrminie3v2/#bom","title":"BOM","text":"Name Price Quantity Link Notes SKR Mini E3 V2 $34.99 1 Amazon Duponts $9.99 1 Amazon These wires are only sufficient to run steppers, not heaters 12V PSU $7.39 1 Amazon This PSU is only sufficient to run steppers, not heaters"},{"location":"setup/controllers/skrminie3v2/#wiring","title":"Wiring","text":"
Route the wires from the NEMA17's to the controller board. Follow this table to determine which port to plug the motors into:
Filament Unit # Motor Port 0 XM 1 YM 2 ZAM or ZBM 3 E0M
Now, grab your 12V PSU and two M-M duponts, one red and one black (M-M means that there is metal coming out of both ends of the cable). Plug the PSU into the wall, but don't plug the screw terminals into the PSU (the screw terminals have green)
Plug the red wire into the positive terminal of the screw termianls
Plug the black wire into the negative terminal of the screw terminals
Danger
These dupont cables are too thin to run much more than the stepper motors. If you run a heater or other power-intensive device off of the SKR board, the duponts and/or PSU can melt/catch fire. To reduce the risk of this, you can double up on the duponts or get thicker wires.
Following this image, choose either the DCIN or POWER input
Route the two wires inside closest to your chosen input
Using the markings on the board, plug the red wire into the positive terminal on the SKR
Using the markings on the board, plug the black wire into the negative terminal on the SKR
Verify all connections
Warning
If the wires are plugged into the wrong place, or swapped polarities, your SKR, Stepper motors, and/or PSU can be badly damaged.
Plug the PSU screw terminals into the PSU wire
If the SKR lights up, you wired it correctly!
Finally, plug the SKR into your Klipper host with the blue cable that came with it.
If during toolchanges, a failed toolchange false alarm occurs (print pauses even though toolchange was successful), follow this troubleshooting guide to fix it.
The main culprit for this issue is likely your fsensor_delay in 3ms/settings.cfg is too short. Short values will cause more false alarms, and long values will cause less. Generally, the default 2000ms is good for most setups, but if you are having false alarms, you will have to increase it. Example:
First, check if your printer's extruder is properly extruding. To check this, detach the PTFE tube from the inlet of your extruder, and manually load filament, using Klipper's controls for loading filament. If your printer's extruder is having trouble extruding plastic, you may have one of the following:
If the printer's extruder is working properly, and you're still having skipping, check the filament tips. If the tip has a long string on it, or has a thick blob at the end, your filament tips may be to blame. If you have stringy tips, decrease your nozzle temperature while printing. If you have blobby tips, increase your nozzle temperature while printing. Alternatively, you can purchase PTFE tubes with a larger ID to allow for less precise tips.
If your prints start to have gaps in the walls, you are likely experiencing underextrusion. Follow this troubleshooting guide to diagnose the issue and fix it.
If your extruder and hotend are working fine, the next likely cause of underextrusion is your 3MS rotation_distance is too high. There are two likely causes and solutions, based on where in the print the underextrusion occurs:
Whole print - 3MS motors working backwards from the extruder or not working at all
Follow the wiring section of Assembly.
Follow the first two steps of Stepper Setup.
Partially through print - 3MS motors not turning enough
Follow the last step of Stepper Setup.
"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to the 3MS Documentation","text":"
The 3MS is short for MMMS, which stands for Modular Multi Material System
This documentation is still under construction. If you have any questions not answered by the documentation, please open an issue on Github.
"},{"location":"#sample-prints","title":"Sample Prints","text":"Sample Prints SheepCalendarVoron CubeT-RexLizard
Model: Sheep by Cipis
Model: Monolith Cryptic Calendar by Sevro
Model: Voron Cube (bundled with OrcaSlicer), painted by me in OrcaSlicer
Printed at 50% scale
Model: T-rex by Cipis
Model: Striped lizard with pupils by EngMike
"},{"location":"#photos","title":"Photos","text":"Photos Full Printer3MSY Splitter"},{"location":"#why-3ms","title":"Why 3MS?","text":"
Why use the 3MS when there are many other multi-material systems?
Here are a few reasons:
Extremely simple design increases reliability
Thorough documentation to help setup, optomize, and troubleshoot
No slicer custom toolchange G-Code needed
Easily expandable to any number of filaments (currently up to four)
In development: Toolchanges Without Tip Shaping or Filament Cutter!
With that said, there are a few reasons why you might not want to/be able to use the 3MS:
Klipper firmware is a requirement, so Marlin and RRF setups are a no go
A filament sensor is required, so if you don't have one/don't plan to get one, the 3MS won't work with your setup
"},{"location":"#how-it-works","title":"How it works","text":"
Here is a example step by step of what goes on during a single 3MS toolchange from T0 to T1:
Tip shaping and filament unload is performed by the slicer
The 3MS unloads T0 200mm at 4500mm/min (75mm/s)
The 3MS desyncs T0 from the extruder
The 3MS checks if the filament was successfully unloaded
The 3MS syncs T1 with the extruder
The 3MS loads T1 210mm at 4500mm/min
The 3MS checks if the filament was successfully loaded
The printer loads the filament to the nozzle
For more detail about the Tx command, see Flowchart.
Think of the 3MS as an extension to your current extruder's length. It allows for switching filaments, but while printing allows for all the benefits of your printer's extruder.
The 3MS's motors work together with your printer's extruder. This way, there won't be any additional resistance from pulling the filament through a disabled extruder. Also, unloads and loads to/from the printer's extruder are fully synchronized with the 3MS. This allows for even faster toolchanges!
To get started with the 3MS, see the Master Instructions.
"},{"location":"#what-about-the-3dchameleon","title":"What about the 3DChameleon?","text":"
I recently created a klipper plugin for the 3DChameleon after purchasing a unit. I'm sure my Chameleon could have worked if I had tuned it further, but after several months with only partial success, I gave up. I am still open to pull requests for 3dchameleon-klipper and will do my best to respond to issues there, but I won't be able to test it myself anymore.
Before starting the instructions, a basic understanding of how the 3MS works is recommended. There are two types of components in the 3MS:
Controller
This controls the stepper motors
Filament Units
This moves the filament
The number of filaments you will be able to print with is equal to the number of filament units you have. For example, two filament units will let you print with two colors. It is important to note that one filament unit will NOT let you print in multimaterial.
"},{"location":"instructions/#05-choosing-a-controller","title":"0.5. Choosing a Controller","text":"
Choose one of the controllers from Controllers before continuing.
"},{"location":"instructions/#1-getting-a-bom","title":"1. Getting a BOM","text":"
Go to BOM to view the bill of materials for the number of filament units you want. Example BOM for two filament units and a SKR Mini E3 V2:
Name Price Quantity Link Notes SKR Mini E3 V2 $34.99 1 Amazon Duponts $9.99 1 Amazon These wires are only sufficient to run steppers, not heaters 12V PSU $7.39 1 Amazon This PSU is only sufficient to run steppers, not heaters NEMA17 Stepper Motor $9.99 2 Amazon You can use a pancake stepper if you want, but it will have less torque MK8 Metal Extruder $9.99 2 Amazon Capricorn PTFE Tubing $11.49 1 Amazon You likely won't need this for every unit, as this is usually too long for only one unit"},{"location":"instructions/#2-assembling-your-3ms","title":"2. Assembling your 3MS","text":"
Follow Assembly to assemble your 3MS.
"},{"location":"instructions/#3-configuring-your-3ms","title":"3. Configuring your 3MS","text":"
Install Klipper firmware onto the MCU by following Firmware.
Follow Installation to install the 3MS configuration.
Follow Filament Sensor to setup your filament sensor with the 3MS.
"},{"location":"instructions/#4-stepper-motor-setup","title":"4. Stepper motor setup","text":"
Follow Stepper Setup to setup and calibrate each of your filament units.
Follow this guide to configure your filament sensor with the 3MS.
"},{"location":"configuration/fsensor/#location-of-sensor","title":"Location of Sensor","text":"
The filament sensor should be right before the extruder, and after the Y splitter. Other locations, such as between the hotend and extruder, have not been tested.
Warning
The 3MS has only been tested with a filament_switch_sensor, and not with a filament_motion_sensor
To configure your filament sensor with the 3MS, open 3ms/settings.cfg and change the following (assuming your filament sensor is named \"runout_sensor\"):
"},{"location":"configuration/macros/#print-start-and-end","title":"Print Start and End","text":""},{"location":"configuration/macros/#mmms_start","title":"MMMS_START","text":"
Starts the print by checking the filament sensor. If filament is detected, the print is paused and the user is notified. Regardless of the filament sensor state, the initial tool is loaded.
Follow this guide to calibrate each of the stepper motors. Each of these steps should be repeated for each of your filament units, replacing TOOL=0 with TOOL=1, and so on. Also replacing 3ms0 with 3ms1, and so on.
Info
If your stepper motor shakes erratically while running any of these commands, your wiring may be incorrect.
"},{"location":"configuration/steppers/#is-the-motor-spinning","title":"Is the motor spinning?","text":"
Run this command:
SYNC_TOOL TOOL=0\nG1 E50 F4500\n
If the motor spins, skip to the next step. If not, check your wiring first. If your wiring is fine, go to 3ms/steppers.cfg. Locate the section named [extruder_stepper 3ms0]. In front of the enable_pin, add, an !. If there already is one, remove it. Example:
BeforeAfter 3ms/steppers.cfg
enable_pin: !3ms: PD7\n
3ms/steppers.cfg
enable_pin: 3ms: PD7\n
"},{"location":"configuration/steppers/#is-the-motor-spinning-backwards","title":"Is the motor spinning backwards?","text":"
Preload each of the filament units with a piece of scrap filament by pushing the lever to release the tension, inserting filament, then releasing the lever to restore tension. Next, run this command:
SYNC_TOOL TOOL=0\nG1 E50 F4500\n
Note which way the filament moves. If it moves forwards, away from the PTFE coupler, skip to the last step. If it moves backwards, you have two choices:
Switch the motor's wires
Invert the pin in the configuration
To invert the pin in the configuration, locate the configuration section for the filament unit spinning backwards, and invert the dir_pin. See the previous section for how to invert the pin.
"},{"location":"configuration/steppers/#how-far-does-the-filament-move","title":"How far does the filament move?","text":"
This section is a modified version of the Klipper Docs
Preload each of the filament units with a piece of scrap filament at least 200mm long by pushing the lever to release the tension, inserting filament, then releasing the lever to restore tension.
Use a ruler and a marker to place a mark 70mm from the inlet of the filament unit. Use calipers to measure the actual distance. Write it down, as it will be referred to as <initial_mark_distance>.
Next, run this command:
SYNC_TOOL TOOL=0\nG1 E50 F1500\n
Use calipers to measure the new distance between the inlet of the filament unit and the mark. Write it down, as it will be referred to as <next_mark_distance>.
Note the rotation_distance (last line). In this case, it is 32.8450.
Calculate the new rotation distance: new_rotation_distance = <rotation_distance> * <actual_extrude_distance> / 50.
Round this result to three or four decimal places. Decrease it by 0.005 (this is so that if this result is slightly off, the 3MS filament unit will skip, instead of the printer's extruder stripping the filament during a print).
Set the new rotation_distance in your config. Save it and restart Klipper.
Info
If you use the same stepper motor brand and model for each of your filament units, you likely only have to do this step for one stepper, then copy over the rotation_distance to all the others.
"},{"location":"experimental/notip/","title":"Toolchanges Without Tip Shaping or Filament Cutter!","text":"
Because the 3MS is synchronized to the printer's extruder, it can potentially toolchange without any tip shaping or filament cutter. So far, the only testing has been done outside of prints.
Info
This page, and the features mentioned on it, are in develpment
Development Status
So far, the following work without tip shaping:
Toolchanges without tip shaping
Print start/end routines without tip shaping
Small prints without tip shaping (up to 5 toolchanges)
Medium prints without tip shaping (over 50 toolchanges)
Long prints without tip shaping (over 100 toolchanges)
Common materials:
PLA
PLA+
High Speed PLA
Silk PLA
PETG
TPU (not tested even with tip shaping)
"},{"location":"experimental/notip/#speed-benefits","title":"Speed Benefits","text":"Print Job Original Time New Time New Time Relative To Original Time Speed Boost Dual Color 3DBenchy 2h45m 1h25m 51.5% 1.95x"},{"location":"experimental/notip/#should-tip-shaping-be-used","title":"Should Tip Shaping be Used?","text":"
Check if your filament is in this list:
Silk PLA
Matte PLA
If one of your filament was in that list, it will most likely need tip shaping. However, if another of your filaments was not in that list, it won't need tip shaping.
An optional board enclosure for the SKR Mini E3 is available here.
Additionaly, an optional univeral mount for the MK8 extruder using M3 bolts is available here. Note that this requires 2-4 M3 bolts and a place to screw the bolts into.
Finally, you will need to print enough of these Y splitters for the filament.
Next, assemble the MK8 extruders onto the NEMA17 motors using the provided instructions that came with them. If you use the mount provided above, make sure it is in between the MK8 and NEMA17.
Follow one of the following guides based on your controller:
SKR Mini E3 V2
BTT Octopus (main MCU)
"},{"location":"setup/bom/","title":"BOM","text":""},{"location":"setup/bom/#number-of-filament-units","title":"Number of filament units","text":"
First, choose the number of filament units you want. Each filament unit lets you print with an additional filament. Two filament units are the minimum. You can add or remove filament units after building, but the BOM and configuration will vary based on how many filament units you want.
Choose the BOM for your chosen controller from the list below:
BTT SKR Mini E3 V2
BTT Octopus (main MCU)
"},{"location":"setup/bom/#filament-unit-boms","title":"Filament Unit BOMs","text":"
For each filament unit, purchase this BOM:
Name Quantity Price Link Notes NEMA17 Stepper Motor 1 $9.99 Amazon You can use a pancake stepper if you want, but it will have less torque MK8 Metal Extruder 1 $9.99 Amazon Capricorn PTFE Tubing 1 $11.49 Amazon You likely won't need this for every unit, as this is usually too long for only one unit"},{"location":"setup/firmware/","title":"Firmware","text":"
Follow this guide to install Klipper firmware onto your 3MS MCU. This guide is a modified version of the Klipper Documentation.
Make sure your 3MS MCU is plugged into your Klipper Host. Run in your terminal:
cd ~/klipper\nmake menuconfig\n
In the menuconfig, configure it to your MCU. Instructions are included at the top of 3ms/controllers/xxx/steppers.cfg for future reference. A copy of it is provided here:
# This file contains common pin mappings for the BIGTREETECH SKR mini\n# E3 v2.0. To use this config, the firmware should be compiled for the\n# STM32F103 with a \"28KiB bootloader\" and USB communication. Also,\n# select \"Enable extra low-level configuration options\" and configure\n# \"GPIO pins to set at micro-controller startup\" to \"!PA14\".\n
Run in your terminal:
make clean\nmake\n
The klipper.bin file, located in ~/klipper/out/klipper.bin needs to be copied to a MicroSD card and renamed to firmware.bin (case-sensitive).
Next, unplug the 3MS board from the PSU and your Klipper Host and insert the SD Card. Next, plug in the PSU, THEN the Klipper Host to the 3MS board. The firmware is now flashed.
In this case, the first line is the 3MS, and the second line is the 3D printer. Now that you know the id of the 3MS MCU, copy it and save it to a file:
This method allows you to turn any model, even if it's not designed for multimaterial printing, into a multimaterial print. First, import your model into the slicer. In this case, a 3DBenchy will be used.
Cmd+I OR Ctrl+I
Next, select the model and click multimaterial painting at the top.
N
Once you're in this menu, you can choose any tool, tool size, and filament. Now, just drag over the model to apply the selected tool to the model. In this case, the hull of the 3DBenchy will be set to filament two using the fill tool.
Finally, hit slice and your model is ready to print!
This method allows you to turn parts of a model to different materials. For this tutorial, this T-rex by Cipis will be used. First, import your model into the slicer. If prompted while opening to treat the model as multiple parts, select \"Yes\".
Cmd+I OR Ctrl+I
Next, go to object settings and change the different parts of the model to different colors.
Finally, hit slice and your model is ready to print!
In the examples, you may have noticed that the wipe tower is far from the model. The travel time between the model and wipe tower adds up, and moving the tower closer can help reduce print time.
In the \"Prepare\" view, click and drag the wipe tower as close to the object as you can without colliding.
If you have a camera on your 3D printer, you may want to put the wipe tower \"behind\" the part from your camera's perspective.
Follow this guide to setup the 3MS with your slicer. OrcaSlicer will be used in this guide, but these same settings (with different names) can be applied to PrusaSlicer and SuperSlicer.
"},{"location":"setup/slicer/#number-of-filament-units","title":"Number of Filament Units","text":"
Set the number of filaments in your slicer to the number of filament units in your 3MS.
In OrcaSlicer, press the filament plus button until there are as many filaments displayed as you have filament units.
If your printer's mainboard has spare stepper ports, you can use them to control 3MS steppers. You can open an issue on Github (there's a template) to get a configuration made for your specific setup. Any controllers listed with \"(main MCU)\" use those spare stepper plugs.
Choose one of the following supported controllers (a checkmark indicates it is fully tested):
SKR Mini E3 V2.0 (4 colors)
Fully Tested
BTT Octopus (main MCU) (4 colors)
Untested
Einsy RAMBo (main MCU) with SKR Mini E3 V2.0 (3ms MCU)
This configuration is a main MCU configuration, meaning that your printer should already be running off a BTT Octopus and you don't need to purchase one.
Route the wires from the NEMA17's to the controller board. Follow this table to determine which port to plug the motors into:
Filament Unit # Motor Port 0 MOTOR7 1 MOTOR6 2 MOTOR5 3 MOTOR4"},{"location":"setup/controllers/einsyrambo-skrminie3v2/","title":"Einsy RAMBo (main MCU) with SKR Mini E3 V2","text":"
Danger
This guide is an expert guide only and under construction.
Info
This modification is designed for the Prusa MK3/S/S+.
When printing fast, the TMC2130's on the Einsy RAMBo can get quite loud. The TMC2209's on the SKR Mini are much quieter and support denser microstepping.
First, unplug the 3MS steppers from the SKR Mini, and the XY steppers from the Einsy RAMBo. The motors will need to be switched due to different connector types between boards.
This table outlines the major wiring of this modification.
Einsy RAMBo SKR Mini E3 V2 Motor PSU+ POWER+ PSU- POWER- XM 3ms0 YM 3ms1 XM X YM Y"},{"location":"setup/controllers/einsyrambo-skrminie3v2/#configuration","title":"Configuration","text":"
Info
This section is under construction.
"},{"location":"setup/controllers/skrminie3v2/","title":"BTT SKR Mini E3 V2","text":"
Max filament units: 4
MCU Name: 3ms
"},{"location":"setup/controllers/skrminie3v2/#bom","title":"BOM","text":"Name Price Quantity Link Notes SKR Mini E3 V2 $34.99 1 Amazon Duponts $9.99 1 Amazon These wires are only sufficient to run steppers, not heaters 12V PSU $7.39 1 Amazon This PSU is only sufficient to run steppers, not heaters"},{"location":"setup/controllers/skrminie3v2/#wiring","title":"Wiring","text":"
Route the wires from the NEMA17's to the controller board. Follow this table to determine which port to plug the motors into:
Filament Unit # Motor Port 0 XM 1 YM 2 ZAM or ZBM 3 E0M
Now, grab your 12V PSU and two M-M duponts, one red and one black (M-M means that there is metal coming out of both ends of the cable). Plug the PSU into the wall, but don't plug the screw terminals into the PSU (the screw terminals have green)
Plug the red wire into the positive terminal of the screw termianls
Plug the black wire into the negative terminal of the screw terminals
Danger
These dupont cables are too thin to run much more than the stepper motors. If you run a heater or other power-intensive device off of the SKR board, the duponts and/or PSU can melt/catch fire. To reduce the risk of this, you can double up on the duponts or get thicker wires.
Following this image, choose either the DCIN or POWER input
Route the two wires inside closest to your chosen input
Using the markings on the board, plug the red wire into the positive terminal on the SKR
Using the markings on the board, plug the black wire into the negative terminal on the SKR
Verify all connections
Warning
If the wires are plugged into the wrong place, or swapped polarities, your SKR, Stepper motors, and/or PSU can be badly damaged.
Plug the PSU screw terminals into the PSU wire
If the SKR lights up, you wired it correctly!
Finally, plug the SKR into your Klipper host with the blue cable that came with it.
When your printer displays a Failed Unload message, pay attention to the Tx number it shows. For example, if it displays the message Failed Unload T0, it failed to unload the filament at T0. Follow these steps to recover the toolchange:
Detach the PTFE tube from the inlet of your printer's extruder (you may need to push down the lever on the 3MS extruder for that tool while doing this).
Manually pull the filament out of the printer's extruder.
If it is stuck, try one of the following:
Reload the filament until it is extruding out of the nozzle, then unload the filament quickly while pulling firmly.
Open your printer's extruder assembly, pull the filament through, and cut off the tip.
Also, see Skipping
Next, manually pull the filament all the way to where the filament is usually parked between toolchanges (before the Y-splitter).
Manually load the next filament. Check the console for a message like T0 -> T1 indicating which filament is next (in this case T1). It shoudl be loaded to the entry of the printer's extruder gears.
Resume your print.
Next, diagnose the problem based on these possible scenarios:
Filament never unloaded out of printer's extruder
This is a sign of poor tip shaping. The quick fix for this is to increase print temperatures. Also, see Skipping.
Filament unloaded out of printer's extruder, but stopped before filament sensor
This is a sign of your filament sensor causing excess friction on the filament, or your 3MS extruder tension too loose. For the 3MS tension too lose, simply rotate the tensioning screw on the 3MS extruder clockwise a couple rotations.
When your printer displays a Failed Load message, pay attention to the Tx number it shows. For example, if it displays the message Failed Load T1, it failed to load the filament at T1. Follow these steps to recover the toolchange:
Manually push the filament all the way to the inlet of your printer's extruder.
If your filament isn't able to load, the previous tool may not have completely unloaded. See Failed Unload for more information.
Resume your print.
Next, diagnose the problem based on these possible scenarios:
Previous filament didn't unload enough
Increase your unload_distance in MMMS_SETTINGS (3ms/settings.py). You can test different values by using SET_MMMS_SETTINGS at runtime. Example:
SET_MMMS_SETTINGS UNLOAD_DISTANCE=210\n
Filament didn't load enough
Increase your load_distance in MMMS_SETTINGS (3ms/settings.py). You can test different values by using SET_MMMS_SETTINGS at runtime. Example:
If during toolchanges, a failed toolchange false alarm occurs (print pauses even though toolchange was successful), follow this troubleshooting guide to fix it.
The main culprit for this issue is likely your fsensor_delay in 3ms/settings.cfg is too short. Short values will cause more false alarms, and long values will cause less. Generally, the default 2000ms is good for most setups, but if you are having false alarms, you will have to increase it. Example:
First, check if your printer's extruder is properly extruding. To check this, detach the PTFE tube from the inlet of your extruder, and manually load filament, using Klipper's controls for loading filament. If your printer's extruder is having trouble extruding plastic, you may have one of the following:
If the printer's extruder is working properly, and you're still having skipping, check the filament tips. If the tip has a long string on it, or has a thick blob at the end, your filament tips may be to blame. If you have stringy tips, decrease your nozzle temperature while printing. If you have blobby tips, increase your nozzle temperature while printing. Alternatively, you can purchase PTFE tubes with a larger ID to allow for less precise tips.
If your prints start to have gaps in the walls, you are likely experiencing underextrusion. Follow this troubleshooting guide to diagnose the issue and fix it.
If your extruder and hotend are working fine, the next likely cause of underextrusion is your 3MS rotation_distance is too high. There are two likely causes and solutions, based on where in the print the underextrusion occurs:
Whole print - 3MS motors working backwards from the extruder or not working at all
Follow the wiring section of Assembly.
Follow the first two steps of Stepper Setup.
Partially through print - 3MS motors not turning enough
Follow the last step of Stepper Setup.
"}]}
\ No newline at end of file
diff --git a/setup/assembly/index.html b/setup/assembly/index.html
index 45785220..95949ecc 100644
--- a/setup/assembly/index.html
+++ b/setup/assembly/index.html
@@ -821,6 +821,8 @@
+
+
@@ -927,6 +929,27 @@
+
+
+
+
+
+
+
If your printer is paused and displaying Failed Load or Failed Unload, follow this troubleshooting guide to diagnose the problem and fix it.
+
False Alarm
+
First, see False Alarm to ensure your filament sensor is properly configured and is being properly read by the 3MS macros.
+
Failed Unload
+
When your printer displays a Failed Unload message, pay attention to the Tx number it shows. For example, if it displays the message Failed Unload T0, it failed to unload the filament at T0. Follow these steps to recover the toolchange:
+
+
Detach the PTFE tube from the inlet of your printer's extruder (you may need to push down the lever on the 3MS extruder for that tool while doing this).
+
+
Manually pull the filament out of the printer's extruder.
+
If it is stuck, try one of the following:
+
+
Reload the filament until it is extruding out of the nozzle, then unload the filament quickly while pulling firmly.
+
Open your printer's extruder assembly, pull the filament through, and cut off the tip.
Next, manually pull the filament all the way to where the filament is usually parked between toolchanges (before the Y-splitter).
+
+
Manually load the next filament. Check the console for a message like T0 -> T1 indicating which filament is next (in this case T1). It shoudl be loaded to the entry of the printer's extruder gears.
+
Resume your print.
+
+
Next, diagnose the problem based on these possible scenarios:
+
+
+
Filament never unloaded out of printer's extruder
+
This is a sign of poor tip shaping. The quick fix for this is to increase print temperatures. Also, see Skipping.
+
+
+
Filament unloaded out of printer's extruder, but stopped before filament sensor
+
This is a sign of your filament sensor causing excess friction on the filament, or your 3MS extruder tension too loose. For the 3MS tension too lose, simply rotate the tensioning screw on the 3MS extruder clockwise a couple rotations.
+
+
+
Failed Load
+
When your printer displays a Failed Load message, pay attention to the Tx number it shows. For example, if it displays the message Failed Load T1, it failed to load the filament at T1. Follow these steps to recover the toolchange:
+
+
+
Manually push the filament all the way to the inlet of your printer's extruder.
+
If your filament isn't able to load, the previous tool may not have completely unloaded. See Failed Unload for more information.
+
+
+
Resume your print.
+
+
+
Next, diagnose the problem based on these possible scenarios:
+
+
+
Previous filament didn't unload enough
+
Increase your unload_distance in MMMS_SETTINGS (3ms/settings.py). You can test different values by using SET_MMMS_SETTINGS at runtime. Example:
+
SET_MMMS_SETTINGS UNLOAD_DISTANCE=210
+
+
+
+
Filament didn't load enough
+
Increase your load_distance in MMMS_SETTINGS (3ms/settings.py). You can test different values by using SET_MMMS_SETTINGS at runtime. Example:
+
SET_MMMS_SETTINGS LOAD_DISTANCE=220
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/troubleshooting/falsealarm/index.html b/troubleshooting/falsealarm/index.html
index 83aca579..aebb92ec 100644
--- a/troubleshooting/falsealarm/index.html
+++ b/troubleshooting/falsealarm/index.html
@@ -756,6 +756,8 @@
+
+
@@ -909,6 +911,27 @@
+
+
+
+
+
+
+