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:
1 parent
76172fbc4f
commit
93f00c87a7
6 files changed
+28
-14
No files matched your search
@@ -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 %}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user