Repository navigation
'NTC 100K beta 3950' invalid temp sensor name. Changed to 'Generic 3950' - #19
Merged
Merged
Conversation
Kobra-S1
added a commit
that referenced
this pull request
Oct 28, 2026
Same change as #19 for printer_KS1.cfg: upstream Klipper removed the deprecated "NTC 100K beta 3950" definition.
Kobra-S1
added a commit
that referenced
this pull request
Oct 29, 2026
* Kobra X support ACE behind the Kobra X tool changer: tool numbering from the changer's offset, gated intake load/unload through the RDM, measured park and overshoot lengths, printer_KX.cfg and ace_KX.cfg. Also: ACE2 firmware update and rollback assist, slow first unwind on ACE2, idle feed-assist pause, ACE_CHECK_TOOL, homing and unload fixes, CANCEL_PRINT homing guard on all printers, panel fixes for 480x320, docs brought in line with the code. * ACE_CHECK_PRINT_TOOLS: refuse a print whose tools have no usable spool G9111 on K3, K3M, KS1 and KS1M runs it first, before anything moves, so a print using an empty or missing slot ends at start instead of at its first tool change. Tools come from the slicer's filament summary, else from the file's T lines, scanned in chunks with a reactor turn between them. * manager: name the RDM park step instead of redefining park flake8 F811 failed the test gate. * run_all_tests.sh: run the KlipperScreen tests when GTK is installed Links the system's gi and cairo into .venv when present; without them or without a display the tests still skip. * commands: refused commands raise, dryer replies share one handler ACE_FEED, ACE_RETRACT, their stops and ACE_SET_SLOT only printed their refusals, so macros carried on and the dashboard showed a refused save as saved. A dryer stop for all units never re-armed the start message. Tests for the tool change failure path, print end, smart unload and the state-setting commands. * protocols: bound the ACE1 frame length, keep ACE2 bus ids unique A corrupt ACE1 length field stalled every reply until a reconnect; the reader now resyncs past it. The ACE2 id plan skips ids already held. Lane sync no longer re-validates unknown_material_mode (config owns it); two protocol defaults without an override are named as such. Parser tests for split frames, junk, short headers, CRC, empty slots, colours, request builders and malformed protobuf. * instance: one early stop per retract, retry refused assist restores An early-stop reason after the dwell re-sent the stop on every wait cycle and was not reported. A refused or unanswered feed assist restore is retried within its attempt budget. Status recovery re-arms when neither reconnect nor disconnect ran. Tests for assist-off before motion, the firmware-abort load retry and malformed RFID and status data. * serial_manager: a write error fails every in-flight request Requests whose bytes were dropped waited for their timeout. Tests for port claims, re-entry, a disabled ACE and port lookup. * manager: a failing transport disconnect does not abort teardown Tests for shared-bus routing by device id, the stale-index and tool change guards, retract paths and the state flush on disconnect. * One retract before the cut, relative in any extrusion mode K3, K3M and KX CUT_TIP retract themselves, so ACEPRO's pre-cut retract doubled theirs to 4 mm; pre_cut_retract_length is 0 there and stays 2 on the KS1 and KS1M, whose CUT_TIP does not retract. Both retracts save the G-code state and run under M83, so a file in absolute extrusion gets a 2 mm retract instead of a move to E-2. The length may be fractional; the KS1 CUT_TIP's unused variable_retract is gone. * tests: endless spool swaps only between ACE tools behind a tool changer's * Queue the connection-issue pause behind the running G-code command The monitor timer ran PAUSE with run_script_from_command, which skips the G-code lock: inside a running CANCEL_PRINT its moves interleaved with the cancel's motor-off and the MCU shut down with "Timer too close". The pause now runs as a queued _ACE_CONNECTION_PAUSE, only if the print is still printing then, and only when the unstable unit feeds the loaded tool. * runout_monitor: handle runout, tangle and dry resume as queued commands The monitor timer ran PAUSE, the dialogs and the endless-spool swap with run_script_from_command, which skips the G-code lock, so they ran inside whatever command was executing. Like Klipper's filament sensors, the timer now only stops the print file and queues _ACE_MONITOR_EVENT, which runs behind the running command and drops the event if the print ended. * connection_pause: show the dialog when PAUSE fails * ARCHITECTURE: module map lists the queued-command modules * protocol_ace2: report the dryer duration in minutes like ACE1 ACE2 takes DURATION in minutes but echoes it in seconds (1800 for DURATION=30, seen on fw V1.1.31). remain_time is seconds on both units, so ACE_GET_STATUS labels it s, not min. * serial_manager: connecting starts at the backoff floor connect_to_ace began with whatever backoff the previous run of failed attempts had reached, so switching ACE off and on waited up to 25 s before the first new attempt. It now resets the backoff to its floor (1 s with a known USB location, 5 s without) and drops the delay argument it never used. * printer_KX: bed thermistor Generic 3950 Same change as #19 and #41 for the Kobra X config, which exists only on kobra-x. * CONNECTION_SUPERVISION: reconnect backoff as the code does it The doc showed a 5 s floor and a 30 s step. The floor is 1 s once the USB location is known, and the backoff drops back to it before ever waiting 30 s. * Docs and comments for review findings on kobra-x README: a failed command stops the calling macro; the Kobra X options are explained in ace_KX.cfg. ace_KX.cfg: a feed the ACE aborted itself gets no 150 mm pull-back. gear_err is documented as seen on ACE2 only; the dryer-duration comment names the unit it normalizes to. * Add feed_assist_off_when_idle to keep feed assist on while idle The idle-timeout hook stopped feed assist on every printer with no way to switch it off. Default True keeps the current behaviour. * Add [ace] tool_changer to name the printer-side tool changer The driver, the KlipperScreen panel and RESUME looked up kx_toolchanger by a fixed name. The option names it; ace_state publishes the name and the tool base, which the panel and RESUME now read. * Fix docs drift on kobra-x; keep tool numbering in the status fallback README: the KX tool changer sends printer tool numbers, the missing modules and internal commands, the panel's Force Unload, status wait and small-screen layout; drop command counts and the removed "Empty" material. ARCHITECTURE: decision records state constraints instead of incidents. get_status()'s exception fallback lacked tool_changer and tool_base, so the panel would refuse slot taps for as long as it was returned.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Invalid temperature sensor name fixed in printer_KS1.cfg.