diff --git a/assets/images/slicer/slicer7.png b/assets/images/slicer/slicer7.png new file mode 100644 index 00000000..02f25959 Binary files /dev/null and b/assets/images/slicer/slicer7.png differ diff --git a/experimental/notip/index.html b/experimental/notip/index.html index f5b9e879..d5c5a570 100644 --- a/experimental/notip/index.html +++ b/experimental/notip/index.html @@ -1123,6 +1123,24 @@ + + +
  • + + + Unload/Load Speed + + + +
  • + +
  • + + + Temperature + + +
  • @@ -1269,6 +1287,24 @@ + + +
  • + + + Unload/Load Speed + + + +
  • + +
  • + + + Temperature + + +
  • @@ -1335,6 +1371,17 @@

    Disable Filament Ramming

    Disable filament ramming in Filament Settings -> Multimaterial -> Toolchange parameters with single extruder MM printers:

    +

    Unload/Load Speed

    +

    Next, change the Unloading speed at start and Unloading speed to 300 (faster is better here). Next, change the Loading speed at start and Loading speed to 300 and 100, respectively.

    +
    +What this does +

    The main idea behind toolchanges without tip shaping relies on the filament being unloaded too fast to form a blob. Setting the Unloading speed settings allows this. Next, loading the filament back can be generally optomized by increasing the Loading speed settings.

    +
    +

    +

    Temperature

    +

    If your filament has very long strings on the end of them after unloading without tip shaping (longer than 2cm), decrease your filament temperature.

    +

    If your filament tip has a nearly flat tip, increase your filament temperature.

    +

    The ideal filament tip has a pointy end and a small string (less than 5mm). When in doubt, it is recommended to aim for a slightly stringy tip over a flat tip.

    diff --git a/search/search_index.json b/search/search_index.json index 6f6a89e9..0cfbf17e 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"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

    "},{"location":"#inspiration","title":"Inspiration","text":"

    Info

    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:

    With that said, there are a few reasons why you might not want to/be able to use the 3MS:

    "},{"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:

    1. Tip shaping and filament unload is performed by the slicer
    2. The 3MS unloads T0 200mm at 4500mm/min (75mm/s)
    3. The 3MS desyncs T0 from the extruder
    4. The 3MS checks if the filament was successfully unloaded
    5. The 3MS syncs T1 with the extruder
    6. The 3MS loads T1 210mm at 4500mm/min
    7. The 3MS checks if the filament was successfully loaded
    8. 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!

    "},{"location":"#get-started","title":"Get Started","text":"

    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.

    "},{"location":"flowchart/","title":"Toolchange Flowchart","text":"

    This flowchart assumes a fsensor_delay of 2000ms.

    graph TD\n  A[T1] --> B[Toolchange T=1];\n  B[Toolchange T=1] --> C{Same tool?};\n  C --> |No| D{Previous filament loaded?};\n  C --> |Yes| E{Do nothing};\n  D --> |Yes| F[MMMS_UNLOAD];\n  F --> G[DESYNC_TOOL TOOL=0];\n  G --> H[G4 P2000];\n  H --> I[CHECK_FSENSOR V=0];\n  D --> |No| J[SYNC_TOOL TOOL=1];\n  I --> J;\n  J --> K[MMMS_LOAD];\n  K --> L[G4 P2000];\n  L --> M[CHECK_FSENSOR V=1];\n  M --> N[Save new previous extruder]
    "},{"location":"instructions/","title":"Instructions","text":""},{"location":"instructions/#master-instructions","title":"Master Instructions","text":"

    Due to the modularity of the 3MS, there are many ways to set it up. This guide attempts to encompass all supported ways of setting up the 3MS.

    "},{"location":"instructions/#basic-steps","title":"Basic Steps","text":"

    The basic steps this guide will follow are:

    1. Getting a BOM
    2. Assembling your 3MS
    3. Configuring your 3MS
    4. Stepper motor setup
    5. Slicer setup
    6. First print
    7. Troubleshooting
    8. Updating
    "},{"location":"instructions/#0-explanations","title":"0. Explanations","text":"

    Before starting the instructions, a basic understanding of how the 3MS works is recommended. There are two types of components in the 3MS:

    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":"
    1. Install Klipper firmware onto the MCU by following Firmware.
    2. Follow Installation to install the 3MS configuration.
    3. 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.

    "},{"location":"instructions/#5-slicer-setup","title":"5. Slicer setup","text":"

    Follow Slicer Setup to setup your slicer for the 3MS.

    "},{"location":"instructions/#6-first-print","title":"6. First print","text":"

    Follow First Print to create your first multimaterial print with the 3MS.

    "},{"location":"instructions/#7-troubleshooting","title":"7. Troubleshooting","text":"

    Check Troubleshooting to find guides to troubleshoot your 3MS.

    "},{"location":"instructions/#8-updating","title":"8. Updating","text":"

    To update the 3MS configuration, go to the Update Manager in Mainsail/Fluidd and refresh the updates.

    Next, find the \"mmms\" entry in the list. If there is an \"Update\" button next to it, click it and begin updating.

    After updating, in your terminal, run:

    sh ~/3MS/install.sh\n

    This will install the new 3MS configuration. Next, restart Klipper:

    Info

    It is important to restart the Klipper service, and not just run the RESTART command.

    Either run this command in your terminal or restart from Mainsail/Fluidd:

    TerminalMainsail/Fluidd
    sudo service klipper restart\n

    "},{"location":"configuration/","title":"Configuration","text":"

    This guide covers the configuration structure and options of the 3MS.

    "},{"location":"configuration/#maincfg","title":"main.cfg","text":"

    main.cfg is located in 3ms/main.cfg. It contains the following:

    "},{"location":"configuration/#settingscfg","title":"settings.cfg","text":"

    settings.cfg contains the settings the 3MS uses during toolchanges in macros.cfg. Further information is here.

    "},{"location":"configuration/#macroscfg","title":"macros.cfg","text":"

    macros.cfg contains the macros the 3MS uses during toolchanges. Further information is here.

    "},{"location":"configuration/#controllersxxxstepperscfg","title":"controllers/xxx/steppers.cfg","text":"

    steppers.cfg contains the MCU configuration for the 3MS. It contains the following:

    "},{"location":"configuration/#klipperscreenconf","title":"KlipperScreen.conf","text":"

    This contains the KlipperScreen 3MS menu configuration. For more information, see KlipperScreen.

    "},{"location":"configuration/fsensor/","title":"Filament Sensor","text":"

    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

    "},{"location":"configuration/fsensor/#configuration","title":"Configuration","text":"

    To configure your filament sensor with the 3MS, open 3ms/settings.cfg and change the following (assuming your filament sensor is named \"runout_sensor\"):

    BeforeAfter 3ms/settings.cfg
    fsensor_name: \"fsensor\"\n
    3ms/settings.cfg
    fsensor_name: \"runout_sensor\"\n
    "},{"location":"configuration/install/","title":"Installation","text":"

    Follow this guide to install the 3MS configuration and macros.

    "},{"location":"configuration/install/#clone-repository","title":"Clone Repository","text":"

    First, clone the 3MS repository:

    cd ~\ngit clone https://github.com/3DCoded/3MS\ncd 3MS\n
    "},{"location":"configuration/install/#install-script","title":"Install Script","text":"

    Run the install script:

    sh install.sh\n
    "},{"location":"configuration/install/#printercfg","title":"printer.cfg","text":"

    In your printer.cfg, add:

    printer.cfg
    [include 3ms/main.cfg]\n
    "},{"location":"configuration/install/#moonraker-update-manager","title":"Moonraker Update Manager","text":"

    To enable updates for the 3MS, add the following to your moonraker.conf:

    moonraker.conf
    # 3MS Update Manager\n[update_manager mmms]\ntype: git_repo\npath: ~/3MS\norigin: https://github.com/3DCoded/3MS.git\nprimary_branch: main\nis_system_service: False\ninstall_script: install.sh\n

    Warning

    When updating via Moonraker, the following files will be overwritten:

    If you have any changes in these files, they will be lost when updating.

    "},{"location":"configuration/install/#controller","title":"Controller","text":"

    In 3ms/main.cfg, edit the [include ./controllers/xxx/steppers.cfg] line, replacing xxx with the config name of your controller:

    Controller Name Config Name SKR Mini E3 V2 btt_skr_mini_e3_v2 BTT Octopus (main MCU) btt_octopus_main"},{"location":"configuration/install/#configure-mcu-id","title":"Configure MCU ID","text":"

    Finally, to configure the MCU ID you saved from Firmware, run in your terminal:

    cd ~ && cat mcu.txt\n

    Copy the path that is output. Now, in your 3ms/controllers/xxx/steppers.cfg, in the [mcu 3ms] section (towards the bottom), set the MCU ID.

    Example:

    BeforeAfter 3ms/controllers/xxx/steppers.cfg
    [mcu 3ms]\nserial: /dev/serial/by-id/<your-mcu-id>\n
    3ms/controllers/xxx/steppers.cfg
    [mcu 3ms]\nserial: /dev/serial/by-id/usb-Klipper_stm32f103xe_33FFD1054746333809650557-if00\n
    "},{"location":"configuration/klipperscreen/","title":"KlipperScreen","text":"

    The 3MS supports a KlipperScreen menu. To install it, add the following to your KlipperScreen.conf (located in the same folder as your printer.cfg):

    KlipperScreen.conf
    [include 3ms/KlipperScreen.conf]\n
    "},{"location":"configuration/macros/","title":"Macros","text":""},{"location":"configuration/macros/#3ms-settings","title":"3MS Settings","text":""},{"location":"configuration/macros/#mmms_settings","title":"MMMS_SETTINGS","text":"

    Stores the settings for the 3MS.

    Default Settings

    variable_load_distance: 210\nvariable_unload_distance: 200\nvariable_load_speed: 4500\nvairable_unload_speed: 4500\nvariable_fsensor_delay: 2000\nvariable_num_tools: 2\nvariable_step_size: 99\n

    Example Usage

    MMMS_SETTINGS\n
    "},{"location":"configuration/macros/#set_3ms_settings","title":"SET_3MS_SETTINGS","text":"

    Sets the configuration for the 3MS. Allows temporary customization of load and unload distances and speeds

    Example Usage

    SET_3MS_SETTINGS LOAD_DISTANCE=210 UNLOAD_DISTANCE=200 LOAD_SPEED=3500 UNLOAD_SPEED=5500 FSENSOR_DELAY=2500\n
    "},{"location":"configuration/macros/#get_3ms_settings","title":"GET_3MS_SETTINGS","text":"

    Dispalys the configuration for the 3MS.

    Example Usage

    GET_3MS_SETTINGS\n

    "},{"location":"configuration/macros/#filament-handling","title":"Filament Handling","text":""},{"location":"configuration/macros/#mmms_unload","title":"MMMS_UNLOAD","text":"

    Unloads filament by a specified distance and speed. If no distance/speed is specified, it uses the default unload distance/speed from MMMS_SETTINGS.

    Example Usage

    MMMS_UNLOAD DISTANCE=200 SPEED=5500\n
    "},{"location":"configuration/macros/#mmms_load","title":"MMMS_LOAD","text":"

    Loads filament by a specified distance and speed. If no distance/speed is specified, it uses the default load distance/speed from MMMS_SETTINGS.

    Example Usage

    MMMS_LOAD DISTANCE=210 SPEED=3500\n
    "},{"location":"configuration/macros/#check_fsensor","title":"CHECK_FSENSOR","text":"

    Checks the filament sensor state. Pauses the print if the sensor state does not match the expected value.

    Example Usage

    CHECK_FSENSOR V=1\n
    "},{"location":"configuration/macros/#tool-sync","title":"Tool Sync","text":""},{"location":"configuration/macros/#set_tool_sync","title":"SET_TOOL_SYNC","text":"

    Sets the sync state of a tool. Syncs or desyncs the specified tool to/from the extruder.

    Example Usage

    SET_TOOL_SYNC TOOL=0 SYNC=1\n
    "},{"location":"configuration/macros/#sync_tool","title":"SYNC_TOOL","text":"

    Syncs the specified tool and desyncs all other tools to/from the extruder.

    Example Usage

    SYNC_TOOL TOOL=0\n
    "},{"location":"configuration/macros/#desync_tool","title":"DESYNC_TOOL","text":"

    Desyncs the specified tool from the extruder.

    Example Usage

    DESYNC_TOOL TOOL=0\n
    "},{"location":"configuration/macros/#clear_tool","title":"CLEAR_TOOL","text":"

    Clears the current tool selection by setting it to -1.

    Example Usage

    CLEAR_TOOL\n
    "},{"location":"configuration/macros/#desync_all_tools","title":"DESYNC_ALL_TOOLS","text":"

    Desyncs all configured tools.

    Example Usage

    DESYNC_ALL_TOOLS\n
    "},{"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.

    Example Usage

    MMMS_START INITIAL_TOOL=0\n
    "},{"location":"configuration/macros/#mmms_end","title":"MMMS_END","text":"

    Ends the print by unloading the current tool. If filament is detected after unloading, the user is notified.

    Example Usage

    MMMS_END\n
    "},{"location":"configuration/macros/#tool-change","title":"Tool Change","text":""},{"location":"configuration/macros/#t0","title":"T0","text":"

    Changes to tool 0.

    Example Usage

    T0\n
    "},{"location":"configuration/macros/#t1","title":"T1","text":"

    Changes to tool 1.

    Example Usage

    T1\n
    "},{"location":"configuration/macros/#tx","title":"Tx","text":"

    Changes to a specified tool. Replace x with the tool number.

    Example Usage

    T2\nT3\n
    "},{"location":"configuration/steppers/","title":"Stepper Motors","text":"

    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:

    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>.

    Calculate <actual_extrude_distance> = <initial_mark_distance> - <next_mark_distance>

    In the steppers.cfg file (located in 3ms/controllers/xxx/steppers.cfg), locate the configuration section for the current extruder. Example:

    3ms/controllers/btt_skr_mini_e3_v2/steppers.cfg
    [extruder_stepper 3ms0]\nextruder: extruder\nstep_pin: 3ms: PB13\ndir_pin: !3ms: PB12\nenable_pin: !3ms: PB14\nmicrosteps: 16\nrotation_distance: 32.8450\n

    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/dualdrivetpu/","title":"Dual Drive 3MS Extruders for TPU","text":"

    The 3MS's existing single-drive extruders are prone to tangling with TPU during toolchanges. Dual drive 3MS extruders may fix this issue and allow for multimaterial printing with TPU.

    Info

    This page, and the features mentioned on it, are in develpment

    "},{"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.

    Info

    This page, and the features mentioned on it, are in develpment

    Development Status

    So far, the following work without tip shaping:

    "},{"location":"experimental/notip/#speed-benefits","title":"Speed Benefits","text":"

    Info

    This section is under construction.

    "},{"location":"experimental/notip/#should-tip-shaping-be-used","title":"Should Tip Shaping be Used?","text":"

    See Materials for information on whether or not tip shaping should be used for your filaments.

    "},{"location":"experimental/notip/#slicer-setup","title":"Slicer Setup","text":"

    Setup your slicer for no tip shaping as follows.

    "},{"location":"experimental/notip/#disable-filament-ramming","title":"Disable Filament Ramming","text":"

    Disable filament ramming in Filament Settings -> Multimaterial -> Toolchange parameters with single extruder MM printers:

    "},{"location":"experimental/nowipe/","title":"Filament Purging without Wipe Tower","text":"

    For printers with a dedicated purge bucket or similar system, wipe towers may not be necessary.

    Info

    This page, and the features mentioned on it, are in develpment

    Development Status

    So far, the following have been tested:

    The macros mentioned on this page are available in the nowipetower branch.

    "},{"location":"experimental/nowipe/#settings","title":"Settings","text":"

    A new PURGE_SETTINGS macro contains the following settings:

    "},{"location":"experimental/nowipe/#routine","title":"Routine","text":"

    The new PURGE macro runs the purge routine as follows:

    1. If enable == 1, continue
    2. Save current toolhead position
    3. Run start_macro
    4. Move to purge_x and purge_y at move_speed
    5. Purge provided purge_amount at extrude_speed
    6. Run end_macro
    7. Return to saved toolhead position
    "},{"location":"guides/materials/","title":"Materials","text":"

    Follow this guide to determine if your filament will work with the 3MS.

    "},{"location":"guides/materials/#materials-table","title":"Materials Table","text":"

    This table contains which filaments work in single mode and/or multimaterial mode with the 3MS.

    Filament Single Mode Multimaterial Mode Notes PLA Yes Yes PLA+ Yes Yes Silk PLA Yes No Matte PLA Yes No PETG Yes Yes TPU Untested No"},{"location":"guides/materials/#pla","title":"PLA(+)","text":"

    PLA/PLA+/PLA Pro, etc. filaments are very easy to print in multimaterial with the 3MS. They also support the experimental No Tip Shaping feature.

    "},{"location":"guides/materials/#silkmatte-pla","title":"Silk/Matte PLA","text":"

    Silk/Matte PLA filaments are slightly more difficult to print with or without the 3MS. They generally require tip shaping to work with the 3MS in multimaterial mode.

    "},{"location":"guides/materials/#petg","title":"PETG","text":"

    PETG filaments are easy to print in multimaterial with the 3MS. They will likely require tip shaping. Suggested settings options are provided below. Ideal settings for your setup will likely include a combination of the options.

    Tip Shaping Option 1Option 2 Setting Name Setting Value Nozzle Temperature 250\u00baC Loading speed at the start 19mm/s Loading speed 14mm/s Unloading speed at start 200mm/s Unloading speed 90mm/s Delay after unloading 4s # Cooling moves 3 Speed of first cooling move 1mm/s Speed of last cooling move 20mm/s Ramming settings Source: Prusa Forums Setting Name Setting Value Nozzle Temperature 250\u00baC Loading speed at the start 15mm/s Loading speed 14mm/s Unloading speed at start 120mm/s Unloading speed 20mm/s Delay after unloading 0s # Cooling moves 1 Speed of first cooling move 1mm/s Speed of last cooling move 15mm/s Ramming settings Source: Prusa Forums"},{"location":"guides/materials/#tpu","title":"TPU","text":"

    TPU filaments are very difficult to print with or without the 3MS. If your printer can reliably print TPU, you can likely use it with the 3MS in single mode. To use it in multimaterial mode and/or improve reliability, see the experimental Dual Drive 3MS Extruders for TPU feature.

    "},{"location":"guides/tipshaping/","title":"Tip Shaping Guidelines","text":"

    Follow this guide to get faster and more reliable toolchanges with your 3MS.

    "},{"location":"guides/tipshaping/#does-my-filament-need-tip-shaping","title":"Does My Filament Need Tip Shaping?","text":"

    If your filament is in this list, then it likely won't need tip shaping, and you can try out the experimental No Tip Shaping:

    If you filament wasn't in that list, continue reading this page.

    "},{"location":"guides/tipshaping/#blobby-tips","title":"Blobby Tips","text":"

    If your filament tip has a thicker tip after unloading, you can do two things:

    1. Print hotter
    2. Decrease cooling moves
    "},{"location":"guides/tipshaping/#stringy-tips","title":"Stringy Tips","text":"

    If your filament tip has a stringy tip after unloading, you can do two things:

    1. Print colder
    2. Increase cooling moves

    You may also be able to use the experimental No Tip Shaping.

    "},{"location":"guides/tipshaping/#hook-of-death","title":"Hook of Death","text":"

    If you filament tip can't unload out of your extruder and forms a hook shape, you may need to replace the PTFE tube between your printer's extruder and hotend. You may also want to follow the recommendations for Blobby tips.

    "},{"location":"setup/assembly/","title":"Assembly","text":"

    Follow this guide to assemble your 3MS.

    "},{"location":"setup/assembly/#printed-parts","title":"Printed Parts","text":"

    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.

    "},{"location":"setup/assembly/#mk8-assembly","title":"MK8 Assembly","text":"

    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.

    "},{"location":"setup/assembly/#wiring","title":"Wiring","text":"

    Follow one of the following guides based on your controller:

    "},{"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.

    "},{"location":"setup/bom/#controller-boms","title":"Controller BOMs","text":"

    Choose the BOM for your chosen controller from the list below:

    "},{"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.

    Info

    The following controller(s) can skip this guide:

    "},{"location":"setup/firmware/#create-firmwarebin","title":"Create firmware.bin","text":"

    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).

    "},{"location":"setup/firmware/#install-firmwarebin","title":"Install firmware.bin","text":"

    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.

    "},{"location":"setup/firmware/#get-mcu-id","title":"Get MCU ID","text":"

    In the terminal, run:

    ls /dev/serial/by-id/\n

    Example output:

    usb-Klipper_stm32f103xe_33FFD1054746333809650557-if00\nusb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3_xxx-if00\n

    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:

    cd ~ && echo \"<your-mcu-id>\" >> mcu.txt \n
    "},{"location":"setup/firstprint/","title":"First Print","text":"

    Follow this guide to begin your first multimaterial print. There are two main ways to prepare a model for multimaterial painting.

    "},{"location":"setup/firstprint/#method-1-multimaterial-painting","title":"Method 1: Multimaterial Painting","text":"

    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!

    Cmd+R OR Ctrl+R

    "},{"location":"setup/firstprint/#method-2-multimaterial-model","title":"Method 2: Multimaterial Model","text":"

    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!

    Cmd+R OR Ctrl+R

    "},{"location":"setup/firstprint/#wipe-tower-position","title":"Wipe Tower Position","text":"

    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.

    "},{"location":"setup/slicer/","title":"Slicer Setup","text":"

    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.

    "},{"location":"setup/slicer/#klipper-startend-g-code","title":"Klipper Start/End G-Code","text":"

    In your Klipper PRINT_START macro, add the following right before your purge line:

    MMMS_START INITIAL_TOOL={params.INITIAL_EXTRUDER}\n

    In your PRINT_END macro, add the following before the cooldown command is called:

    MMMS_END\n
    "},{"location":"setup/slicer/#slicer-start-g-code","title":"Slicer Start G-Code","text":"

    In your slicer's Start G-Code, add the following parameter to your PRINT_START:

    INITIAL_EXTRUDER=[initial_extruder]\n

    Info

    This is the last required part of slicer setup.

    "},{"location":"setup/slicer/#optional-klipper_estimator","title":"Optional: klipper_estimator","text":"

    If you use klipper_estimator and want the toolchange represented in the time estimate, time your toolchange, then change your Change filament G-Code:

    "},{"location":"setup/controllers/","title":"Controllers","text":"

    Follow this guide to determine which controller to use in your 3MS.

    "},{"location":"setup/controllers/#options","title":"Options","text":"

    The 3MS works on multiple different controllers.

    Info

    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):

    "},{"location":"setup/controllers/bttoctopusmain/","title":"BTT Octopus (main MCU)","text":"

    Warning

    This configuration may not work with the BTT Octopus Pro.

    Max filament units: 4

    MCU Name: main

    "},{"location":"setup/controllers/bttoctopusmain/#main-mcu","title":"main MCU","text":"

    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.

    "},{"location":"setup/controllers/bttoctopusmain/#bom","title":"BOM","text":"

    Per filament unit:

    1x TMC2209 ($7 each)

    "},{"location":"setup/controllers/bttoctopusmain/#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 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

    Warning

    This guide is under construction

    Info

    This modification is designed for the Prusa MK3/S/S+, and depends on this Klipper configuration.

    "},{"location":"setup/controllers/einsyrambo-skrminie3v2/#why","title":"Why?","text":"

    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.

    "},{"location":"setup/controllers/einsyrambo-skrminie3v2/#bom","title":"BOM","text":"

    Info

    This section is under construction.

    Name Price Quantity Link Notes PSU -> Einsy Cable $7.99 1 PartsBuilt3D Stepperonline NEMA17 $9.99 each Amazon 2 Replaces current XY motors"},{"location":"setup/controllers/einsyrambo-skrminie3v2/#wiring","title":"Wiring","text":"

    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":"

    In your printer.cfg, comment out these lines:

    printer.cfg
    #[include klipper-prusa-mk3s/mk3s/steppers.cfg]\n#[include klipper-prusa-mk3s/mk3s/tmc2130.cfg]\n

    Next, copy the contents of 3ms/controllers/einsy_rambo_with_skr_mini/xy-motors.cfg and ze-motors.cfg to klipper-prusa-mk3s/skr/xy.cfg, and klipper-prusa-mk3s/mk3s/ze.cfg, respectively.

    Add the following new lines:

    printer.cfg
    [include klipper-prusa-mk3s/skr/xy.cfg]\n[include klipper-prusa-mk3s/mk3s/ze.cfg]\n

    Restart Klipper.

    "},{"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)

    1. Plug the red wire into the positive terminal of the screw termianls
    2. 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.

    3. Following this image, choose either the DCIN or POWER input

    4. Route the two wires inside closest to your chosen input
    5. Using the markings on the board, plug the red wire into the positive terminal on the SKR
    6. Using the markings on the board, plug the black wire into the negative terminal on the SKR
    7. 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.

    8. 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.

    "},{"location":"troubleshooting/","title":"Troubleshooting","text":"

    If you are having trouble getting your 3MS to work properly, check if the problem you're facing is in this list:

    If it is not in this list, please open an issue on Github.

    "},{"location":"troubleshooting/failedloadunload/","title":"Failed Load/Unload","text":"

    If your printer is paused and displaying Please load or Please unload, follow this troubleshooting guide to diagnose the problem and fix it.

    "},{"location":"troubleshooting/failedloadunload/#false-alarm","title":"False Alarm","text":"

    First, see False Alarm to ensure your filament sensor is properly configured and is being properly read by the 3MS macros.

    "},{"location":"troubleshooting/failedloadunload/#failed-unload","title":"Failed Unload","text":"

    When your printer displays a Please unload message, pay attention to the Tx number it shows. For example, if it displays the message Please unload T0, it failed to unload the filament at T0. Follow these steps to recover the toolchange:

    1. 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).
    2. Manually pull the filament out of the printer's extruder.

      If it is stuck, try one of the following:

      Also, see Skipping

    3. Next, manually pull the filament all the way to where the filament is usually parked between toolchanges (before the Y-splitter).

    4. 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.
    5. Resume your print.

    Next, diagnose the problem based on these possible scenarios:

    "},{"location":"troubleshooting/failedloadunload/#failed-load","title":"Failed Load","text":"

    When your printer displays a Please load message, pay attention to the Tx number it shows. For example, if it displays the message Please load T1, it failed to load the filament at T1. Follow these steps to recover the toolchange:

    1. 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.

    2. Resume your print.

    Next, diagnose the problem based on these possible scenarios:

    "},{"location":"troubleshooting/falsealarm/","title":"Filament Sensor False Alarm","text":"

    If during toolchanges, a failed toolchange false alarm occurs (print pauses even though toolchange was successful), follow this troubleshooting guide to fix it.

    "},{"location":"troubleshooting/falsealarm/#fsensor_delay","title":"fsensor_delay","text":"

    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:

    BeforeAfter 3ms/settings.cfg
    fsensor_delay: 2000\n
    3ms/settings.cfg
    fsensor_delay: 3000\n
    "},{"location":"troubleshooting/skipping/","title":"Motor Skipping","text":"

    If any of your extruder motors are skipping while using the 3MS, follow this troubleshooting guide to diagnose the issue and fix it.

    "},{"location":"troubleshooting/skipping/#printers-extruder","title":"Printer's Extruder","text":"

    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:

    "},{"location":"troubleshooting/skipping/#3ms-extruder","title":"3MS Extruder","text":"

    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.

    "},{"location":"troubleshooting/underextrusion/","title":"Underextrusion","text":"

    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.

    "},{"location":"troubleshooting/underextrusion/#extruderhotend-issues","title":"Extruder/Hotend Issues","text":"

    First, try the solutions in this article in case there are any issues with your printer's extruder/hotend.

    "},{"location":"troubleshooting/underextrusion/#3ms-rotation_distance","title":"3MS rotation_distance","text":"

    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:

    "}]} \ 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

    "},{"location":"#inspiration","title":"Inspiration","text":"

    Info

    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:

    With that said, there are a few reasons why you might not want to/be able to use the 3MS:

    "},{"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:

    1. Tip shaping and filament unload is performed by the slicer
    2. The 3MS unloads T0 200mm at 4500mm/min (75mm/s)
    3. The 3MS desyncs T0 from the extruder
    4. The 3MS checks if the filament was successfully unloaded
    5. The 3MS syncs T1 with the extruder
    6. The 3MS loads T1 210mm at 4500mm/min
    7. The 3MS checks if the filament was successfully loaded
    8. 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!

    "},{"location":"#get-started","title":"Get Started","text":"

    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.

    "},{"location":"flowchart/","title":"Toolchange Flowchart","text":"

    This flowchart assumes a fsensor_delay of 2000ms.

    graph TD\n  A[T1] --> B[Toolchange T=1];\n  B[Toolchange T=1] --> C{Same tool?};\n  C --> |No| D{Previous filament loaded?};\n  C --> |Yes| E{Do nothing};\n  D --> |Yes| F[MMMS_UNLOAD];\n  F --> G[DESYNC_TOOL TOOL=0];\n  G --> H[G4 P2000];\n  H --> I[CHECK_FSENSOR V=0];\n  D --> |No| J[SYNC_TOOL TOOL=1];\n  I --> J;\n  J --> K[MMMS_LOAD];\n  K --> L[G4 P2000];\n  L --> M[CHECK_FSENSOR V=1];\n  M --> N[Save new previous extruder]
    "},{"location":"instructions/","title":"Instructions","text":""},{"location":"instructions/#master-instructions","title":"Master Instructions","text":"

    Due to the modularity of the 3MS, there are many ways to set it up. This guide attempts to encompass all supported ways of setting up the 3MS.

    "},{"location":"instructions/#basic-steps","title":"Basic Steps","text":"

    The basic steps this guide will follow are:

    1. Getting a BOM
    2. Assembling your 3MS
    3. Configuring your 3MS
    4. Stepper motor setup
    5. Slicer setup
    6. First print
    7. Troubleshooting
    8. Updating
    "},{"location":"instructions/#0-explanations","title":"0. Explanations","text":"

    Before starting the instructions, a basic understanding of how the 3MS works is recommended. There are two types of components in the 3MS:

    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":"
    1. Install Klipper firmware onto the MCU by following Firmware.
    2. Follow Installation to install the 3MS configuration.
    3. 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.

    "},{"location":"instructions/#5-slicer-setup","title":"5. Slicer setup","text":"

    Follow Slicer Setup to setup your slicer for the 3MS.

    "},{"location":"instructions/#6-first-print","title":"6. First print","text":"

    Follow First Print to create your first multimaterial print with the 3MS.

    "},{"location":"instructions/#7-troubleshooting","title":"7. Troubleshooting","text":"

    Check Troubleshooting to find guides to troubleshoot your 3MS.

    "},{"location":"instructions/#8-updating","title":"8. Updating","text":"

    To update the 3MS configuration, go to the Update Manager in Mainsail/Fluidd and refresh the updates.

    Next, find the \"mmms\" entry in the list. If there is an \"Update\" button next to it, click it and begin updating.

    After updating, in your terminal, run:

    sh ~/3MS/install.sh\n

    This will install the new 3MS configuration. Next, restart Klipper:

    Info

    It is important to restart the Klipper service, and not just run the RESTART command.

    Either run this command in your terminal or restart from Mainsail/Fluidd:

    TerminalMainsail/Fluidd
    sudo service klipper restart\n

    "},{"location":"configuration/","title":"Configuration","text":"

    This guide covers the configuration structure and options of the 3MS.

    "},{"location":"configuration/#maincfg","title":"main.cfg","text":"

    main.cfg is located in 3ms/main.cfg. It contains the following:

    "},{"location":"configuration/#settingscfg","title":"settings.cfg","text":"

    settings.cfg contains the settings the 3MS uses during toolchanges in macros.cfg. Further information is here.

    "},{"location":"configuration/#macroscfg","title":"macros.cfg","text":"

    macros.cfg contains the macros the 3MS uses during toolchanges. Further information is here.

    "},{"location":"configuration/#controllersxxxstepperscfg","title":"controllers/xxx/steppers.cfg","text":"

    steppers.cfg contains the MCU configuration for the 3MS. It contains the following:

    "},{"location":"configuration/#klipperscreenconf","title":"KlipperScreen.conf","text":"

    This contains the KlipperScreen 3MS menu configuration. For more information, see KlipperScreen.

    "},{"location":"configuration/fsensor/","title":"Filament Sensor","text":"

    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

    "},{"location":"configuration/fsensor/#configuration","title":"Configuration","text":"

    To configure your filament sensor with the 3MS, open 3ms/settings.cfg and change the following (assuming your filament sensor is named \"runout_sensor\"):

    BeforeAfter 3ms/settings.cfg
    fsensor_name: \"fsensor\"\n
    3ms/settings.cfg
    fsensor_name: \"runout_sensor\"\n
    "},{"location":"configuration/install/","title":"Installation","text":"

    Follow this guide to install the 3MS configuration and macros.

    "},{"location":"configuration/install/#clone-repository","title":"Clone Repository","text":"

    First, clone the 3MS repository:

    cd ~\ngit clone https://github.com/3DCoded/3MS\ncd 3MS\n
    "},{"location":"configuration/install/#install-script","title":"Install Script","text":"

    Run the install script:

    sh install.sh\n
    "},{"location":"configuration/install/#printercfg","title":"printer.cfg","text":"

    In your printer.cfg, add:

    printer.cfg
    [include 3ms/main.cfg]\n
    "},{"location":"configuration/install/#moonraker-update-manager","title":"Moonraker Update Manager","text":"

    To enable updates for the 3MS, add the following to your moonraker.conf:

    moonraker.conf
    # 3MS Update Manager\n[update_manager mmms]\ntype: git_repo\npath: ~/3MS\norigin: https://github.com/3DCoded/3MS.git\nprimary_branch: main\nis_system_service: False\ninstall_script: install.sh\n

    Warning

    When updating via Moonraker, the following files will be overwritten:

    If you have any changes in these files, they will be lost when updating.

    "},{"location":"configuration/install/#controller","title":"Controller","text":"

    In 3ms/main.cfg, edit the [include ./controllers/xxx/steppers.cfg] line, replacing xxx with the config name of your controller:

    Controller Name Config Name SKR Mini E3 V2 btt_skr_mini_e3_v2 BTT Octopus (main MCU) btt_octopus_main"},{"location":"configuration/install/#configure-mcu-id","title":"Configure MCU ID","text":"

    Finally, to configure the MCU ID you saved from Firmware, run in your terminal:

    cd ~ && cat mcu.txt\n

    Copy the path that is output. Now, in your 3ms/controllers/xxx/steppers.cfg, in the [mcu 3ms] section (towards the bottom), set the MCU ID.

    Example:

    BeforeAfter 3ms/controllers/xxx/steppers.cfg
    [mcu 3ms]\nserial: /dev/serial/by-id/<your-mcu-id>\n
    3ms/controllers/xxx/steppers.cfg
    [mcu 3ms]\nserial: /dev/serial/by-id/usb-Klipper_stm32f103xe_33FFD1054746333809650557-if00\n
    "},{"location":"configuration/klipperscreen/","title":"KlipperScreen","text":"

    The 3MS supports a KlipperScreen menu. To install it, add the following to your KlipperScreen.conf (located in the same folder as your printer.cfg):

    KlipperScreen.conf
    [include 3ms/KlipperScreen.conf]\n
    "},{"location":"configuration/macros/","title":"Macros","text":""},{"location":"configuration/macros/#3ms-settings","title":"3MS Settings","text":""},{"location":"configuration/macros/#mmms_settings","title":"MMMS_SETTINGS","text":"

    Stores the settings for the 3MS.

    Default Settings

    variable_load_distance: 210\nvariable_unload_distance: 200\nvariable_load_speed: 4500\nvairable_unload_speed: 4500\nvariable_fsensor_delay: 2000\nvariable_num_tools: 2\nvariable_step_size: 99\n

    Example Usage

    MMMS_SETTINGS\n
    "},{"location":"configuration/macros/#set_3ms_settings","title":"SET_3MS_SETTINGS","text":"

    Sets the configuration for the 3MS. Allows temporary customization of load and unload distances and speeds

    Example Usage

    SET_3MS_SETTINGS LOAD_DISTANCE=210 UNLOAD_DISTANCE=200 LOAD_SPEED=3500 UNLOAD_SPEED=5500 FSENSOR_DELAY=2500\n
    "},{"location":"configuration/macros/#get_3ms_settings","title":"GET_3MS_SETTINGS","text":"

    Dispalys the configuration for the 3MS.

    Example Usage

    GET_3MS_SETTINGS\n

    "},{"location":"configuration/macros/#filament-handling","title":"Filament Handling","text":""},{"location":"configuration/macros/#mmms_unload","title":"MMMS_UNLOAD","text":"

    Unloads filament by a specified distance and speed. If no distance/speed is specified, it uses the default unload distance/speed from MMMS_SETTINGS.

    Example Usage

    MMMS_UNLOAD DISTANCE=200 SPEED=5500\n
    "},{"location":"configuration/macros/#mmms_load","title":"MMMS_LOAD","text":"

    Loads filament by a specified distance and speed. If no distance/speed is specified, it uses the default load distance/speed from MMMS_SETTINGS.

    Example Usage

    MMMS_LOAD DISTANCE=210 SPEED=3500\n
    "},{"location":"configuration/macros/#check_fsensor","title":"CHECK_FSENSOR","text":"

    Checks the filament sensor state. Pauses the print if the sensor state does not match the expected value.

    Example Usage

    CHECK_FSENSOR V=1\n
    "},{"location":"configuration/macros/#tool-sync","title":"Tool Sync","text":""},{"location":"configuration/macros/#set_tool_sync","title":"SET_TOOL_SYNC","text":"

    Sets the sync state of a tool. Syncs or desyncs the specified tool to/from the extruder.

    Example Usage

    SET_TOOL_SYNC TOOL=0 SYNC=1\n
    "},{"location":"configuration/macros/#sync_tool","title":"SYNC_TOOL","text":"

    Syncs the specified tool and desyncs all other tools to/from the extruder.

    Example Usage

    SYNC_TOOL TOOL=0\n
    "},{"location":"configuration/macros/#desync_tool","title":"DESYNC_TOOL","text":"

    Desyncs the specified tool from the extruder.

    Example Usage

    DESYNC_TOOL TOOL=0\n
    "},{"location":"configuration/macros/#clear_tool","title":"CLEAR_TOOL","text":"

    Clears the current tool selection by setting it to -1.

    Example Usage

    CLEAR_TOOL\n
    "},{"location":"configuration/macros/#desync_all_tools","title":"DESYNC_ALL_TOOLS","text":"

    Desyncs all configured tools.

    Example Usage

    DESYNC_ALL_TOOLS\n
    "},{"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.

    Example Usage

    MMMS_START INITIAL_TOOL=0\n
    "},{"location":"configuration/macros/#mmms_end","title":"MMMS_END","text":"

    Ends the print by unloading the current tool. If filament is detected after unloading, the user is notified.

    Example Usage

    MMMS_END\n
    "},{"location":"configuration/macros/#tool-change","title":"Tool Change","text":""},{"location":"configuration/macros/#t0","title":"T0","text":"

    Changes to tool 0.

    Example Usage

    T0\n
    "},{"location":"configuration/macros/#t1","title":"T1","text":"

    Changes to tool 1.

    Example Usage

    T1\n
    "},{"location":"configuration/macros/#tx","title":"Tx","text":"

    Changes to a specified tool. Replace x with the tool number.

    Example Usage

    T2\nT3\n
    "},{"location":"configuration/steppers/","title":"Stepper Motors","text":"

    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:

    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>.

    Calculate <actual_extrude_distance> = <initial_mark_distance> - <next_mark_distance>

    In the steppers.cfg file (located in 3ms/controllers/xxx/steppers.cfg), locate the configuration section for the current extruder. Example:

    3ms/controllers/btt_skr_mini_e3_v2/steppers.cfg
    [extruder_stepper 3ms0]\nextruder: extruder\nstep_pin: 3ms: PB13\ndir_pin: !3ms: PB12\nenable_pin: !3ms: PB14\nmicrosteps: 16\nrotation_distance: 32.8450\n

    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/dualdrivetpu/","title":"Dual Drive 3MS Extruders for TPU","text":"

    The 3MS's existing single-drive extruders are prone to tangling with TPU during toolchanges. Dual drive 3MS extruders may fix this issue and allow for multimaterial printing with TPU.

    Info

    This page, and the features mentioned on it, are in develpment

    "},{"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.

    Info

    This page, and the features mentioned on it, are in develpment

    Development Status

    So far, the following work without tip shaping:

    "},{"location":"experimental/notip/#speed-benefits","title":"Speed Benefits","text":"

    Info

    This section is under construction.

    "},{"location":"experimental/notip/#should-tip-shaping-be-used","title":"Should Tip Shaping be Used?","text":"

    See Materials for information on whether or not tip shaping should be used for your filaments.

    "},{"location":"experimental/notip/#slicer-setup","title":"Slicer Setup","text":"

    Setup your slicer for no tip shaping as follows.

    "},{"location":"experimental/notip/#disable-filament-ramming","title":"Disable Filament Ramming","text":"

    Disable filament ramming in Filament Settings -> Multimaterial -> Toolchange parameters with single extruder MM printers:

    "},{"location":"experimental/notip/#unloadload-speed","title":"Unload/Load Speed","text":"

    Next, change the Unloading speed at start and Unloading speed to 300 (faster is better here). Next, change the Loading speed at start and Loading speed to 300 and 100, respectively.

    What this does

    The main idea behind toolchanges without tip shaping relies on the filament being unloaded too fast to form a blob. Setting the Unloading speed settings allows this. Next, loading the filament back can be generally optomized by increasing the Loading speed settings.

    "},{"location":"experimental/notip/#temperature","title":"Temperature","text":"

    If your filament has very long strings on the end of them after unloading without tip shaping (longer than 2cm), decrease your filament temperature.

    If your filament tip has a nearly flat tip, increase your filament temperature.

    The ideal filament tip has a pointy end and a small string (less than 5mm). When in doubt, it is recommended to aim for a slightly stringy tip over a flat tip.

    "},{"location":"experimental/nowipe/","title":"Filament Purging without Wipe Tower","text":"

    For printers with a dedicated purge bucket or similar system, wipe towers may not be necessary.

    Info

    This page, and the features mentioned on it, are in develpment

    Development Status

    So far, the following have been tested:

    The macros mentioned on this page are available in the nowipetower branch.

    "},{"location":"experimental/nowipe/#settings","title":"Settings","text":"

    A new PURGE_SETTINGS macro contains the following settings:

    "},{"location":"experimental/nowipe/#routine","title":"Routine","text":"

    The new PURGE macro runs the purge routine as follows:

    1. If enable == 1, continue
    2. Save current toolhead position
    3. Run start_macro
    4. Move to purge_x and purge_y at move_speed
    5. Purge provided purge_amount at extrude_speed
    6. Run end_macro
    7. Return to saved toolhead position
    "},{"location":"guides/materials/","title":"Materials","text":"

    Follow this guide to determine if your filament will work with the 3MS.

    "},{"location":"guides/materials/#materials-table","title":"Materials Table","text":"

    This table contains which filaments work in single mode and/or multimaterial mode with the 3MS.

    Filament Single Mode Multimaterial Mode Notes PLA Yes Yes PLA+ Yes Yes Silk PLA Yes No Matte PLA Yes No PETG Yes Yes TPU Untested No"},{"location":"guides/materials/#pla","title":"PLA(+)","text":"

    PLA/PLA+/PLA Pro, etc. filaments are very easy to print in multimaterial with the 3MS. They also support the experimental No Tip Shaping feature.

    "},{"location":"guides/materials/#silkmatte-pla","title":"Silk/Matte PLA","text":"

    Silk/Matte PLA filaments are slightly more difficult to print with or without the 3MS. They generally require tip shaping to work with the 3MS in multimaterial mode.

    "},{"location":"guides/materials/#petg","title":"PETG","text":"

    PETG filaments are easy to print in multimaterial with the 3MS. They will likely require tip shaping. Suggested settings options are provided below. Ideal settings for your setup will likely include a combination of the options.

    Tip Shaping Option 1Option 2 Setting Name Setting Value Nozzle Temperature 250\u00baC Loading speed at the start 19mm/s Loading speed 14mm/s Unloading speed at start 200mm/s Unloading speed 90mm/s Delay after unloading 4s # Cooling moves 3 Speed of first cooling move 1mm/s Speed of last cooling move 20mm/s Ramming settings Source: Prusa Forums Setting Name Setting Value Nozzle Temperature 250\u00baC Loading speed at the start 15mm/s Loading speed 14mm/s Unloading speed at start 120mm/s Unloading speed 20mm/s Delay after unloading 0s # Cooling moves 1 Speed of first cooling move 1mm/s Speed of last cooling move 15mm/s Ramming settings Source: Prusa Forums"},{"location":"guides/materials/#tpu","title":"TPU","text":"

    TPU filaments are very difficult to print with or without the 3MS. If your printer can reliably print TPU, you can likely use it with the 3MS in single mode. To use it in multimaterial mode and/or improve reliability, see the experimental Dual Drive 3MS Extruders for TPU feature.

    "},{"location":"guides/tipshaping/","title":"Tip Shaping Guidelines","text":"

    Follow this guide to get faster and more reliable toolchanges with your 3MS.

    "},{"location":"guides/tipshaping/#does-my-filament-need-tip-shaping","title":"Does My Filament Need Tip Shaping?","text":"

    If your filament is in this list, then it likely won't need tip shaping, and you can try out the experimental No Tip Shaping:

    If you filament wasn't in that list, continue reading this page.

    "},{"location":"guides/tipshaping/#blobby-tips","title":"Blobby Tips","text":"

    If your filament tip has a thicker tip after unloading, you can do two things:

    1. Print hotter
    2. Decrease cooling moves
    "},{"location":"guides/tipshaping/#stringy-tips","title":"Stringy Tips","text":"

    If your filament tip has a stringy tip after unloading, you can do two things:

    1. Print colder
    2. Increase cooling moves

    You may also be able to use the experimental No Tip Shaping.

    "},{"location":"guides/tipshaping/#hook-of-death","title":"Hook of Death","text":"

    If you filament tip can't unload out of your extruder and forms a hook shape, you may need to replace the PTFE tube between your printer's extruder and hotend. You may also want to follow the recommendations for Blobby tips.

    "},{"location":"setup/assembly/","title":"Assembly","text":"

    Follow this guide to assemble your 3MS.

    "},{"location":"setup/assembly/#printed-parts","title":"Printed Parts","text":"

    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.

    "},{"location":"setup/assembly/#mk8-assembly","title":"MK8 Assembly","text":"

    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.

    "},{"location":"setup/assembly/#wiring","title":"Wiring","text":"

    Follow one of the following guides based on your controller:

    "},{"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.

    "},{"location":"setup/bom/#controller-boms","title":"Controller BOMs","text":"

    Choose the BOM for your chosen controller from the list below:

    "},{"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.

    Info

    The following controller(s) can skip this guide:

    "},{"location":"setup/firmware/#create-firmwarebin","title":"Create firmware.bin","text":"

    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).

    "},{"location":"setup/firmware/#install-firmwarebin","title":"Install firmware.bin","text":"

    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.

    "},{"location":"setup/firmware/#get-mcu-id","title":"Get MCU ID","text":"

    In the terminal, run:

    ls /dev/serial/by-id/\n

    Example output:

    usb-Klipper_stm32f103xe_33FFD1054746333809650557-if00\nusb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3_xxx-if00\n

    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:

    cd ~ && echo \"<your-mcu-id>\" >> mcu.txt \n
    "},{"location":"setup/firstprint/","title":"First Print","text":"

    Follow this guide to begin your first multimaterial print. There are two main ways to prepare a model for multimaterial painting.

    "},{"location":"setup/firstprint/#method-1-multimaterial-painting","title":"Method 1: Multimaterial Painting","text":"

    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!

    Cmd+R OR Ctrl+R

    "},{"location":"setup/firstprint/#method-2-multimaterial-model","title":"Method 2: Multimaterial Model","text":"

    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!

    Cmd+R OR Ctrl+R

    "},{"location":"setup/firstprint/#wipe-tower-position","title":"Wipe Tower Position","text":"

    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.

    "},{"location":"setup/slicer/","title":"Slicer Setup","text":"

    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.

    "},{"location":"setup/slicer/#klipper-startend-g-code","title":"Klipper Start/End G-Code","text":"

    In your Klipper PRINT_START macro, add the following right before your purge line:

    MMMS_START INITIAL_TOOL={params.INITIAL_EXTRUDER}\n

    In your PRINT_END macro, add the following before the cooldown command is called:

    MMMS_END\n
    "},{"location":"setup/slicer/#slicer-start-g-code","title":"Slicer Start G-Code","text":"

    In your slicer's Start G-Code, add the following parameter to your PRINT_START:

    INITIAL_EXTRUDER=[initial_extruder]\n

    Info

    This is the last required part of slicer setup.

    "},{"location":"setup/slicer/#optional-klipper_estimator","title":"Optional: klipper_estimator","text":"

    If you use klipper_estimator and want the toolchange represented in the time estimate, time your toolchange, then change your Change filament G-Code:

    "},{"location":"setup/controllers/","title":"Controllers","text":"

    Follow this guide to determine which controller to use in your 3MS.

    "},{"location":"setup/controllers/#options","title":"Options","text":"

    The 3MS works on multiple different controllers.

    Info

    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):

    "},{"location":"setup/controllers/bttoctopusmain/","title":"BTT Octopus (main MCU)","text":"

    Warning

    This configuration may not work with the BTT Octopus Pro.

    Max filament units: 4

    MCU Name: main

    "},{"location":"setup/controllers/bttoctopusmain/#main-mcu","title":"main MCU","text":"

    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.

    "},{"location":"setup/controllers/bttoctopusmain/#bom","title":"BOM","text":"

    Per filament unit:

    1x TMC2209 ($7 each)

    "},{"location":"setup/controllers/bttoctopusmain/#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 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

    Warning

    This guide is under construction

    Info

    This modification is designed for the Prusa MK3/S/S+, and depends on this Klipper configuration.

    "},{"location":"setup/controllers/einsyrambo-skrminie3v2/#why","title":"Why?","text":"

    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.

    "},{"location":"setup/controllers/einsyrambo-skrminie3v2/#bom","title":"BOM","text":"

    Info

    This section is under construction.

    Name Price Quantity Link Notes PSU -> Einsy Cable $7.99 1 PartsBuilt3D Stepperonline NEMA17 $9.99 each Amazon 2 Replaces current XY motors"},{"location":"setup/controllers/einsyrambo-skrminie3v2/#wiring","title":"Wiring","text":"

    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":"

    In your printer.cfg, comment out these lines:

    printer.cfg
    #[include klipper-prusa-mk3s/mk3s/steppers.cfg]\n#[include klipper-prusa-mk3s/mk3s/tmc2130.cfg]\n

    Next, copy the contents of 3ms/controllers/einsy_rambo_with_skr_mini/xy-motors.cfg and ze-motors.cfg to klipper-prusa-mk3s/skr/xy.cfg, and klipper-prusa-mk3s/mk3s/ze.cfg, respectively.

    Add the following new lines:

    printer.cfg
    [include klipper-prusa-mk3s/skr/xy.cfg]\n[include klipper-prusa-mk3s/mk3s/ze.cfg]\n

    Restart Klipper.

    "},{"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)

    1. Plug the red wire into the positive terminal of the screw termianls
    2. 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.

    3. Following this image, choose either the DCIN or POWER input

    4. Route the two wires inside closest to your chosen input
    5. Using the markings on the board, plug the red wire into the positive terminal on the SKR
    6. Using the markings on the board, plug the black wire into the negative terminal on the SKR
    7. 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.

    8. 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.

    "},{"location":"troubleshooting/","title":"Troubleshooting","text":"

    If you are having trouble getting your 3MS to work properly, check if the problem you're facing is in this list:

    If it is not in this list, please open an issue on Github.

    "},{"location":"troubleshooting/failedloadunload/","title":"Failed Load/Unload","text":"

    If your printer is paused and displaying Please load or Please unload, follow this troubleshooting guide to diagnose the problem and fix it.

    "},{"location":"troubleshooting/failedloadunload/#false-alarm","title":"False Alarm","text":"

    First, see False Alarm to ensure your filament sensor is properly configured and is being properly read by the 3MS macros.

    "},{"location":"troubleshooting/failedloadunload/#failed-unload","title":"Failed Unload","text":"

    When your printer displays a Please unload message, pay attention to the Tx number it shows. For example, if it displays the message Please unload T0, it failed to unload the filament at T0. Follow these steps to recover the toolchange:

    1. 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).
    2. Manually pull the filament out of the printer's extruder.

      If it is stuck, try one of the following:

      Also, see Skipping

    3. Next, manually pull the filament all the way to where the filament is usually parked between toolchanges (before the Y-splitter).

    4. 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.
    5. Resume your print.

    Next, diagnose the problem based on these possible scenarios:

    "},{"location":"troubleshooting/failedloadunload/#failed-load","title":"Failed Load","text":"

    When your printer displays a Please load message, pay attention to the Tx number it shows. For example, if it displays the message Please load T1, it failed to load the filament at T1. Follow these steps to recover the toolchange:

    1. 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.

    2. Resume your print.

    Next, diagnose the problem based on these possible scenarios:

    "},{"location":"troubleshooting/falsealarm/","title":"Filament Sensor False Alarm","text":"

    If during toolchanges, a failed toolchange false alarm occurs (print pauses even though toolchange was successful), follow this troubleshooting guide to fix it.

    "},{"location":"troubleshooting/falsealarm/#fsensor_delay","title":"fsensor_delay","text":"

    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:

    BeforeAfter 3ms/settings.cfg
    fsensor_delay: 2000\n
    3ms/settings.cfg
    fsensor_delay: 3000\n
    "},{"location":"troubleshooting/skipping/","title":"Motor Skipping","text":"

    If any of your extruder motors are skipping while using the 3MS, follow this troubleshooting guide to diagnose the issue and fix it.

    "},{"location":"troubleshooting/skipping/#printers-extruder","title":"Printer's Extruder","text":"

    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:

    "},{"location":"troubleshooting/skipping/#3ms-extruder","title":"3MS Extruder","text":"

    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.

    "},{"location":"troubleshooting/underextrusion/","title":"Underextrusion","text":"

    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.

    "},{"location":"troubleshooting/underextrusion/#extruderhotend-issues","title":"Extruder/Hotend Issues","text":"

    First, try the solutions in this article in case there are any issues with your printer's extruder/hotend.

    "},{"location":"troubleshooting/underextrusion/#3ms-rotation_distance","title":"3MS rotation_distance","text":"

    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:

    "}]} \ No newline at end of file