Stop using bdwidth while printing, work without it

bdwidth's motion reading stays at 0, its per-reading width compensation
made the flow jump between 77 and 119%, and a USB dropout shut down
Klipper. PRINT_START no longer enables it. _PRINT_CLEANUP,
BLOBIFIER_CHECKED and PURGE_UNTIL_EMPTY only send bdwidth commands when
[bdwidth fila_width_0] exists, and bdwidth_status reports present: False
with neutral values when it is not configured, so the section can be
removed from printer.cfg.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-12 18:18:40 +02:00
1 parent 76172fbc4f
commit 93f00c87a7
6 files changed
+28 -14

No files matched your search

+3 -2
View File
@@ -65,13 +65,14 @@ gcode:
# pause the printer (the check reports it instead). Afterwards the
# runout response is restored; bdwidth itself is only switched off
# again outside a print, so a print never loses it.
{% set bdw_on = cfg.motion_check and not printer.bdwidth_status.reading|default(false) %}
{% set has_bdw = printer.bdwidth_status.present|default(true) %}
{% set bdw_on = has_bdw and cfg.motion_check and not printer.bdwidth_status.reading|default(false) %}
{% set bdw_off = bdw_on and printer.print_stats.state not in ["printing", "paused"] %}
{% set runout_was = 1 if printer.bdwidth_status.enabled else 0 %}
# Without the motion check, bdwidth's own runout response is off during
# the purge too, so a bdwidth that does not see the movement cannot
# pause the printer here; the pressure check judges the purge.
{% set runout_off = bdw_on or not cfg.motion_check %}
{% set runout_off = has_bdw and (bdw_on or not cfg.motion_check) %}
{% if cfg.mode == "off" %}
BLOBIFIER {rawparams}
{% else %}
+1 -1
View File
@@ -73,7 +73,7 @@ gcode:
RESPOND MSG="PURGE_UNTIL_EMPTY: unsyncing {printer.AFC.current_load} from the extruder (UNSET_LANE_LOADED)"
UNSET_LANE_LOADED
{% endif %}
{% set bdw = printer.bdwidth_status.name if 'bdwidth_status' in printer else '' %}
{% set bdw = printer.bdwidth_status.name if 'bdwidth_status' in printer and printer.bdwidth_status.present|default(true) else '' %}
{% set runout_was = 1 if bdw and printer.bdwidth_status.enabled else 0 %}
{% if runout_was %}
RESPOND MSG="PURGE_UNTIL_EMPTY: bdwidth runout response off during the purges"
+5 -4
View File
@@ -203,10 +203,9 @@ gcode:
_AFC_STORE_HOME_REFERENCE
# Width only (flow compensation and runout when no filament is measured).
# The CCD motion reading stays at 0 (actual_total_move:0), so motion mode
# (ENABLE_MOTION / ENABLE_ALL) only gives false "Rounout" messages.
SET_BDWIDTH NAME=fila_width_0 COMMAND=ENABLE_WIDTH
# bdwidth is not used while printing: its motion reading stays at 0 and its
# per-reading width compensation made the flow jump between 77 and 119%.
# To use it again: SET_BDWIDTH NAME=fila_width_0 COMMAND=ENABLE_WIDTH
_status_printing
@@ -252,7 +251,9 @@ gcode:
TURN_OFF_HEATERS
iHEATER_OFF ; stops the chamber heater control loop too
M107
{% if 'bdwidth fila_width_0' in printer %}
SET_BDWIDTH NAME=fila_width_0 COMMAND=DISABLE ; also sets M221 S100
{% endif %}
M221 S100
BED_MESH_CLEAR
SET_SKEW CLEAR=1