From a030b491966d3ea91667e5a2caa3e7a33866ab0d Mon Sep 17 00:00:00 2001 From: Andrii Panasiuk Date: Wed, 18 Sep 2024 01:22:10 +0300 Subject: [PATCH] chore(voron): new stealthmax pcb --- .../klipper/klipper-plugins/nevermore-max.nix | 32 +++++ cells/klipper/packages/mainsail.nix | 10 ++ cells/klipper/sources/generated.json | 53 ++++++--- cells/klipper/sources/generated.nix | 44 ++++--- cells/klipper/sources/nvfetcher.toml | 4 + cells/nixos/hosts/voron/camera.nix | 50 ++++---- .../hosts/voron/hardware-configuration.nix | 22 ++-- cells/nixos/hosts/voron/klipper/canbus.nix | 3 + .../klipper.d/hardware/cartographer-touch.cfg | 2 +- .../configs/klipper.d/hardware/cm4.cfg | 21 ---- .../configs/klipper.d/hardware/host.cfg | 26 +++++ .../configs/klipper.d/hardware/leds.cfg | 29 +++-- .../klipper.d/hardware/motherboard.cfg | 2 +- .../configs/klipper.d/hardware/stealthmax.cfg | 102 +++++++++++++--- .../voron/klipper/configs/klipper.d/macro.cfg | 4 +- .../voron/klipper/configs/klipper.d/main.cfg | 3 - .../voron/klipper/firmwares/katapult-manta-v2 | 22 ++-- .../klipper/firmwares/katapult-stealthmax | 80 +++++++++++++ .../voron/klipper/firmwares/klipper-manta-v2 | 25 ++-- .../klipper/firmwares/klipper-stealthmax | 109 ++++++++++++++++++ cells/nixos/hosts/voron/klipper/klipper.nix | 10 ++ 21 files changed, 498 insertions(+), 155 deletions(-) create mode 100644 cells/klipper/klipper-plugins/nevermore-max.nix delete mode 100644 cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cm4.cfg create mode 100644 cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/host.cfg create mode 100644 cells/nixos/hosts/voron/klipper/firmwares/katapult-stealthmax create mode 100644 cells/nixos/hosts/voron/klipper/firmwares/klipper-stealthmax diff --git a/cells/klipper/klipper-plugins/nevermore-max.nix b/cells/klipper/klipper-plugins/nevermore-max.nix new file mode 100644 index 00000000..cc8b511c --- /dev/null +++ b/cells/klipper/klipper-plugins/nevermore-max.nix @@ -0,0 +1,32 @@ +{ + lib, + stdenvNoCC, + sources, + ... +}: +stdenvNoCC.mkDerivation rec { + pname = "nevermore-max"; + + inherit (sources.klipper-nevermore-max) version src; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/lib/extras + cp -r ./Software/Klipper/*.py $out/lib/extras/ + ''; + + passthru.klipper = { + config = false; + extras = true; + }; + + meta = with lib; { + description = "Nevermore MAX filter Klipper integration for SGP40"; + platforms = platforms.linux; + homepage = "https://github.com/nevermore3d/Nevermore_Max/tree/master/Software/Klipper"; + license = licenses.gpl3Only; + }; +} diff --git a/cells/klipper/packages/mainsail.nix b/cells/klipper/packages/mainsail.nix index 478b7cfa..9d45ffbb 100644 --- a/cells/klipper/packages/mainsail.nix +++ b/cells/klipper/packages/mainsail.nix @@ -4,6 +4,9 @@ sources, cypress, zip, + gnused, + gnugrep, + findutils, # TODO: extract it to common lib prefetch-npm-deps, writeShellScriptBin, @@ -24,6 +27,9 @@ in nativeBuildInputs = [ cypress zip + gnused + gnugrep + findutils ]; dontNpmBuild = true; @@ -41,6 +47,10 @@ in export CYPRESS_RUN_BINARY=${cypress}/bin/Cypress ''; + postPatch = '' + grep -l additionalSensors * -R | xargs sed -i 's+additionalSensors = \[+additionalSensors = \["sgp40",+g' + ''; + installPhase = '' runHook preInstall diff --git a/cells/klipper/sources/generated.json b/cells/klipper/sources/generated.json index df51596d..eede6233 100644 --- a/cells/klipper/sources/generated.json +++ b/cells/klipper/sources/generated.json @@ -85,7 +85,7 @@ }, "klipper": { "cargoLocks": null, - "date": "2024-09-13", + "date": "2024-09-16", "extract": null, "name": "klipper", "passthru": null, @@ -97,12 +97,12 @@ "name": null, "owner": "Klipper3d", "repo": "klipper", - "rev": "900bf2be55f912d5e9804fe31d9e65da175c4e0c", - "sha256": "sha256-+n9GfvUFM4PWULfivLHjcnHayNgiCcgdF8tzoIcGCZ8=", + "rev": "0532a41c752df66f149cf55d779072f420ee1b6a", + "sha256": "sha256-8EGfBaaQnqqAVAwiwF4C2oUrXPLXo41+Vx4cRgcm4hE=", "sparseCheckout": [], "type": "github" }, - "version": "900bf2be55f912d5e9804fe31d9e65da175c4e0c" + "version": "0532a41c752df66f149cf55d779072f420ee1b6a" }, "klipper-cartographer": { "cargoLocks": null, @@ -190,7 +190,7 @@ }, "klipper-happy-hare": { "cargoLocks": null, - "date": "2024-09-05", + "date": "2024-09-14", "extract": null, "name": "klipper-happy-hare", "passthru": null, @@ -202,12 +202,12 @@ "name": null, "owner": "moggieuk", "repo": "Happy-Hare", - "rev": "151d85a1d34fe8a6b4566b1729bb935049fa5005", - "sha256": "sha256-2eORJLgyzdqKPWMIBSwhonKRp+jh17EtZ4DGl5kvd1A=", + "rev": "4950aa70dd7e673e3603cc9a4a5f1c0d2c8e5df9", + "sha256": "sha256-Wyn8z4KQAA9kriLqp82XjcakQPe6/hFYPMK/slRbvBI=", "sparseCheckout": [], "type": "github" }, - "version": "151d85a1d34fe8a6b4566b1729bb935049fa5005" + "version": "4950aa70dd7e673e3603cc9a4a5f1c0d2c8e5df9" }, "klipper-kamp": { "cargoLocks": null, @@ -314,9 +314,30 @@ }, "version": "14e308ff315029c2be0de498676fd23bae25ed98" }, + "klipper-nevermore-max": { + "cargoLocks": null, + "date": "2023-11-18", + "extract": null, + "name": "klipper-nevermore-max", + "passthru": null, + "pinned": false, + "src": { + "deepClone": false, + "fetchSubmodules": false, + "leaveDotGit": false, + "name": null, + "owner": "nevermore3d", + "repo": "Nevermore_Max", + "rev": "159df10e4f6015680107d1cbd10a3aab23dd5f18", + "sha256": "sha256-uPTUlI2F697pDPw5HxU48dEUpBkgovb61ksXW1HRfLY=", + "sparseCheckout": [], + "type": "github" + }, + "version": "159df10e4f6015680107d1cbd10a3aab23dd5f18" + }, "klipper-screen": { "cargoLocks": null, - "date": "2024-09-13", + "date": "2024-09-16", "extract": null, "name": "klipper-screen", "passthru": null, @@ -328,12 +349,12 @@ "name": null, "owner": "jordanruthe", "repo": "KlipperScreen", - "rev": "24d7851091ebe9c6b589817451032b1461a73677", - "sha256": "sha256-trSagnKWyDhcnYYzJAyqXGT8a5/pysTRiQssDwrZZ3c=", + "rev": "bdf03e8d6f69307d965e70a639318b244971dbac", + "sha256": "sha256-MxuUmkuEnfFC0iPwNUc0Wh8bIEl1J1FMgGEYMjHePZ8=", "sparseCheckout": [], "type": "github" }, - "version": "24d7851091ebe9c6b589817451032b1461a73677" + "version": "bdf03e8d6f69307d965e70a639318b244971dbac" }, "klipper-z-calibration": { "cargoLocks": null, @@ -435,7 +456,7 @@ }, "mainsail": { "cargoLocks": null, - "date": "2024-09-11", + "date": "2024-09-16", "extract": null, "name": "mainsail", "passthru": null, @@ -447,12 +468,12 @@ "name": null, "owner": "mainsail-crew", "repo": "mainsail", - "rev": "f1085452233f5d59e312aa9d379cb1c6ea58404b", - "sha256": "sha256-DVsGR04PTuHNWHWPBCUYgeQ82Xe6mZaJOUxO7mkiJGA=", + "rev": "de697da87b0c77262c242034988114d01d4bd743", + "sha256": "sha256-pllffDPf3t0C5q0kGIaaRLLyOl6YpvL2CRBw+EXXbhk=", "sparseCheckout": [], "type": "github" }, - "version": "f1085452233f5d59e312aa9d379cb1c6ea58404b" + "version": "de697da87b0c77262c242034988114d01d4bd743" }, "mobileraker-companion": { "cargoLocks": null, diff --git a/cells/klipper/sources/generated.nix b/cells/klipper/sources/generated.nix index 27969191..b9606912 100644 --- a/cells/klipper/sources/generated.nix +++ b/cells/klipper/sources/generated.nix @@ -50,15 +50,15 @@ }; klipper = { pname = "klipper"; - version = "900bf2be55f912d5e9804fe31d9e65da175c4e0c"; + version = "0532a41c752df66f149cf55d779072f420ee1b6a"; src = fetchFromGitHub { owner = "Klipper3d"; repo = "klipper"; - rev = "900bf2be55f912d5e9804fe31d9e65da175c4e0c"; + rev = "0532a41c752df66f149cf55d779072f420ee1b6a"; fetchSubmodules = false; - sha256 = "sha256-+n9GfvUFM4PWULfivLHjcnHayNgiCcgdF8tzoIcGCZ8="; + sha256 = "sha256-8EGfBaaQnqqAVAwiwF4C2oUrXPLXo41+Vx4cRgcm4hE="; }; - date = "2024-09-13"; + date = "2024-09-16"; }; klipper-cartographer = { pname = "klipper-cartographer"; @@ -110,15 +110,15 @@ }; klipper-happy-hare = { pname = "klipper-happy-hare"; - version = "151d85a1d34fe8a6b4566b1729bb935049fa5005"; + version = "4950aa70dd7e673e3603cc9a4a5f1c0d2c8e5df9"; src = fetchFromGitHub { owner = "moggieuk"; repo = "Happy-Hare"; - rev = "151d85a1d34fe8a6b4566b1729bb935049fa5005"; + rev = "4950aa70dd7e673e3603cc9a4a5f1c0d2c8e5df9"; fetchSubmodules = false; - sha256 = "sha256-2eORJLgyzdqKPWMIBSwhonKRp+jh17EtZ4DGl5kvd1A="; + sha256 = "sha256-Wyn8z4KQAA9kriLqp82XjcakQPe6/hFYPMK/slRbvBI="; }; - date = "2024-09-05"; + date = "2024-09-14"; }; klipper-kamp = { pname = "klipper-kamp"; @@ -179,17 +179,29 @@ }; date = "2024-05-27"; }; + klipper-nevermore-max = { + pname = "klipper-nevermore-max"; + version = "159df10e4f6015680107d1cbd10a3aab23dd5f18"; + src = fetchFromGitHub { + owner = "nevermore3d"; + repo = "Nevermore_Max"; + rev = "159df10e4f6015680107d1cbd10a3aab23dd5f18"; + fetchSubmodules = false; + sha256 = "sha256-uPTUlI2F697pDPw5HxU48dEUpBkgovb61ksXW1HRfLY="; + }; + date = "2023-11-18"; + }; klipper-screen = { pname = "klipper-screen"; - version = "24d7851091ebe9c6b589817451032b1461a73677"; + version = "bdf03e8d6f69307d965e70a639318b244971dbac"; src = fetchFromGitHub { owner = "jordanruthe"; repo = "KlipperScreen"; - rev = "24d7851091ebe9c6b589817451032b1461a73677"; + rev = "bdf03e8d6f69307d965e70a639318b244971dbac"; fetchSubmodules = false; - sha256 = "sha256-trSagnKWyDhcnYYzJAyqXGT8a5/pysTRiQssDwrZZ3c="; + sha256 = "sha256-MxuUmkuEnfFC0iPwNUc0Wh8bIEl1J1FMgGEYMjHePZ8="; }; - date = "2024-09-13"; + date = "2024-09-16"; }; klipper-z-calibration = { pname = "klipper-z-calibration"; @@ -246,15 +258,15 @@ }; mainsail = { pname = "mainsail"; - version = "f1085452233f5d59e312aa9d379cb1c6ea58404b"; + version = "de697da87b0c77262c242034988114d01d4bd743"; src = fetchFromGitHub { owner = "mainsail-crew"; repo = "mainsail"; - rev = "f1085452233f5d59e312aa9d379cb1c6ea58404b"; + rev = "de697da87b0c77262c242034988114d01d4bd743"; fetchSubmodules = false; - sha256 = "sha256-DVsGR04PTuHNWHWPBCUYgeQ82Xe6mZaJOUxO7mkiJGA="; + sha256 = "sha256-pllffDPf3t0C5q0kGIaaRLLyOl6YpvL2CRBw+EXXbhk="; }; - date = "2024-09-11"; + date = "2024-09-16"; }; mobileraker-companion = { pname = "mobileraker-companion"; diff --git a/cells/klipper/sources/nvfetcher.toml b/cells/klipper/sources/nvfetcher.toml index e9c378ff..e71e8a7b 100644 --- a/cells/klipper/sources/nvfetcher.toml +++ b/cells/klipper/sources/nvfetcher.toml @@ -98,6 +98,10 @@ fetch.github = "andrewmcgr/klipper_tmc_autotune" src.git = "https://github.com/SanaaHamel/nevermore-controller" fetch.github = "SanaaHamel/nevermore-controller" +[klipper-nevermore-max] +src.git = "https://github.com/nevermore3d/Nevermore_Max" +fetch.github = "nevermore3d/Nevermore_Max" + [klipper-chopper-resonance-tuner] src.git = "https://github.com/MRX8024/chopper-resonance-tuner" fetch.github = "MRX8024/chopper-resonance-tuner" diff --git a/cells/nixos/hosts/voron/camera.nix b/cells/nixos/hosts/voron/camera.nix index e0824cd5..c5202b06 100644 --- a/cells/nixos/hosts/voron/camera.nix +++ b/cells/nixos/hosts/voron/camera.nix @@ -16,34 +16,34 @@ ''; tl.services.camera-streamer.instances = { - nozzle = { - settings = { - camera = { - path = "/dev/v4l/by-id/usb-XCG-221208-J_3DO_NOZZLE_CAMERA_4K_01.00.00-video-index0"; - width = 640; - height = 480; - fps = 30; - format = "MJPG"; - nbufs = 2; - force_active = true; - options = { - whitebalanceautomatic = 0; - whitebalancetemperature = 4200; - }; - }; + # nozzle = { + # settings = { + # camera = { + # path = "/dev/v4l/by-id/usb-XCG-221208-J_3DO_NOZZLE_CAMERA_4K_01.00.00-video-index0"; + # width = 640; + # height = 480; + # fps = 30; + # format = "MJPG"; + # nbufs = 2; + # force_active = true; + # options = { + # whitebalanceautomatic = 0; + # whitebalancetemperature = 4200; + # }; + # }; - http = { - port = 8080; - listen = "0.0.0.0"; - }; + # http = { + # port = 8080; + # listen = "0.0.0.0"; + # }; - rtsp = { - port = 8554; - }; - }; + # rtsp = { + # port = 8554; + # }; + # }; - nginx.enable = true; - }; + # nginx.enable = true; + # }; printer = { settings = { diff --git a/cells/nixos/hosts/voron/hardware-configuration.nix b/cells/nixos/hosts/voron/hardware-configuration.nix index 642995df..77e49560 100644 --- a/cells/nixos/hosts/voron/hardware-configuration.nix +++ b/cells/nixos/hosts/voron/hardware-configuration.nix @@ -42,7 +42,7 @@ kernelParams = [ "console=ttyS0,115200" "console=tty1" - "video=DSI-1:800x480@60" + "video=DSI-0:800x480@60" ]; }; @@ -58,16 +58,18 @@ }; }; - powerManagement.cpuFreqGovernor = "powersave"; + powerManagement.cpuFreqGovernor = "performance"; - hardware = { - deviceTree.filter = "bcm2711-rpi-cm4.dtb"; + # hardware = { + # deviceTree.filter = "bcm2711-rpi-cm4.dtb"; - raspberry-pi."4".xhci.enable = true; - }; + # raspberry-pi."4".xhci.enable = true; + # }; + + hardware.deviceTree.filter = "bcm2711-rpi-4-b.dtb"; - environment.systemPackages = with pkgs; [ - bluez - bluez-tools - ]; + # environment.systemPackages = with pkgs; [ + # bluez + # bluez-tools + # ]; } diff --git a/cells/nixos/hosts/voron/klipper/canbus.nix b/cells/nixos/hosts/voron/klipper/canbus.nix index a2281c2b..840ee2d0 100644 --- a/cells/nixos/hosts/voron/klipper/canbus.nix +++ b/cells/nixos/hosts/voron/klipper/canbus.nix @@ -5,6 +5,9 @@ services.resolved.enable = false; + networking.interfaces.can0.useDHCP = false; + networking.dhcpcd.denyInterfaces = ["can*"]; + systemd.network = { enable = true; wait-online.timeout = 0; diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cartographer-touch.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cartographer-touch.cfg index dad37882..a61229f3 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cartographer-touch.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cartographer-touch.cfg @@ -7,7 +7,7 @@ calibration_method: touch sensor: cartographer sensor_alt: carto #alternate name to call commands. CARTO_TOUCH etc -scanner_touch_z_offset: 0.05 +# scanner_touch_z_offset: 0.05 #this is the default and will be overwritten and added to the DO NOT SAVE area by using UI to save z offset [safe_z_home] diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cm4.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cm4.cfg deleted file mode 100644 index e43fe56e..00000000 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/cm4.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[temperature_fan CM4] -sensor_type: temperature_host -pin: PA2 -target_temp: 60.0 -min_temp: 0 -max_temp: 80 # highest is 85 - -tachometer_pin: ^PC1 -tachometer_ppr: 2 - -cycle_time: 0.0001 - -min_speed: 0.4 - -shutdown_speed: 1.0 - -control: pid -pid_Kp: 2.0 -pid_Ki: 5.0 -pid_Kd: 0.5 -pid_deriv_time: 2.0 diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/host.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/host.cfg new file mode 100644 index 00000000..09578090 --- /dev/null +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/host.cfg @@ -0,0 +1,26 @@ +# [temperature_fan host] +# sensor_type: temperature_host +# pin: PA2 +# target_temp: 60.0 +# min_temp: 0 +# max_temp: 80 # highest is 85 + +# tachometer_pin: ^PC1 +# tachometer_ppr: 2 + +# cycle_time: 0.0001 + +# min_speed: 0.4 + +# shutdown_speed: 1.0 + +# control: pid +# pid_Kp: 2.0 +# pid_Ki: 5.0 +# pid_Kd: 0.5 +# pid_deriv_time: 2.0 + +[temperature_sensor host] +sensor_type: temperature_host +# min_temp: -255 +# max_temp: 75 diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/leds.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/leds.cfg index c1400964..d831dc7d 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/leds.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/leds.cfg @@ -3,17 +3,17 @@ initial_duration: 1 gcode: _STATUS_READY -[neopixel chamber_right] -pin: back_xiao:gpio7 -chain_count: 18 -color_order: GRBW -initial_red: 0.0 -initial_green: 0.0 -initial_blue: 0.0 -initial_white: 0.0 - -[neopixel chamber_left] -pin: back_xiao:gpio6 +# [neopixel chamber_right] +# pin: back_xiao:gpio7 +# chain_count: 18 +# color_order: GRBW +# initial_red: 0.0 +# initial_green: 0.0 +# initial_blue: 0.0 +# initial_white: 0.0 + +[neopixel chamber] +pin: SM:PA0 chain_count: 18 color_order: GRBW initial_red: 0.0 @@ -24,8 +24,8 @@ initial_white: 0.0 [led_effect chamber_light] frame_rate: 15 leds: - neopixel:chamber_left - neopixel:chamber_right + neopixel:chamber + neopixel:chamber layers: static 0 0 top (0, 0, 0, 1.0) @@ -153,8 +153,7 @@ layers: [led_effect critical_error] leds: neopixel:sb_leds - neopixel:chamber_left - neopixel:chamber_right + neopixel:chamber layers: strobe 1 1.5 add (1.0, 1.0, 1.0) breathing 2 0 difference (0.95, 0.0, 0.0) diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/motherboard.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/motherboard.cfg index 9a0896ea..ba57701b 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/motherboard.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/motherboard.cfg @@ -163,7 +163,7 @@ pin: PF6 kick_start_time: 0.5 heater: heater_bed cycle_time: 0.04 -max_power: 0.8 +max_power: 1 # tachometer_pin: ^PC2 # tachometer_ppr: 2 diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/stealthmax.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/stealthmax.cfg index 3a3182af..063fa142 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/stealthmax.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/hardware/stealthmax.cfg @@ -1,14 +1,88 @@ -[nevermore] -# These `fan_power_*` entries are for a DELTA BFB0712HF (StealthMax BOM) -# If you have a different fan then play with these numbers to your satisfaction. -# See full config documentation for details. -fan_power_passive: 0 -fan_power_automatic: 0 -fan_power_coefficient: 0.85 # lower max power to keep things much more quiet -# Disable untill bluetooth works -bt_address: 28:CD:C1:0B:01:AC -connection_initial_timeout: 0 - -[output_pin nevermore_power] -pin: PF9 -value: 1 +[sgp40] + +[mcu SM] +canbus_uuid: 87b7ace7855f + +# [temperature_sensor BME_IN] +# sensor_type: BME280 +# i2c_address: 118 +# i2c_mcu: SM +# i2c_bus: i2c1_PB8_PB9 + +# [temperature_sensor SGP_IN] +# sensor_type: SGP40 +# i2c_mcu: SM +# i2c_bus: i2c1_PB8_PB9 +# ref_temp_sensor: bme280 BME_IN +# ref_humidity_sensor: bme280 BME_IN + +# [temperature_sensor BME_OUT] +# sensor_type: BME280 +# i2c_address: 118 +# i2c_mcu: SM +# i2c_bus: i2c2_PB10_PB11 + +# [temperature_sensor SGP_OUT] +# sensor_type: SGP40 +# i2c_mcu: SM +# i2c_bus: i2c2_PB10_PB11 +# ref_temp_sensor: bme280 BME_OUT +# ref_humidity_sensor: bme280 BME_OUT + +[fan_generic stealthmax] +pin: SM:PB14 +tachometer_pin: SM:PB15 +tachometer_ppr: 2 + +[gcode_macro _NEVERMORE_VARS] +variable_printing: 0.8 +gcode: + + +[gcode_macro _NEVERMORE_PRINT_START] +description: Filament change compatibility +gcode: + {% set PRINTING = printer["gcode_macro _NEVERMORE_VARS"].printing|float %} + + SET_FAN_SPEED FAN=stealthmax SPEED={PRINTING} + +[gcode_macro _NEVERMORE_PRINT_END] +description: Filament change compatibility +gcode: + SET_FAN_SPEED FAN=stealthmax SPEED=0 + +# [temperature_sensor SM_PCB_Therm] +# sensor_type: Generic 3950 +# sensor_pin: SM:PA2 +# pullup_resistor: 4700 + +# [temperature_sensor SM_MCU] +# sensor_type: temperature_mcu +# sensor_mcu: SM +# min_temp: 0 +# max_temp: 100 + +# Uncomment below if using a UV thermistor + +# [temperature_sensor SM_UV_Therm] +# sensor_type: ATC Semitec 104GT-2 +# sensor_pin: SM:PA3 +# pullup_resistor: 4700 + +# Uncomment below if using UV LEDs (PCO Addon) + +# [output_pin uv] +# pin: SM:PA1 +# pwm:true +# shutdown_value: 0 +# value:0 +# cycle_time: 0.01 + +# Uncomment below if using a peltier for carbon cooling + +# [output_pin peltier] +# pin: SM:PD3 +# pwm:true +# shutdown_value: 0 +# value:0 +# cycle_time: 0.01 diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/macro.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/macro.cfg index b54807cd..6b95ba47 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/macro.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/macro.cfg @@ -19,7 +19,7 @@ gcode: SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=chambertemp VALUE={CHAMBER_TEMP} CLEAR_PAUSE - NEVERMORE_PRINT_START + _NEVERMORE_PRINT_START M140 S{BED_TEMP} @@ -102,7 +102,7 @@ gcode: _DISABLE_FILAMENT_SENSOR - NEVERMORE_PRINT_END + _NEVERMORE_PRINT_END [gcode_macro HEATSOAK] gcode: diff --git a/cells/nixos/hosts/voron/klipper/configs/klipper.d/main.cfg b/cells/nixos/hosts/voron/klipper/configs/klipper.d/main.cfg index 61b3d2cb..c11d01eb 100644 --- a/cells/nixos/hosts/voron/klipper/configs/klipper.d/main.cfg +++ b/cells/nixos/hosts/voron/klipper/configs/klipper.d/main.cfg @@ -1,9 +1,6 @@ [mcu] canbus_uuid: 42545159bd5a -[mcu back_xiao] -canbus_uuid: 6b76bb2f8b9c - [mcu hotkey] serial: /dev/serial/by-id/usb-Klipper_rp2040_E6625C4893826B33-if00 diff --git a/cells/nixos/hosts/voron/klipper/firmwares/katapult-manta-v2 b/cells/nixos/hosts/voron/klipper/firmwares/katapult-manta-v2 index 507f7b27..786b0cc3 100644 --- a/cells/nixos/hosts/voron/klipper/firmwares/katapult-manta-v2 +++ b/cells/nixos/hosts/voron/klipper/firmwares/katapult-manta-v2 @@ -33,7 +33,7 @@ CONFIG_MACH_STM32H723=y CONFIG_MACH_STM32H7=y CONFIG_HAVE_STM32_USBOTG=y CONFIG_HAVE_STM32_FDCANBUS=y -CONFIG_STM32_DFU_ROM_ADDRESS=0x1ff09800 +CONFIG_STM32_DFU_ROM_ADDRESS=0 # CONFIG_STM32_FLASH_START_0000 is not set CONFIG_STM32_FLASH_START_20000=y # CONFIG_STM32_CLOCK_REF_8M is not set @@ -44,7 +44,7 @@ CONFIG_STM32_CLOCK_REF_25M=y # CONFIG_STM32_CLOCK_REF_INTERNAL is not set CONFIG_CLOCK_REF_FREQ=25000000 CONFIG_STM32F0_TRIM=16 -CONFIG_STM32_USB_PA11_PA12=y +# CONFIG_STM32_USB_PA11_PA12 is not set # CONFIG_STM32_SERIAL_USART1 is not set # CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set # CONFIG_STM32_SERIAL_USART2 is not set @@ -56,27 +56,23 @@ CONFIG_STM32_USB_PA11_PA12=y # CONFIG_STM32_CANBUS_PA11_PB9 is not set # CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set # CONFIG_STM32_MMENU_CANBUS_PB12_PB13 is not set -# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set +CONFIG_STM32_MMENU_CANBUS_PD0_PD1=y # CONFIG_STM32_MMENU_CANBUS_PB0_PB1 is not set # CONFIG_STM32_MMENU_CANBUS_PD12_PD13 is not set # CONFIG_STM32_MMENU_CANBUS_PC2_PC3 is not set +CONFIG_STM32_CANBUS_PD0_PD1=y CONFIG_STM32_APP_START_20000=y -CONFIG_USBSERIAL=y -CONFIG_USB=y CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x6177 -CONFIG_USB_SERIAL_NUMBER_CHIPID=y CONFIG_USB_SERIAL_NUMBER="12345" - -# -# USB ids -# -# end of USB ids - -CONFIG_CANBUS_FREQUENCY=500000 +CONFIG_CANSERIAL=y +CONFIG_CANBUS=y +CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_CANBUS_FILTER=y CONFIG_INITIAL_PINS="" CONFIG_ENABLE_DOUBLE_RESET=y # CONFIG_ENABLE_BUTTON is not set # CONFIG_ENABLE_LED is not set CONFIG_BUILD_DEPLOYER=y CONFIG_HAVE_CHIPID=y +CONFIG_KATAPULT_VERSION="?" diff --git a/cells/nixos/hosts/voron/klipper/firmwares/katapult-stealthmax b/cells/nixos/hosts/voron/klipper/firmwares/katapult-stealthmax new file mode 100644 index 00000000..e88eb558 --- /dev/null +++ b/cells/nixos/hosts/voron/klipper/firmwares/katapult-stealthmax @@ -0,0 +1,80 @@ +CONFIG_LOW_LEVEL_OPTIONS=y +# CONFIG_MACH_LPC176X is not set +CONFIG_MACH_STM32=y +# CONFIG_MACH_RP2040 is not set +CONFIG_BOARD_DIRECTORY="stm32" +CONFIG_MCU="stm32g0b1xx" +CONFIG_CLOCK_FREQ=64000000 +CONFIG_FLASH_SIZE=0x20000 +CONFIG_FLASH_BOOT_ADDRESS=0x8000000 +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=0x24000 +CONFIG_STACK_SIZE=512 +CONFIG_FLASH_APPLICATION_ADDRESS=0x8000000 +CONFIG_FLASH_START=0x8000000 +CONFIG_LAUNCH_APP_ADDRESS=0x8002000 +CONFIG_BLOCK_SIZE=64 +CONFIG_STM32_SELECT=y +# CONFIG_MACH_STM32F103 is not set +# CONFIG_MACH_STM32F207 is not set +# CONFIG_MACH_STM32F401 is not set +# CONFIG_MACH_STM32F405 is not set +# CONFIG_MACH_STM32F407 is not set +# CONFIG_MACH_STM32F429 is not set +# CONFIG_MACH_STM32F446 is not set +# CONFIG_MACH_STM32F031 is not set +# CONFIG_MACH_STM32F042 is not set +# CONFIG_MACH_STM32F070 is not set +# CONFIG_MACH_STM32F072 is not set +# CONFIG_MACH_STM32G0B0 is not set +CONFIG_MACH_STM32G0B1=y +# CONFIG_MACH_STM32H723 is not set +# CONFIG_MACH_STM32H743 is not set +CONFIG_MACH_STM32G0=y +CONFIG_MACH_STM32G0Bx=y +CONFIG_HAVE_STM32_USBFS=y +CONFIG_HAVE_STM32_FDCANBUS=y +CONFIG_STM32_DFU_ROM_ADDRESS=0 +CONFIG_STM32_FLASH_START_0000=y +# CONFIG_STM32_FLASH_START_2000 is not set +CONFIG_STM32_CLOCK_REF_8M=y +# CONFIG_STM32_CLOCK_REF_12M is not set +# CONFIG_STM32_CLOCK_REF_16M is not set +# CONFIG_STM32_CLOCK_REF_20M is not set +# CONFIG_STM32_CLOCK_REF_25M is not set +# CONFIG_STM32_CLOCK_REF_INTERNAL is not set +CONFIG_CLOCK_REF_FREQ=8000000 +CONFIG_STM32F0_TRIM=16 +# CONFIG_STM32_USB_PA11_PA12 is not set +# CONFIG_STM32_SERIAL_USART1 is not set +# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set +# CONFIG_STM32_SERIAL_USART2 is not set +# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set +# CONFIG_STM32_SERIAL_USART3 is not set +# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set +# CONFIG_STM32_CANBUS_PA11_PA12 is not set +# CONFIG_STM32_CANBUS_PA11_PB9 is not set +# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set +# CONFIG_STM32_MMENU_CANBUS_PB5_PB6 is not set +# CONFIG_STM32_MMENU_CANBUS_PB12_PB13 is not set +# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set +CONFIG_STM32_MMENU_CANBUS_PB0_PB1=y +# CONFIG_STM32_MMENU_CANBUS_PD12_PD13 is not set +# CONFIG_STM32_MMENU_CANBUS_PC2_PC3 is not set +CONFIG_STM32_CANBUS_PB0_PB1=y +CONFIG_STM32_APP_START_2000=y +# CONFIG_STM32_APP_START_1000 is not set +CONFIG_USB_VENDOR_ID=0x1d50 +CONFIG_USB_DEVICE_ID=0x6177 +CONFIG_USB_SERIAL_NUMBER="12345" +CONFIG_CANSERIAL=y +CONFIG_CANBUS=y +CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_CANBUS_FILTER=y +CONFIG_INITIAL_PINS="" +CONFIG_ENABLE_DOUBLE_RESET=y +# CONFIG_ENABLE_BUTTON is not set +CONFIG_ENABLE_LED=y +CONFIG_STATUS_LED_PIN="PA13" +CONFIG_HAVE_CHIPID=y +CONFIG_KATAPULT_VERSION="?" diff --git a/cells/nixos/hosts/voron/klipper/firmwares/klipper-manta-v2 b/cells/nixos/hosts/voron/klipper/firmwares/klipper-manta-v2 index a1023209..82bf8a89 100644 --- a/cells/nixos/hosts/voron/klipper/firmwares/klipper-manta-v2 +++ b/cells/nixos/hosts/voron/klipper/firmwares/klipper-manta-v2 @@ -48,7 +48,7 @@ CONFIG_MACH_STM32H7=y CONFIG_HAVE_STM32_USBOTG=y CONFIG_HAVE_STM32_FDCANBUS=y CONFIG_HAVE_STM32_USBCANBUS=y -CONFIG_STM32_DFU_ROM_ADDRESS=0x1ff09800 +CONFIG_STM32_DFU_ROM_ADDRESS=0 CONFIG_STM32_FLASH_START_20000=y # CONFIG_STM32_FLASH_START_0000 is not set # CONFIG_STM32_CLOCK_REF_8M is not set @@ -72,40 +72,29 @@ CONFIG_STM32F0_TRIM=16 # CONFIG_STM32_CANBUS_PA11_PB9 is not set # CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set # CONFIG_STM32_MMENU_CANBUS_PB12_PB13 is not set -# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set +CONFIG_STM32_MMENU_CANBUS_PD0_PD1=y # CONFIG_STM32_MMENU_CANBUS_PB0_PB1 is not set # CONFIG_STM32_MMENU_CANBUS_PD12_PD13 is not set # CONFIG_STM32_MMENU_CANBUS_PC2_PC3 is not set -CONFIG_STM32_USBCANBUS_PA11_PA12=y -# CONFIG_STM32_CMENU_CANBUS_PB8_PB9 is not set -# CONFIG_STM32_CMENU_CANBUS_PB12_PB13 is not set -CONFIG_STM32_CMENU_CANBUS_PD0_PD1=y -# CONFIG_STM32_CMENU_CANBUS_PB0_PB1 is not set -# CONFIG_STM32_CMENU_CANBUS_PD12_PD13 is not set -# CONFIG_STM32_CMENU_CANBUS_PC2_PC3 is not set +# CONFIG_STM32_USBCANBUS_PA11_PA12 is not set CONFIG_STM32_CANBUS_PD0_PD1=y -CONFIG_USBCANBUS=y -CONFIG_USB=y CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x614e -CONFIG_USB_SERIAL_NUMBER_CHIPID=y CONFIG_USB_SERIAL_NUMBER="12345" - -# -# USB ids -# -# end of USB ids - CONFIG_WANT_GPIO_BITBANGING=y CONFIG_WANT_DISPLAYS=y CONFIG_WANT_SENSORS=y CONFIG_WANT_LIS2DW=y CONFIG_WANT_LDC1612=y +CONFIG_WANT_HX71X=y +CONFIG_WANT_ADS1220=y CONFIG_WANT_SOFTWARE_I2C=y CONFIG_WANT_SOFTWARE_SPI=y CONFIG_NEED_SENSOR_BULK=y +CONFIG_CANSERIAL=y CONFIG_CANBUS=y CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_CANBUS_FILTER=y CONFIG_INITIAL_PINS="PF9" CONFIG_HAVE_GPIO=y CONFIG_HAVE_GPIO_ADC=y diff --git a/cells/nixos/hosts/voron/klipper/firmwares/klipper-stealthmax b/cells/nixos/hosts/voron/klipper/firmwares/klipper-stealthmax new file mode 100644 index 00000000..7f9ca490 --- /dev/null +++ b/cells/nixos/hosts/voron/klipper/firmwares/klipper-stealthmax @@ -0,0 +1,109 @@ +CONFIG_LOW_LEVEL_OPTIONS=y +# CONFIG_MACH_AVR is not set +# CONFIG_MACH_ATSAM is not set +# CONFIG_MACH_ATSAMD is not set +# CONFIG_MACH_LPC176X is not set +CONFIG_MACH_STM32=y +# CONFIG_MACH_HC32F460 is not set +# CONFIG_MACH_RP2040 is not set +# CONFIG_MACH_PRU is not set +# CONFIG_MACH_AR100 is not set +# CONFIG_MACH_LINUX is not set +# CONFIG_MACH_SIMU is not set +CONFIG_BOARD_DIRECTORY="stm32" +CONFIG_MCU="stm32g0b1xx" +CONFIG_CLOCK_FREQ=64000000 +CONFIG_FLASH_SIZE=0x20000 +CONFIG_FLASH_BOOT_ADDRESS=0x8000000 +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=0x24000 +CONFIG_STACK_SIZE=512 +CONFIG_FLASH_APPLICATION_ADDRESS=0x8002000 +CONFIG_STM32_SELECT=y +# CONFIG_MACH_STM32F103 is not set +# CONFIG_MACH_STM32F207 is not set +# CONFIG_MACH_STM32F401 is not set +# CONFIG_MACH_STM32F405 is not set +# CONFIG_MACH_STM32F407 is not set +# CONFIG_MACH_STM32F429 is not set +# CONFIG_MACH_STM32F446 is not set +# CONFIG_MACH_STM32F765 is not set +# CONFIG_MACH_STM32F031 is not set +# CONFIG_MACH_STM32F042 is not set +# CONFIG_MACH_STM32F070 is not set +# CONFIG_MACH_STM32F072 is not set +# CONFIG_MACH_STM32G070 is not set +# CONFIG_MACH_STM32G071 is not set +# CONFIG_MACH_STM32G0B0 is not set +CONFIG_MACH_STM32G0B1=y +# CONFIG_MACH_STM32G431 is not set +# CONFIG_MACH_STM32G474 is not set +# CONFIG_MACH_STM32H723 is not set +# CONFIG_MACH_STM32H743 is not set +# CONFIG_MACH_STM32H750 is not set +# CONFIG_MACH_STM32L412 is not set +# CONFIG_MACH_N32G452 is not set +# CONFIG_MACH_N32G455 is not set +CONFIG_MACH_STM32G0=y +CONFIG_MACH_STM32G0Bx=y +CONFIG_HAVE_STM32_USBFS=y +CONFIG_HAVE_STM32_FDCANBUS=y +CONFIG_HAVE_STM32_USBCANBUS=y +CONFIG_STM32_DFU_ROM_ADDRESS=0 +CONFIG_STM32_FLASH_START_2000=y +# CONFIG_STM32_FLASH_START_0000 is not set +CONFIG_STM32_CLOCK_REF_8M=y +# CONFIG_STM32_CLOCK_REF_12M is not set +# CONFIG_STM32_CLOCK_REF_16M is not set +# CONFIG_STM32_CLOCK_REF_20M is not set +# CONFIG_STM32_CLOCK_REF_24M is not set +# CONFIG_STM32_CLOCK_REF_25M is not set +# CONFIG_STM32_CLOCK_REF_INTERNAL is not set +CONFIG_CLOCK_REF_FREQ=8000000 +CONFIG_STM32F0_TRIM=16 +# CONFIG_STM32_USB_PA11_PA12 is not set +# CONFIG_STM32_SERIAL_USART1 is not set +# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set +# CONFIG_STM32_SERIAL_USART2 is not set +# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set +# CONFIG_STM32_SERIAL_USART3 is not set +# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set +# CONFIG_STM32_SERIAL_USART5 is not set +# CONFIG_STM32_CANBUS_PA11_PA12 is not set +# CONFIG_STM32_CANBUS_PA11_PB9 is not set +# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set +# CONFIG_STM32_MMENU_CANBUS_PB12_PB13 is not set +# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set +CONFIG_STM32_MMENU_CANBUS_PB0_PB1=y +# CONFIG_STM32_MMENU_CANBUS_PD12_PD13 is not set +# CONFIG_STM32_MMENU_CANBUS_PC2_PC3 is not set +# CONFIG_STM32_USBCANBUS_PA11_PA12 is not set +CONFIG_STM32_CANBUS_PB0_PB1=y +CONFIG_USB_VENDOR_ID=0x1d50 +CONFIG_USB_DEVICE_ID=0x614e +CONFIG_USB_SERIAL_NUMBER="12345" +CONFIG_WANT_GPIO_BITBANGING=y +CONFIG_WANT_DISPLAYS=y +CONFIG_WANT_SENSORS=y +CONFIG_WANT_LIS2DW=y +CONFIG_WANT_LDC1612=y +CONFIG_WANT_HX71X=y +CONFIG_WANT_ADS1220=y +CONFIG_WANT_SOFTWARE_I2C=y +CONFIG_WANT_SOFTWARE_SPI=y +CONFIG_NEED_SENSOR_BULK=y +CONFIG_CANSERIAL=y +CONFIG_CANBUS=y +CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_CANBUS_FILTER=y +CONFIG_INITIAL_PINS="" +CONFIG_HAVE_GPIO=y +CONFIG_HAVE_GPIO_ADC=y +CONFIG_HAVE_GPIO_SPI=y +CONFIG_HAVE_GPIO_I2C=y +CONFIG_HAVE_GPIO_HARD_PWM=y +CONFIG_HAVE_STRICT_TIMING=y +CONFIG_HAVE_CHIPID=y +CONFIG_HAVE_STEPPER_BOTH_EDGE=y +CONFIG_HAVE_BOOTLOADER_REQUEST=y +CONFIG_INLINE_STEPPER_HACK=y diff --git a/cells/nixos/hosts/voron/klipper/klipper.nix b/cells/nixos/hosts/voron/klipper/klipper.nix index 76d6dc30..c9e714a4 100644 --- a/cells/nixos/hosts/voron/klipper/klipper.nix +++ b/cells/nixos/hosts/voron/klipper/klipper.nix @@ -106,6 +106,11 @@ in { enable = true; configFile = ./firmwares/klipper-buttons; }; + + stealthmax = { + enable = true; + configFile = ./firmwares/klipper-stealthmax; + }; }; katapult = { @@ -138,6 +143,11 @@ in { enable = true; configFile = ./firmwares/katapult-buttons; }; + + stealthmax = { + enable = true; + configFile = ./firmwares/katapult-stealthmax; + }; }; };