Repository navigation
Modules
One section per file in extras/. Commands answers what can I run, Configuration answers what can I set; this answers what is this file, and do I need to care about it.
Source: NebulaOS-klipper-extensions at 178a0c2. 30 modules.
Purpose is the module's own header, kept whole. These authors explain their reasoning in the header, and summarising it would discard the part worth reading.
Registers are the G-code commands the module registers, from its own register_command calls. A command marked replaces upstream is registered after de-registering Klipper's own - it does not behave as stock Klipper, and anyone arriving from stock needs to know before debugging it.
Reads counts the configuration options; the options themselves are in Configuration.
Tested by lists every test file that names the module - not just a file called test_<module>.py, which misses the ones named after what they test rather than after the file. A module no test refers to is marked as such.
Author appears only for vendored modules and is read from VENDORED.md, not inferred. Community-authored code is never presented here as NebulaOS's own work.
Nothing here is hardware-verified. Everything is read from source.
bl24c16f, calibrate_shaper_config, gcode_shell_command, motor_constants and virtual_pins - all five are vendored community modules, and every module NebulaOS wrote is referred to by at least one test. That is a coherent position rather than an oversight: vendored code is carried unmodified, so a test here would be testing someone else's project.
It is worth stating because the opposite reading is available and wrong. These are not the risky untested corners of NebulaOS; they are the parts NebulaOS did not write.
Vendored - Andrew McGregor and contributors, © 2023-2026, from andrewmcgr/klipper_tmc_autotune @ b6c7cfa98c2ef880812d5279a9117cbe67d6d4d5.
| Registers | AUTOTUNE_TMC |
| Reads | 16 configuration option(s) |
| Tested by | extras/test_nebulaos_tmc_autotune.py |
Klipper TMC Autotune (autotune_tmc.py)
Vendored - Eric Callahan, © 2020, from community Klipper extra, shipped by Creality in the KE's stock firmware.
| Registers |
EEPROM_DEBUG_READ, EEPROM_DEBUG_WRITE_BYTE, EEPROM_DEBUG_WRITE_FLOAT, EEPROM_DEBUG_WRITE_INT, EEPROM_IS_FIRST_USED, EEPROM_POS, EEPROM_PRINTER_INFO, EEPROM_READ, EEPROM_WRITE_BYTE, EEPROM_WRITE_FLOAT, EEPROM_WRITE_INT
|
| Reads | no configuration |
| Tested by | no test refers to this module |
Support for i2c based temperature sensors
Vendored - ballaswag, © 2023, from ballaswag/guppyscreen.
| Registers | SAVE_INPUT_SHAPER |
| Reads | 5 configuration option(s) |
| Tested by | no test refers to this module |
Persist input-shaper calibration results to printer.cfg (SAVE_INPUT_SHAPER)
Vendored - Eric Callahan, © 2019, from via pellcorp/klipper.
| Registers | RUN_SHELL_COMMAND |
| Reads | 3 configuration option(s) |
| Tested by | no test refers to this module |
Run a shell command via gcode
Vendored - Andrew McGregor and contributors, © 2023-2026, from andrewmcgr/klipper_tmc_autotune @ b6c7cfa98c2ef880812d5279a9117cbe67d6d4d5.
| Registers | no G-code commands |
| Reads | 7 configuration option(s) |
| Tested by | no test refers to this module |
Klipper TMC Autotune (motor_constants.py)
| Registers |
SET_PIN (replaces upstream)
|
| Reads | 2 configuration option(s) |
| Tested by | extras/test_nebulaos_bed_soak.py |
NebulaOS bed warp soak switch, remembered (Run 21, 2026-10-28)
| Registers |
_NEBULAOS_BED_TRAM, _NEBULAOS_BED_TRAM_CANCEL
|
| Reads | 7 configuration option(s) |
| Tested by | extras/test_nebulaos_bed_tram.py |
NebulaOS guided bed tramming (G87, simplified version agreed)
| Registers |
NEBULAOS_BEEP, NEBULAOS_BEEPER_STOP, NEBULAOS_PLAY_TUNE
|
| Reads | 12 configuration option(s) |
| Tested by | extras/test_nebulaos_beeper.py |
Klipper-owned KE buzzer (G108), host-side Klipper extra
| Registers |
NEBULAOS_CALIBRATION_RECORD, NEBULAOS_CALIBRATION_STATUS, NEBULAOS_RAW_CONTACT_COMPARE, _NEBULAOS_AUTO_CALIBRATE, _NEBULAOS_CALIBRATION_CANCEL, _NEBULAOS_ESTEPS_CALIBRATE, _NEBULAOS_ESTEPS_CANCEL, _NEBULAOS_ESTEPS_CONFIRM, _NEBULAOS_INPUT_SHAPER_CALIBRATE, _NEBULAOS_INPUT_SHAPER_CANCEL, _NEBULAOS_Z_OFFSET_CALIBRATE
|
| Reads | 31 configuration option(s) |
| Tested by |
extras/test_nebulaos_bed_tram.py, extras/test_nebulaos_calibration.py, extras/test_nebulaos_load_cell_calibration.py
|
NebulaOS calibration coordinator (Phase 2 calibration-framework mission; contact-safety stabilization rewrite, corrected).
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_calibration_history.py
|
"what was calibrated when, with what result, and what must be redone" (G104/G105, Run 19).
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_calibration_journal.py
|
Persistent transaction journal for NebulaOS guided calibration workflows (Phase 2 mission, §12).
| Registers | no G-code commands |
| Reads | 2 configuration option(s) |
| Tested by |
extras/test_nebulaos_compat.py, extras/test_nebulaos_extensions_version.py, extras/test_nebulaos_temperature_mcu.py
|
Startup compatibility preflight for the NebulaOS Klipper extension set
| Registers |
NEBULAOS_LOAD_CELL_AUTO_CHECK, NEBULAOS_LOAD_CELL_MODE, NEBULAOS_LOAD_CELL_READ, _NEBULAOS_LOAD_CELL_CALIBRATE, _NEBULAOS_LOAD_CELL_CANCEL
|
| Reads | 9 configuration option(s) |
| Tested by | extras/test_nebulaos_load_cell_calibration.py |
NebulaOS guided load cell calibration with a water bottle (G86)
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_load_cell_mode.py, extras/test_nebulaos_raw_contact.py, extras/test_z_offset_probe_coexistence.py, extras/test_z_offset_probe_safety.py
|
NebulaOS load-cell contact mode: the user's persisted choice (G99)
| Registers | no G-code commands |
| Reads | 2 configuration option(s) |
| Tested by | extras/test_nebulaos_memory.py |
Klippy-side memory policy, host-side Klipper extra
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_plr_journal.py, extras/test_nebulaos_power_loss_recovery.py
|
EEPROM journal codec for NebulaOS power-loss recovery (Phase 1.9B).
| Registers |
NEBULAOS_PLR_DISCARD, NEBULAOS_PLR_RESUME, NEBULAOS_PLR_STATUS, _NEBULAOS_PLR_LOAD_MESH, _NEBULAOS_PLR_SET_Z, _NEBULAOS_PLR_TIMELAPSE_MERGE
|
| Reads | 9 configuration option(s) |
| Tested by | extras/test_nebulaos_power_loss_recovery.py |
NebulaOS's own power-loss recovery extra (Phase 1.9B), built entirely on public/mainline Klipper interfaces.
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_probe_pair.py
|
NebulaOS automatic probe/nozzle pairing primitive (Phase 2 calibration- framework mission; bounded-descent contact-safety rewrite, corrected).
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_raw_contact.py, extras/test_z_compensate_contact_mode.py, extras/test_z_offset_probe_coexistence.py, extras/test_z_offset_probe_safety.py
|
NebulaOS weight-free load-cell contact detection - pure helpers (G83b)
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by | extras/test_nebulaos_shaper_graph.py |
NebulaOS input shaper graph (G109, Run 20).
Vendored - Kevin O'Connor © 2020-2024 (base), NebulaOS © 2026 (GD32 curves), from Klipper3d/klipper.
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_compat.py, extras/test_nebulaos_temperature_mcu.py
|
MCU die-temperature support for the GD32 chips used by the Creality Ender-3 V3 KE
| Registers | NEBULAOS_TMC_AUTOTUNE |
| Reads | no configuration |
| Tested by | extras/test_nebulaos_tmc_autotune.py |
NebulaOS TMC autotune selection (decision D8, 2026-10-10)
| Registers | no G-code commands |
| Reads | 2 configuration option(s) |
| Tested by |
extras/test_nebulaos_power_loss_recovery.py, extras/test_nebulaos_version.py
|
Runtime version-truth printer object, host-side Klipper extra
| Registers |
NEBULAOS_Z_ADJUST, Z_OFFSET_APPLY_PROBE (replaces upstream)
|
| Reads | 2 configuration option(s) |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_z_adjust.py
|
NebulaOS Z offset adjustment, saved like OpenKE did (G92)
| Registers |
NEBULAOS_RAW_CONTACT_DIAGNOSTIC, NEBULAOS_RAW_CONTACT_REFERENCE
|
| Reads | 14 configuration option(s) |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_nebulaos_load_cell_calibration.py, extras/test_nebulaos_probe_pair.py, extras/test_nebulaos_raw_contact.py, extras/test_z_compensate_contact_mode.py, and 7 more |
NebulaOS Z-offset contact probe — nozzle load cell adapter for Z-offset calibration
| Registers | no G-code commands |
| Reads | 13 configuration option(s) |
| Tested by |
extras/test_nozzle_clear_native.py, extras/test_z_compensate_contact_mode.py, extras/test_z_offset_probe_coexistence.py
|
Native nozzle-wipe routine using upstream Klipper's load-cell probe
| Registers | no G-code commands |
| Reads | no configuration |
| Tested by |
extras/test_nebulaos_bed_soak.py, extras/test_nebulaos_bed_tram.py, extras/test_nebulaos_calibration.py, extras/test_nebulaos_load_cell_calibration.py, extras/test_nebulaos_z_adjust.py, and 7 more |
Shared, offline test-only fakes for the z_compensate/nebulaos_z_offset_probe module set.
Vendored - ballaswag, © 2024, from ballaswag/guppyscreen.
| Registers | TMCSTATUS |
| Reads | 1 configuration option(s) |
| Tested by | extras/test_tmcstatus.py |
TMC stepper-driver status reporting for GuppyScreen's TMC panel
Vendored - Pedro Lamas, © 2023, from via pellcorp/klipper.
| Registers | SET_VIRTUAL_PIN |
| Reads | no configuration |
| Tested by | no test refers to this module |
Virtual Pins support
| Registers | _NEBULAOS_NOZZLE_CLEAN |
| Reads | 19 configuration option(s) |
| Tested by |
extras/test_nebulaos_calibration.py, extras/test_z_compensate_contact_mode.py, extras/test_z_compensate_missing_load_cell.py, extras/test_z_compensate_offset_safety.py, extras/test_z_compensate_reentrancy_guard.py, and 4 more |
Per-print auto-Z-offset orchestration, host-side Klipper extra