🚀 Major Updates and Improvements 🚀
🧵 Filament Homing Enhancements
Filament homing is now fully integrated and enabled by default. This prevents over‑retraction events that can pull filament out of BoxTurtles or other unit extruders. Thanks to @weemantella for contributing the majority of the code that made filament homing possible. Homing support is also available for units equipped with home pins or selector mechanisms, including HTLF and ViViD systems.
🔧 New configuration variables added for filament homing
The following new variables and their default values have been added. They can be found in the configuration files section of the documentation for more details.
homing_enabled(True),load_then_home(True),home_to_hub(True),home_to_tool(True),load_undershoot(20),homing_delta(300)
⚠️ Action Required
- Check whether the following variables exist in your AFC_hub configuration and remove them. Default AFC values have been updated for the new homing behavior and the upcoming v1.1 hub/buffer combo:
hub_clear_move_dis,move_dis. - After updating, recalibrate all lanes and Bowden lengths.
- If you start seeing
Cannot load spools while printer is actively moving or homingwhen PREP runs at startup in AFC.cfg increase initial_duration for[delayed_gcode welcome]macro from0.5to2
🆕 New unit support
🎨 ViViD
ViViD units are now fully supported, thanks to BTT for providing us units for integration purposes. The installation script has been updated to streamline configuration. Documentation for ViViD‑specific installation steps, macros and configuration variables is available in the unit‑type configuration guide.
⚙️ HTLF
Macros for HTLF unit have been updated and documented here. New variables have been added to control selector homing speed and acceleration using selector_movement_speed and selector_movement_accel.
🛠️ AFC improvements
- 🔄 During PREP, AFC now correctly recovers and resets internal states if filament is expected to be loaded to the toolhead but the toolhead sensor does not detect filament.
- 🧪 During PREP, AFC can now check whether filament is loaded to the toolhead when using “ramming” mode. To enable this, set
enable_buffer_tool_check: Truein your AFC_BoxTurtle/AFC_HTLF/etc. configuration. This is currently intended only for buffers that use springs or rubber bands between PTFE tubes. Do not enable this if your buffer is not set up this way. - 🧵 @kismattic added spool‑memory support via the
remember_spoolvariable, useful during testing. - 🎨 @robotfishe added a post‑prep macro hook to allow calling his SpoolVision macros for automatic color detection, go check out his project.
- 🌡️ @bobomb added the ability to ignore Spoolman temperatures and fall back to default temperatures using the
ignore_spoolman_material_tempsvariable. - 🔥 @bobomb also added the ability to restore the previous extruder temperature when loading outside of a print using the
restore_extruder_temp_on_load_or_unloadvariable. - ♨️ @thunderkeys added the ability to prevent lowering the extruder temperature if it is already sufficiently hot by setting
lower_extruder_temp_on_changeto False. - ✂️ @magnetoxgarage updated the cut macro to work with the Kalico’s bleeding‑edge V2 branch.
🐞 Bug fixes
- @ejsears fixed an error in the AFC_TEST_LANES macro where Z height would continue moving when using only one lane.
- @rschaeuble updated espooler assist logic to prevent toolhead stuttering while printing.
Full Change Log
Additions
- [Enhancement]: Adds ability to check if filament is loaded to toolhead when using buffer as toolhead sensor and sprung buffers by @jimmyjon711 in #668
- [Enhancement] Adding homing-aware movements when loading/unloading/ejecting filament by @jimmyjon711 in #634
- [Enhancement]: Add option to remember last spool information by @kismattic in #627
- Option to disable using spoolman extruder temperature for filament by @bobomb in #630
- [Enhancement] Add Configurable Post‑Prep Macro Hook for Automatic Actions After Spool Load by @robotfishe in #633
- Implement restore extruder temperature feature during tool load/unload by @bobomb in #637
- Integrate ViViD Unit Support and Standardize AFC Movement, Calibration, and Lane Handling by @jimmyjon711 in #640
- [Refactor] Address install script bugs by @ejsears in #642
- Add new feature to not lower extruder if it is already at sufficient … by @thunderkeys in #662
- (Addition) Added new load‑then‑home support, new DIST_HUB speed mode, and lane/unit config propagation by @jimmyjon711 in #663
- (Addition): Add Lane Recovery and Selector‑Unselect Support Across AFC Lane and Unit Logic by @jimmyjon711 in #664
- Improved load detection and recovery logic during prep by @jimmyjon711 in #666
- (Update): Updating ViViD PREP logic by @jimmyjon711 in #667
Bug Fixes
- Resolve cumulative z height with AFC_TEST_LANES by @ejsears in #620
- (hotfix): Adding fix for if print time is not passed into do_assist_move by @jimmyjon711 in #650
- [Fix] Adding homing logic to work with HTLF home pin by @jimmyjon711 in #643
- (fix): Calibration System Refactor: Unified Lane Calibration, Improved Prompts, and Type‑Safe AFC Structures by @jimmyjon711 in #645
- fix: spool assist should not call toolhead.get_last_move_time by @rschaeuble in #649
- (fix): Fix to work with klipper manual_home update in git hash 57c2e0c by @jimmyjon711 in #652
- (fix): Fixes issue where klipper can crash when trying to load another lane while a lane is already in the progress of loading by @jimmyjon711 in #656
- (fix) Fixing error where level was removed but calling functions were not updated by @jimmyjon711 in #659
- Fix install script issues first run by @ejsears in #661
- (fix): Adding error checking when homing and returning early if error occurred when homing, update to cut/poop/kick macros to help prevent TTCs by @jimmyjon711 in #669
Macro Changes
- Update Cut Macro to support kalico-bleeding-edgev2 by @magnetoxgarage in #628
Misc/Install Script Changes
- Add integration tests for AFC buffer commands and update configuration by @ejsears in #653
- [update] Add descriptions to AFC macros for improved clarity by @ejsears in #619
- [update] Update copyright years in source files and add changelog uti… by @ejsears in #621
- Add support for Git installation detection and conditional updates by @ejsears in #624
- Update klipper restart warning message by @ejsears in #635
- [Add] Implement unit tests for AFC components and configure testing framework by @ejsears in #647
- Add logging options for klippy tests and update run-tests script by @ejsears in #654
- Minor install script fixes. by @ejsears in #655
New Contributors
- @kismattic made their first contribution in #627
- @bobomb made their first contribution in #630
- @robotfishe made their first contribution in #633
How to Update
DO NOT UPDATE WITH MOONRAKER UPDATE MANAGER WITH THIS RELEASE
Before updating please fully unload your Box Turtle or other unit type
To update ssh into your printer and use the following command in your AFC-Klipper-Add-On folder:
cd ~/AFC-Klipper-Add-On
git pull
./update-afc.sh
Select U to update
Don't forget to restart your printer after updating
Once updated the following should be the AFC version via console printout:
AFC Version in console : v1.1.0-1719-68cfe77
Full Changelog: v1.0.35...v1.1.0