Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/assets/images/can1_bus_config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_enable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_enabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_pressure_advance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_select_file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_update_file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/afc_u1_update_success.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/u1/setting_pa.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 18 additions & 3 deletions docs/configuration/AFC.cfg.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,12 @@ n20_break_delay_time: 0.200
# Default: 0.200
# Time to wait between braking N20 motors(nSleep/FWD/RWD all 1) and then
# releasing the brake to allow coasting.
tool_max_unload_attempts: 2
# Default: 2
tool_max_unload_attempts: 4
# Default: 4
# Max number of attempts to unload filament from toolhead when using
# buffer as ramming sensor.
# Variable can be overridden in [AFC_Boxturtle/AFC_NightOwl etc]
# sections and [AFC_stepper/AFC_lane] sections.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
tool_homing_distance: 200
# Default: 200
# Distance in mm over which toolhead homing is to be attempted.
Expand Down Expand Up @@ -314,6 +316,10 @@ auto_spool_switch_threshold: 25
restore_extruder_temp_on_load_or_unload: False
# Default: False
# When True, AFC will restore extruder target temp after tool load/unload when not printing.
force_assign_map: False
# Default: False
# Setting to True will allow AFC to always override any existing T(n) macros when
# mapping lanes during PREP
```

### Multiple Extruder variables only
Expand Down Expand Up @@ -412,7 +418,16 @@ form_tip_cmd: AFC
# call the built-in macro. You can replace this with a custom macro name if
# you have a different tip-forming method or tool. Configuration for the AFC
# macro is defined in the `AFC.cfg` file.

park_pre_load: False
# Default: False
# Boolean, when set to true, the system will call the macro defined by
# park_pre_load_cmd before loading a lane. Use this macro to park the
# toolhead at a specific spot before loading filament to the toolhead.
park_pre_load_cmd: None
# Default: None
# Park macro name to call before loading filament to the toolhead.
# For example, use AFC_PARK to call the normal park macro before loading
# filament.
post_load_macro:
# Default:
# Macro called at the end of the load sequence, after poop, kick, and wipe
Expand Down
16 changes: 16 additions & 0 deletions docs/configuration/AFC_Hardware.cfg.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,22 @@ nozzle_led_idx:
# Must not overlap with status_led_idx.
```

### The following configs are only for Snapmaker U1 printers
``` cfg
u1_filament_sensor_name:
# Default: None
# Required in AFC_extruder sections for Snapmaker U1 printers,
# this variable should be the name for your extruders toolhead sensor.
# For example, if AFC_extruder config section is "extruder1", then
# filament sensor name should be "e1_filament"
u1_park_detector_name:
# Default: None
# Required in AFC_extruder sections for Snapmaker U1 printers,
# this variable should be the name for your extruders park detector sensor.
# For example, if AFC_extruder config section is "extruder1", then
# filament sensor name should be "extruder1"
```
Comment thread
coderabbitai[bot] marked this conversation as resolved.

## [AFC_buffer buffer_name] Section
The following options are available in the `[AFC_buffer buffer_name]` section of the `AFC_Hardware.cfg` file. These options
control the configuration of the AFC system when interfacing with the filament buffer.
Expand Down
12 changes: 12 additions & 0 deletions docs/configuration/AFC_UnitType_1.cfg.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,12 @@ short_move_dis: 10
# Move distance in mm for failsafe moves. Setting value
# here overrides values set in unit(AFC_BoxTurtle/NightOwl/etc)
# section
tool_max_unload_attempts: 4
# Default: 4
# Max number of attempts to unload filament from toolhead when using
# buffer as ramming sensor.
# Setting variable here overrides values set in unit(AFC_BoxTurtle/NightOwl/etc)
# or AFC config sections.
max_move_dis: 99999
# Default: 99999
# Maximum distance to move filament. AFC breaks filament moves over
Expand Down Expand Up @@ -715,6 +721,12 @@ enable_assist_weight: 500
# Number in grams to activate espooler print assist once spool weight is
# less than this number.
# Can be overridden in the [AFC_stepper] sections.
tool_max_unload_attempts: 4
# Default: 4
# Max number of attempts to unload filament from toolhead when using
# buffer as ramming sensor.
# Setting variable here overrides value set in AFC config section. This
# variable can be overridden in [AFC_stepper/AFC_lane] config sections.
timer_delay: 5
# Default: 5
# Affects espooler assist, number of seconds to wait before
Expand Down
52 changes: 15 additions & 37 deletions docs/initial-startup/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,38 @@ the appropriate unit type (e.g. Boxturtle, HTLF, etc.).

