Skip to content

ArmoredTurtle/BoxTurtle

Repository files navigation

BoxTurtle V1.0

BoxTurtle Automated Filament Changer (requires AFC-Klipper-Add-On (Beta))

BT_Render Join me on Discord

BoxTurtle is exactly what it appears to be — an open source AMS style filament changer for Klipper machines. BoxTurtle requires the AFC-Klipper Add-On (found here). The goal of BoxTurtle is to deliver a user experience as close to an AMS as possible in vanilla Klipper. i.e. an "AMS" for any klipperized printer regardless of form factor but VORON Design printers in particular.

If you appreciate the work we are doing, you can support us here.

How it works

BoxTurtle is an automated, lane-based filament changing system, also known by some as a "Type B MMU." Each lane is equipped with its own dedicated motor that moves filament to and from the tool head independently, eliminating the need for a selector cart or servos.

To accommodate any differences in rotation distance between the extruder in the tool head and the lane motors, BoxTurtle uses a toolhead buffer, like TurtleNeck by ArmoredTurtle. This system is "bufferless," meaning no filament boxes (no spaghetti boxes) are required, similar to the AMS. Each lane features an independent respooler equipped with a brushed motor, which helps rewind the spool and assists the lane motor in feeding the filament smoothly. This prevents issues like spool tangling or "bucking."

For precise PWM control of the brushed motors, BoxTurtle relies on a custom MCU, AFC-lite, developed by Isik's Tech @xbst

Enclosure

The enclosure option for box turtle has been moved to it's own repository.

Manual

Armored Turtle's project manuals are hosted here. There is no PDF, this is intended to make the build experience as easy as possible. BoxTurtle Assembly Manual

Printed Parts

If you purchased a kit, all of the parts you need to print are located in the Base_Build folder under STLs on this repository. There is also a web-based configurator available for easy identification and download of what STLs to print outside of a base kit build.

This is NOT a VORON Design project, we strongly recommend that you run a profile out specific to BoxTurtle. Voron parts profiles are not recommended.

There is a calibration print that you may like to print before getting started here.

Wiring

BoxTurtle_AFC-Lite_Pinout

Refer to BT_Wiring/BoxTurtle_Wiring.xlsx or BT_Wiring/BoxTurtle-Wiring.md for recommended wire lengths for each lane.

PTFE sizes/lengths

Component Outer Diameter Inner Diameter Length Notes
Feeders to Trigger 4mm 3mm 50mm Quantity 4 ; use PTFE cutter jig
Trigger to Extruder 4mm 3mm 80mm Quantity 4 ; use PTFE cutter jig
Extruder to Hub (Outer lanes) 4mm 2mm 171mm Quantity 2; 3mm ID will blow out. A chamfer is recommended on each end.
Extruder to Hub (Inner lanes) 4mm 2mm 101mm Quantity 2; 3mm ID will blow out. A chamfer is recommended on each end.

Slicer configuration

Orca Slicer is the preferred slicer for BoxTurtle use.

Printer Settings

Orca_Pinter_Settings

Add Multiple Filaments

Orca_Add_Filament_Settings

Printer Machine G-Code

M104 S0 ; Stops OS from sending temp waits separately
M140 S0
PRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] TOOL={initial_tool}

Change Filament G-Code

T[next_extruder]

Additional Slicer configuration - pre-OrcaSlicer 2.2.0

Configuring per-material filament ramming is no longer required as of the official OrcaSlicer 2.2.0 release (PR #6934). If you are on an earlier version than that (including betas/release candidates) you will need to make the following additional changes to your slicer configurations.

Material Settings

Orca_Material_Settings

Ramming Settings

Orca_Ramming_Settings

Example PRINT_START macro

Please note this is just an example macro to show how to incorporate the initial tool into your print start macro. Please adjust it to match your printer setup. A good starting point for a PRINT_START macro is jontek2's "A Better PRINT_START macro"

[gcode_macro PRINT_START]
gcode:
  {% set BED_TEMP = params.BED|default(60)|float %}
  {% set EXTRUDER_TEMP = params.EXTRUDER|default(195)|float %}
  {% set S_EXTRUDER_TEMP = 150|float %}
  {% set initial_tool = params.TOOL|int %}

  G90 ; use absolute coordinates
  M83 ; extruder relative mode
  
  G28 # Home Printer
  # Do any other leveling such as QGL here

  AFC_PARK

  M140 S{BED_TEMP} # Set bed temp
  M109 S{EXTRUDER_TEMP} # wait for extruder temp
  T{initial_tool} #Load Initial Tool
  
  M104 S{S_EXTRUDER_TEMP} # set standby extruder temp
  M190 S{BED_TEMP} # wait for bed temp
    
  G28 Z

  # Bedmesh or load bedmesh

  AFC_PARK
  M109 S{EXTRUDER_TEMP} ; wait for extruder temp
  
  # Add any pre print prime/purge line here
  # Start Print

BoxTurtle sourcing/vendors

While BoxTurtle can be mostly self-sourced, some vendors offer partial or full BoxTurtle kits. These vendors also have dedicated channels on the Armored Turtle Discord.

US:

EU:

UK:

AU:

Merch

  • BoxTurtle T-Shirt ($3 from each sale goes to support ArmoredTurtle) via Cotton Bureau- also has sweatshirt/hoodie variants
  • BoxTurtle Sticker via Dr. Mursey