[BoxTurtle Assembly Manual](https://armoredturtle.xyz/manual-sections.html?manual=boxturtle)

--8<-- "includes/prerequisites.md"

=== "HTLF"

[HTLF Assembly Manual](https://armoredturtle.xyz/manual-sections.html?manual=htlf)

--8<-- "includes/prerequisites.md"

=== "ViViD"

[ViViD Manual](https://github.com/bigtreetech/BIGTREETECH_ViViD/blob/master/BIGTREETECH_ViViD_User_Manual%20V1.0.2.pdf)

!!!warning
ViViD heater temperature sensor is currently not supported in Kalico. Currently there is a pull request waiting to be merged in to support this sensor.
If you are running Kalico, at least version v2026.06.00 needs to be installed to use ViViD's heater temperature sensor

--8<-- "includes/prerequisites.md"

=== "EMU"
[EMU docs](https://github.com/DW-Tas/EMU/tree/main/docs)
[EMU manuals](https://github.com/DW-Tas/EMU/tree/main/Manuals)

## Prerequisites

### Calibrate/tune existing printer extruder

If you are installing this on a new printer or extruder (including [FilamATrix](https://github.com/thunderkeys/FilamATrix))
ensure you have calibrated your printer/extruder before introducing AFC/multicolor printing. If your extruder rotation
distance is off by a large factor, this will cause issues with defining values such as `tool_stn` and others later on
in the configuration.

It is a lot easier to do some of the calibrations (such as rotation distance) *BEFORE* installing your AFC unit.

Our recommended guide to follow for calibration
is [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide/).

### Ensure minimum system requirements

The AFC Klipper Add-On requires a minimum Klipper/Kalico version of 0.12, as well as a corresponding klippy-env Python
environment of at least version 3.8.

!!!warning "Minimum Klipper Requirements"

If you are running a version of Klipper/Kalico older than 0.12, you will need to update your system before proceeding.
The AFC Klipper Add-On will not work with older versions. You must be on or past commit id `1d92be71` of Klipper.
This was released on Jan 18th, 2024.
--8<-- "includes/prerequisites.md"

If you are on Klipper/Kalico 0.12, but running `~/klippy-env/bin/python --version` returns version 2.7.x, you can
recreate it with the following:
=== "Snapmaker U1"
--8<-- "includes/u1/need_to_install_extended_fw.md"

```
sudo service klipper stop
AFC-Klipper-Add-On has been included into [Snapmaker U1 Extended Firmware](https://github.com/paxx12-snapmaker-u1/SnapmakerU1-Extended-Firmware), this initial guide walks you though uploading the extended firmware and enabling a basic AFC config that operates all four toolheads in standalone mode([click here](../toolchanger/overview.md#toolchanger-overview) to learn more about what a standalone toolhead means for toolchangers).

mv ~/klippy-env ~/klippy-env2.7
virtualenv -p python3 ~/klippy-env
~/klippy-env/bin/pip install -r ~/klipper/scripts/klippy-requirements.txt
After installing the extended firmware and enabling full AFC-Klipper-Add-On, if you would like to add a BoxTurtle or any other automated filament changer to your U1, then revisit this initial startup guide for the appropriate filament changer.

sudo service klipper start
```
One thing to note is that if you add a filament changer to your U1 you will need to use the [u1-klipper](https://github.com/Snapmaker/u1-klipper) firmware version when flashing your MCU. If this is not done then your filament changer MCU and U1-klipper firmware will not communicate correctly and will error out.

After recreating it, you may need to reinstall any custom add-ons, such as Klippain Shake&Tune, TMC Autotune, etc.
Before installing and enabling AFC-Klipper-Add-On onto your U1, please take a second to [read](../toolchanger/snapmaker.md) over what U1 functions currently work and what functions do not work correctly when using AFC-Klipper-Add-On on your U1.

Ensure you have a clean, functioning Klipper install with all of these minimum requirements met before proceeding to the
next step.
[Next step](03-install-plugin.md#snapmaker-u1)
22 changes: 5 additions & 17 deletions docs/initial-startup/02-flashing.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,13 @@
UUID (if using CAN) or the device serial path (e.g., `/dev/serial/by-id/...`) (if using USB) for the AFC-Lite MCU.
Please ensure you have these values before you proceed, as they will be required.

--8<-- "includes/toolhead_pins.md"

=== "Other Systems"

Please follow you MCU guide for the board that you are using in your system.

## Make note of any toolhead sensor pins

If you are using [FilamATrix](https://github.com/thunderkeys/FilamATrix), and are using toolhead endstop sensors, make a
note of what MCU pins those sensors are connected to for the pre-extruder gear sensor (aka `pin_tool_start`) and
post-extruder gear sensor (`pin_tool_end`). Use these in the next step to properly install and configure AFC.

!!! note
The `pin_tool_start` refers to the pin above the extruder gears, while the `pin_tool_end` refers to the pin below
the extruder gears. If you are using a single sensor, you will only need to use the `pin_tool_start` pin.

An example of these pins and their locations can be seen in the diagram below:

![example-pins](../assets/images/example-cw2-revo.png)
--8<-- "includes/toolhead_pins.md"

If you do not have a native toolhead filament sensor, you can use either an inline filament sensor such
as [Filatector](https://github.com/ArmoredTurtle/Filatector), or you can use
the [TurtleNeck buffer](https://github.com/ArmoredTurtle/TurtleNeck) as a virtual toolhead endstop. Please
see [this guide](../installation/buffer-ram-sensor.md) for more details.
=== "Snapmaker U1"
Skip for Snapmaker since there is nothing to flash, installation instructions are on [Plugin Install](03-install-plugin.md) page
99 changes: 63 additions & 36 deletions docs/initial-startup/03-install-plugin.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,79 @@
## Install the AFC Klipper Add-On

Your AFC unit works with the [AFC Klipper Add-On](https://github.com/AFCProject/AFC-Klipper-Add-On). The rest of
this guide will focus on configuring AFC for use with your unit.
=== "All Automated Filament Changers"

Follow the instructions on that GitHub for the latest details on installation and configuration, but at the time of writing
this is the easy button:
Your AFC unit works with the [AFC Klipper Add-On](https://github.com/AFCProject/AFC-Klipper-Add-On). The rest of
this guide will focus on configuring AFC for use with your unit.

```sh
cd ~
git clone https://github.com/AFCProject/AFC-Klipper-Add-On.git
cd AFC-Klipper-Add-On
./install-afc.sh
```
Follow the instructions on that GitHub for the latest details on installation and configuration, but at the time of writing
this is the easy button:

The default options for the park, cut, kick, wipe, and tip forming macros can be used if you don't know what to choose.
These can all be changed later by editing `AFC/AFC.cfg` and doing a firmware restart.
```sh
cd ~
git clone https://github.com/AFCProject/AFC-Klipper-Add-On.git
cd AFC-Klipper-Add-On
./install-afc.sh
```

After the installation completes, you should now see an AFC folder in your printer configuration directory, along with
several files in there named `AFC.cfg`, `AFC_Hardware.cfg`, `AFC_Macro_Vars.cfg`, and a unit-specific configuration
file (e.g., `AFC_Turtle_1.cfg` for BoxTurtle). The exact filename depends on the unit type you chose during
installation. If you do not see these files, or if you see duplicate files (e.g., your `printer.cfg`) -
this may be a caching issue with your web UI (Mainsail/Fluidd). Force a refresh with shift-reload or Ctrl+F5 and the
problem should resolve itself.
The default options for the park, cut, kick, wipe, and tip forming macros can be used if you don't know what to choose.
These can all be changed later by editing `AFC/AFC.cfg` and doing a firmware restart.

### Post-Installation Configuration
After installation, please ensure you update the following settings:
After the installation completes, you should now see an AFC folder in your printer configuration directory, along with
several files in there named `AFC.cfg`, `AFC_Hardware.cfg`, `AFC_Macro_Vars.cfg`, and a unit-specific configuration
file (e.g., `AFC_Turtle_1.cfg` for BoxTurtle). The exact filename depends on the unit type you chose during
installation. If you do not see these files, or if you see duplicate files (e.g., your `printer.cfg`) -
this may be a caching issue with your web UI (Mainsail/Fluidd). Force a refresh with shift-reload or Ctrl+F5 and the
problem should resolve itself.

- In your unit-specific config file (e.g., `AFC/AFC_Turtle_1.cfg` for BoxTurtle):
- `canbus_uuid` if using CAN bus
- `serial` if using USB
- In `AFC/AFC_Hardware.cfg`
- `pin_tool_start` and/or `pin_tool_end`
### Post-Installation Configuration
After installation, please ensure you update the following settings:

In your `printer.cfg`'s `[extruder]` section, update the setting `max_extrude_only_distance` to the value 400. If
the setting is not there, add it:
- In your unit-specific config file (e.g., `AFC/AFC_Turtle_1.cfg` for BoxTurtle):
- `canbus_uuid` if using CAN bus
- `serial` if using USB
- In `AFC/AFC_Hardware.cfg`
- `pin_tool_start` and/or `pin_tool_end`

`max_extrude_only_distance: 400`
In your `printer.cfg`'s `[extruder]` section, update the setting `max_extrude_only_distance` to the value 400. If
the setting is not there, add it:

Depending on your configuration, you may also need to add the following line to your `printer.cfg`'s `[extruder]` section:
`max_extrude_only_distance: 400`

`max_extrude_cross_section: 50`
Depending on your configuration, you may also need to add the following line to your `printer.cfg`'s `[extruder]` section:

However, this should only be added if a warning appears in the logs about the extruder cross-section being too small.
If you do not see this warning, you can skip this step.
`max_extrude_cross_section: 50`

Review all x,y,z positions in the `AFC/AFC_Macro_Vars.cfg` file to ensure they are correct for your printer for any macros
you have enabled.
However, this should only be added if a warning appears in the logs about the extruder cross-section being too small.
If you do not see this warning, you can skip this step.

Review all x,y,z positions in the `AFC/AFC_Macro_Vars.cfg` file to ensure they are correct for your printer for any macros
you have enabled.

For best results, reboot your printer after installing the Add-On and including it in your printer.cfg. This will ensure
all required modules are enabled.

For best results, reboot your printer after installing the Add-On and including it in your printer.cfg. This will ensure
all required modules are enabled.

=== "Snapmaker U1"
<a id="snapmaker-u1"></a>
--8<-- "includes/u1/warning.md"

Currently not implemented into Snapmaker U1 Extended Firmware by paxx12, currently binaries can be found in AFCProject discord.

If you have __Snapmaker U1 Extended Firmware__ already installed, you can follow steps 1-4 on the [update](../updates/updates.md#snapmaker-u1-printer) page and then come back to this page and finish steps 4-7
Comment thread
coderabbitai[bot] marked this conversation as resolved.

1. Before installing, please make sure to fully unload all filament thats currently loaded into your toolheads.
<!-- Removing below until the changes actually make it into the extended firmware repo 1. Navigate to Snapmaker U1 Extended Firmware [release page](https://github.com/paxx12-snapmaker-u1/SnapmakerU1-Extended-Firmware/releases) and download latest binary. -->
1. Once binary is downloaded follow [Snapmaker U1 Extended Firmware installation instructions](https://snapmakeru1-extended-firmware.pages.dev/install)
1. Once installation is done, to enable AFC-Klipper-Add-On open your web browser and navigate to `http://<ip-address>/firmware-config`. Be sure to replace `<ip-address>` with your Snapmaker U1 IP address.
1. Navigate down to tweaks section and in the drop down for Enable AFC-Klipper-Add-On, choose `Enable`, then select `Confirm`
![afc_enable](../assets/images/u1/afc_u1_enable.png)
1. Once that is done and the box shows `SUCCESS: Setting updated successfully`, navigate back to your printers fluidd interface. If enable was done correctly, the T0-T31 tools should now only show T0-T3 and your AFC panel should look something like below and there should not be any Klipper errors.
![afc_enabled](../assets/images/u1/afc_u1_enabled.png)
1. The error that shows up is normal and can be ignored and closed out with the `x` on the right. If it keeps showing up please consult for help in the AFCProject discord.

<!--
Commenting this out for now since we have found that the PTFE inside can move
--8<-- "includes/snapmaker-u1-ptfe.md"
-->

[Next Step](09-slicer-config.md#snapmaker-u1)
Loading