From eba75db6545dc4726c1ec7b5e9de5987954359bb Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Thu, 8 Feb 2024 22:22:14 +0100 Subject: [PATCH] Update Klipper with Fluidd. --- 3dprinter-klipper/DOCS.md | 1 - 3dprinter-klipper/Dockerfile | 34 +++---- 3dprinter-klipper/config.yaml | 8 +- 3dprinter-klipper/icon.png | Bin 49206 -> 0 bytes 3dprinter-klipper/logo.png | Bin 75254 -> 0 bytes .../rootfs/etc/cont-init.d/fluidd.sh | 17 ++++ .../rootfs/etc/cont-init.d/klippy.sh | 61 ++++++++----- .../rootfs/etc/cont-init.d/moonraker.sh | 41 +++++---- .../rootfs/etc/cont-init.d/proxy.sh | 2 + .../rootfs/etc/cont-init.d/simuavr.sh | 23 +++-- .../rootfs/etc/klipper/config/moonraker.conf | 28 ++++++ .../rootfs/etc/klipper/config/printer.cfg | 3 + .../etc/klipper/config/templates/fluidd.cfg | 13 +++ .../config/templates/generic_simulavr.cfg | 84 ++++++++++++++++++ .../etc/klipper/config/templates/host_mcu.cfg | 2 + ...{config_host_simulator => config_host_mcu} | 16 ++-- .../rootfs/etc/klipper/moonraker.conf | 10 --- .../rootfs/etc/klipper/printer.cfg | 3 - .../rootfs/etc/services.d/klipper_sim/run | 10 --- .../rootfs/etc/services.d/klippy/run | 11 ++- .../rootfs/etc/services.d/moonraker/run | 6 +- .../services.d/{klipper_sim => simulavr}/down | 0 .../rootfs/etc/services.d/simulavr/run | 4 +- .../usr/share/tempio/caddy/Caddyfile.gtpl | 17 ++-- 24 files changed, 286 insertions(+), 108 deletions(-) delete mode 100644 3dprinter-klipper/DOCS.md delete mode 100644 3dprinter-klipper/icon.png delete mode 100644 3dprinter-klipper/logo.png create mode 100644 3dprinter-klipper/rootfs/etc/cont-init.d/fluidd.sh create mode 100644 3dprinter-klipper/rootfs/etc/klipper/config/moonraker.conf create mode 100644 3dprinter-klipper/rootfs/etc/klipper/config/printer.cfg create mode 100644 3dprinter-klipper/rootfs/etc/klipper/config/templates/fluidd.cfg create mode 100644 3dprinter-klipper/rootfs/etc/klipper/config/templates/generic_simulavr.cfg create mode 100644 3dprinter-klipper/rootfs/etc/klipper/config/templates/host_mcu.cfg rename 3dprinter-klipper/rootfs/etc/klipper/{config_host_simulator => config_host_mcu} (76%) delete mode 100644 3dprinter-klipper/rootfs/etc/klipper/moonraker.conf delete mode 100644 3dprinter-klipper/rootfs/etc/klipper/printer.cfg delete mode 100644 3dprinter-klipper/rootfs/etc/services.d/klipper_sim/run rename 3dprinter-klipper/rootfs/etc/services.d/{klipper_sim => simulavr}/down (100%) diff --git a/3dprinter-klipper/DOCS.md b/3dprinter-klipper/DOCS.md deleted file mode 100644 index 28db2b6..0000000 --- a/3dprinter-klipper/DOCS.md +++ /dev/null @@ -1 +0,0 @@ -# Startup diff --git a/3dprinter-klipper/Dockerfile b/3dprinter-klipper/Dockerfile index a3b3ad3..45768d8 100644 --- a/3dprinter-klipper/Dockerfile +++ b/3dprinter-klipper/Dockerfile @@ -2,37 +2,37 @@ ARG BUILD_FROM="ghcr.io/home-assistant/amd64-base" FROM ${BUILD_FROM} # Setup path for persistent install of Python packages -ENV KLIPPER_PATH=/data/klipper -ENV KLIPPER_VENV_PATH=/data/python/klipper -ENV MOONRAKER_PATH=/data/moonraker -ENV MOONRAKER_VENV_PATH=/data/python/moonraker ENV ADDON_CONFIG_PATH=/config -ENV SIMULAVR_PATH=/data/simulavr +ENV ADDON_SRC_PATH=/config/src +ENV ADDON_VENV_PATH=/config/python -# Preparations for Klipper + +# Install required packages RUN apk add -U \ + # Proxy caddy \ + # Common git \ py3-virtualenv \ - python3-dev \ + iproute2 \ + # Klipper + libffi-dev \ gcc \ g++ \ - libffi-dev \ + python3-dev \ make \ - dbus \ - # For building for different platforms # AVR chip installation and building avrdude gcc-avr binutils-avr avr-libc \ # ARM chip installation and building - stm32flash newlib-arm-none-eabi \ - gcc-arm-none-eabi binutils-arm-none-eabi libusb pkgconf \ + gcc-arm-none-eabi binutils-arm-none-eabi newlib-arm-none-eabi \ + stm32flash \ + # Moonraker + libsodium-dev \ + patch \ # Simulavr cmake swig \ - # For Moonraker - patch \ - libsodium-dev \ - iproute2 \ - screen + # Fluidd + wget unzip # Copy root filesystem COPY rootfs / diff --git a/3dprinter-klipper/config.yaml b/3dprinter-klipper/config.yaml index 2566ed8..eaca0f9 100644 --- a/3dprinter-klipper/config.yaml +++ b/3dprinter-klipper/config.yaml @@ -1,7 +1,7 @@ name: "3DPrinter-Klipper" version: "2024.2.0" slug: "3dprinter-klipper" -description: "Klipper with Moonraker as an addon, bring your own frontend." +description: "Klipper with Moonraker and frontend(s) as an addon." arch: - armv7 - amd64 @@ -12,14 +12,20 @@ ingress: true webui: http://[HOST]:[PORT:7125] ports: 7125/tcp: null + 7130/tcp: null ports_description: 7125/tcp: Moonraker + 7130/tcp: Fluidd map: - addon_config:rw +gpio: true usb: true +uart: true options: + host_mcu: false simulavr: false schema: + host_mcu: "bool?" simulavr: "bool?" panel_icon: mdi:printer-3d panel_title: 3DPrinter-Klipper diff --git a/3dprinter-klipper/icon.png b/3dprinter-klipper/icon.png deleted file mode 100644 index 537eaa5d5ab559d383c3a0afa6fd9d7c47217681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49206 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 GF#Hc>uf_BL diff --git a/3dprinter-klipper/rootfs/etc/cont-init.d/fluidd.sh b/3dprinter-klipper/rootfs/etc/cont-init.d/fluidd.sh new file mode 100644 index 0000000..6dee404 --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/cont-init.d/fluidd.sh @@ -0,0 +1,17 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Add-on: 3dprinter-klipper +# Configures Fluidd +# ============================================================================== + +SRC_PATH=$ADDON_SRC_PATH/fluidd + +if [ ! -d "$SRC_PATH" ]; then + bashio::log "Get Fluidd source" + mkdir -p "$SRC_PATH" && cd "$SRC_PATH" || exit + wget -q -O fluidd.zip https://github.com/fluidd-core/fluidd/releases/download/v1.27.1/fluidd.zip + unzip fluidd.zip + rm fluidd.zip +else + bashio::log "Fluidd already installed" +fi diff --git a/3dprinter-klipper/rootfs/etc/cont-init.d/klippy.sh b/3dprinter-klipper/rootfs/etc/cont-init.d/klippy.sh index 07ba8c2..10bca85 100644 --- a/3dprinter-klipper/rootfs/etc/cont-init.d/klippy.sh +++ b/3dprinter-klipper/rootfs/etc/cont-init.d/klippy.sh @@ -1,33 +1,46 @@ #!/usr/bin/with-contenv bashio -# Install Klipper -if [ ! -d "$KLIPPER_PATH" ]; then - echo "Get Klipper source" - git clone https://github.com/Klipper3d/klipper "$KLIPPER_PATH" --depth 1 +SRC_PATH=$ADDON_SRC_PATH/klipper +VENV_PATH=$ADDON_VENV_PATH/klipper +CONFIG_PATH=$ADDON_CONFIG_PATH/moonraker/config + +# Get Klipper source. +if [ ! -d "$SRC_PATH" ]; then + bashio::log "Get Klipper source" + git clone https://github.com/Klipper3d/klipper "$SRC_PATH" else echo "Klipper already installed" fi -if [ ! -d "$KLIPPER_VENV_PATH" ]; then - echo "Prepare Klippy-env" - virtualenv "$KLIPPER_VENV_PATH" - "$KLIPPER_VENV_PATH"/bin/python -m pip install --upgrade pip - "$KLIPPER_VENV_PATH"/bin/pip install -r "$KLIPPER_PATH"/scripts/klippy-requirements.txt +# Install Klipper in virtual environment. +if [ ! -d "$VENV_PATH" ]; then + bashio::log "Prepare Klippy-env" + virtualenv "$VENV_PATH" + "$VENV_PATH"/bin/python -m pip install --upgrade pip + "$VENV_PATH"/bin/pip install -r "$SRC_PATH"/scripts/klippy-requirements.txt else - echo "Klippy env already installed" + bashio::log "Klippy env already installed" +fi +# Make sure config file(s) exists. +if [ ! -d "$CONFIG_PATH" ]; then + mkdir -p "$CONFIG_PATH" + cp -R /etc/klipper/config/* "$CONFIG_PATH" + ## Create log folder and file + mkdir -p $ADDON_CONFIG_PATH/moonraker/logs + touch $ADDON_CONFIG_PATH/moonraker/logs/klippy.log fi -# Add host simulator process -if [ ! -f "$ADDON_CONFIG_PATH"/bin/klipper_mcu_sim ]; then - mkdir -p "$ADDON_CONFIG_PATH"/bin/ - cp /etc/klipper/config_host_simulator /data/klipper/.config - cd /data/klipper || exit - make - ./scripts/flash-linux.sh - cp /usr/local/bin/klipper_mcu "$ADDON_CONFIG_PATH"/bin/klipper_mcu_sim -fi - -# Make sure config file exists. -if [ ! -f "$ADDON_CONFIG_PATH"/moonraker/config/printer.cfg ]; then - mkdir -p "$ADDON_CONFIG_PATH"/moonraker/config - cp /etc/klipper/printer.cfg "$ADDON_CONFIG_PATH"/moonraker/config/printer.cfg +# Build and add host process, if set. +if bashio::config.true 'host_mcu'; then + bashio::log "Enable host process." + BIN_PATH=$ADDON_CONFIG_PATH/bin + if [ ! -f "$BIN_PATH"/klipper_mcu_host ]; then + mkdir -p "$BIN_PATH" + cp /etc/klipper/config_host_mcu "$SRC_PATH"/.config + cd "$SRC_PATH" || exit + make + cp out/klipper.elf "$BIN_PATH"/klipper_mcu_host + fi + rm -f /etc/services.d/klipper_host/down +else + touch /etc/services.d/klipper_host/down fi diff --git a/3dprinter-klipper/rootfs/etc/cont-init.d/moonraker.sh b/3dprinter-klipper/rootfs/etc/cont-init.d/moonraker.sh index 14ce12d..c5c7e2e 100644 --- a/3dprinter-klipper/rootfs/etc/cont-init.d/moonraker.sh +++ b/3dprinter-klipper/rootfs/etc/cont-init.d/moonraker.sh @@ -1,20 +1,29 @@ #!/usr/bin/with-contenv bashio -# Install Moonraker -if [ ! -d "$MOONRAKER_PATH" ]; then - echo "Get Moonraker source" - git clone https://github.com/Arksine/moonraker.git "$MOONRAKER_PATH" --depth 1 -fi -if [ ! -d "$MOONRAKER_VENV_PATH" ]; then - echo "Prepare Moonraker-env" - virtualenv "$MOONRAKER_VENV_PATH" - "$MOONRAKER_VENV_PATH"/bin/python -m pip install --upgrade pip - "$MOONRAKER_VENV_PATH"/bin/pip install -r "$MOONRAKER_PATH"/scripts/moonraker-requirements.txt - "$MOONRAKER_VENV_PATH"/bin/pip install msgspec uvloop -fi +SRC_PATH=$ADDON_SRC_PATH/moonraker +VENV_PATH=$ADDON_VENV_PATH/moonraker +CONFIG_PATH=$ADDON_CONFIG_PATH/moonraker/config -# Make sure config exists. -if [ ! -f "$ADDON_CONFIG_PATH"/moonraker/config/moonraker.conf ]; then - mkdir -p "$ADDON_CONFIG_PATH"/moonraker/config - cp /etc/klipper/moonraker.conf "$ADDON_CONFIG_PATH"/moonraker/config/moonraker.conf +# Get Moonraker source. +if [ ! -d "$SRC_PATH" ]; then + bashio::log "Get Moonraker source" + git clone https://github.com/Arksine/moonraker.git "$SRC_PATH" +fi +# Install Moonraker in virtual environment. +if [ ! -d "$VENV_PATH" ]; then + bashio::log "Prepare Moonraker-env" + virtualenv "$VENV_PATH" + "$VENV_PATH"/bin/python -m pip install --upgrade pip + "$VENV_PATH"/bin/pip install -r "$SRC_PATH"/scripts/moonraker-requirements.txt + "$VENV_PATH"/bin/pip install msgspec uvloop +else + bashio::log "Moonraker env already installed" +fi +# Make sure config exists. +if [ ! -f "$CONFIG_PATH"/moonraker.conf ]; then + mkdir -p "$CONFIG_PATH" + cp /etc/klipper/config/moonraker.conf "$CONFIG_PATH"/moonraker.conf + ## Create log folder and file + mkdir -p $ADDON_CONFIG_PATH/moonraker/logs + touch $ADDON_CONFIG_PATH/moonraker/logs/moonraker.log fi diff --git a/3dprinter-klipper/rootfs/etc/cont-init.d/proxy.sh b/3dprinter-klipper/rootfs/etc/cont-init.d/proxy.sh index 4aa82f1..162d47b 100644 --- a/3dprinter-klipper/rootfs/etc/cont-init.d/proxy.sh +++ b/3dprinter-klipper/rootfs/etc/cont-init.d/proxy.sh @@ -11,6 +11,8 @@ bashio::var.json \ trusted_proxies "$(bashio::config 'trusted_proxies')" \ camera_url "$(bashio::config 'camera_url')" \ ingress_port "^$(bashio::addon.ingress_port)" \ + fluidd_src "$ADDON_SRC_PATH/fluidd" \ + mainsail_src "$ADDON_SRC_PATH/mainsail" \ | tempio \ -template /usr/share/tempio/caddy/Caddyfile.gtpl \ -out /etc/caddy/sites-enabled/moonraker.caddy diff --git a/3dprinter-klipper/rootfs/etc/cont-init.d/simuavr.sh b/3dprinter-klipper/rootfs/etc/cont-init.d/simuavr.sh index 41e8fcd..0af56c3 100644 --- a/3dprinter-klipper/rootfs/etc/cont-init.d/simuavr.sh +++ b/3dprinter-klipper/rootfs/etc/cont-init.d/simuavr.sh @@ -1,25 +1,30 @@ #!/usr/bin/with-contenv bashio +SRC_PATH=$ADDON_SRC_PATH/simulavr + if bashio::config.false 'simulavr'; then - bashio::log "Disable Simulavr" + bashio::log "Keep Simulavr disabled." touch /etc/services.d/simulavr/down return +else + rm -f /etc/services.d/simulavr/down fi # Install Simuavr -if [ ! -d "$SIMULAVR_PATH" ]; then +if [ ! -d "$SRC_PATH" ]; then echo "Get SimulAVR source" - git clone git://git.savannah.nongnu.org/simulavr.git "$SIMULAVR_PATH" - cd "$SIMULAVR_PATH" || exit + git clone git://git.savannah.nongnu.org/simulavr.git "$SRC_PATH" + cd "$SRC_PATH" || exit make python make build fi # Add simulavr process -if [ ! -f "$ADDON_CONFIG_PATH"/bin/klipper_mcu_simulavr ]; then - mkdir -p "$ADDON_CONFIG_PATH"/bin/ - cp /etc/klipper/config_simulavr /data/klipper/.config - cd /data/klipper || exit +BIN_PATH=$ADDON_CONFIG_PATH/bin +if [ ! -f "$BIN_PATH"/klipper_mcu_simulavr ]; then + mkdir -p "$BIN_PATH" + cp /etc/klipper/config_simulavr "$ADDON_SRC_PATH"/klipper/.config + cd "$ADDON_SRC_PATH"/klipper || exit make - cp out/klipper.elf "$ADDON_CONFIG_PATH"/bin/klipper_mcu_simulavr.elf + cp out/klipper.elf "$BIN_PATH"/klipper_mcu_simulavr.elf fi diff --git a/3dprinter-klipper/rootfs/etc/klipper/config/moonraker.conf b/3dprinter-klipper/rootfs/etc/klipper/config/moonraker.conf new file mode 100644 index 0000000..f741f9e --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/klipper/config/moonraker.conf @@ -0,0 +1,28 @@ +[server] +host: 0.0.0.0 +port: 7125 + +[authorization] +# force_logins: false +cors_domains: + * +trusted_clients: + 10.0.0.0/8 + 127.0.0.0/8 + 169.254.0.0/16 + 172.16.0.0/12 + 192.168.0.0/16 + FE80::/10 + ::1/128 + +[machine] +provider: none +validate_service: False + +[update_manager] +enable_system_updates: False + +[update_manager fluidd] +type: web +repo: fluidd-core/fluidd +path: /config/src/fluidd diff --git a/3dprinter-klipper/rootfs/etc/klipper/config/printer.cfg b/3dprinter-klipper/rootfs/etc/klipper/config/printer.cfg new file mode 100644 index 0000000..e43276b --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/klipper/config/printer.cfg @@ -0,0 +1,3 @@ +[include templates/fluidd.cfg] +# [include templates/host_mcu.cfg] +# [include templates/generic_simulavr.cfg] diff --git a/3dprinter-klipper/rootfs/etc/klipper/config/templates/fluidd.cfg b/3dprinter-klipper/rootfs/etc/klipper/config/templates/fluidd.cfg new file mode 100644 index 0000000..38dc92b --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/klipper/config/templates/fluidd.cfg @@ -0,0 +1,13 @@ +[virtual_sdcard] +path: /config/moonraker/gcodes + +[pause_resume] + +[display_status] + +[gcode_macro CANCEL_PRINT] +description: Cancel the actual running print +rename_existing: CANCEL_PRINT_BASE +gcode: + TURN_OFF_HEATERS + CANCEL_PRINT_BASE diff --git a/3dprinter-klipper/rootfs/etc/klipper/config/templates/generic_simulavr.cfg b/3dprinter-klipper/rootfs/etc/klipper/config/templates/generic_simulavr.cfg new file mode 100644 index 0000000..84c0894 --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/klipper/config/templates/generic_simulavr.cfg @@ -0,0 +1,84 @@ +# This file contains example pin mappings for testing with the +# "simulavr" program. To use this config, compile the firmware for an +# AVR atmega644p, enable "low-level configuration options", and enable +# "simulavr software emulation". Further details are in +# docs/Debugging.md. + +# See docs/Config_Reference.md for a description of parameters. + +[stepper_x] +# Pins: PA5, PA4, PA1 +step_pin: PA5 +dir_pin: PA4 +enable_pin: PA1 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PB0 +position_min: -0.25 +position_endstop: 0 +position_max: 200 + +[stepper_y] +# Pins: PA3, PA2 +step_pin: PA3 +dir_pin: PA2 +enable_pin: PA1 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PB1 +position_min: -0.25 +position_endstop: 0 +position_max: 200 + +[stepper_z] +# Pins: PC7, PC6 +step_pin: PC7 +dir_pin: PC6 +enable_pin: PA1 +microsteps: 16 +rotation_distance: 8 +endstop_pin: ^PB2 +position_min: 0.1 +position_endstop: 0.5 +position_max: 200 + +[extruder] +# Pins: PC3, PC2 +step_pin: PC3 +dir_pin: PC2 +enable_pin: PA1 +microsteps: 16 +rotation_distance: 33.500 +nozzle_diameter: 0.500 +filament_diameter: 3.500 +heater_pin: PB4 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA7 +control: pid +pid_Kp: 22.2 +pid_Ki: 1.08 +pid_Kd: 114 +min_temp: 0 +min_extrude_temp: 0 +max_temp: 210 + +[heater_bed] +heater_pin: PB3 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA0 +control: watermark +min_temp: 0 +max_temp: 110 + +[fan] +pin: PD6 + +[mcu] +serial: /tmp/pseudoserial + +[printer] +kinematics: cartesian +max_velocity: 500 +max_accel: 3000 +max_z_velocity: 250 +max_z_accel: 30 diff --git a/3dprinter-klipper/rootfs/etc/klipper/config/templates/host_mcu.cfg b/3dprinter-klipper/rootfs/etc/klipper/config/templates/host_mcu.cfg new file mode 100644 index 0000000..ba28758 --- /dev/null +++ b/3dprinter-klipper/rootfs/etc/klipper/config/templates/host_mcu.cfg @@ -0,0 +1,2 @@ +[mcu host] +serial: /tmp/klipper_host_mcu diff --git a/3dprinter-klipper/rootfs/etc/klipper/config_host_simulator b/3dprinter-klipper/rootfs/etc/klipper/config_host_mcu similarity index 76% rename from 3dprinter-klipper/rootfs/etc/klipper/config_host_simulator rename to 3dprinter-klipper/rootfs/etc/klipper/config_host_mcu index ffcb92b..001fe3e 100644 --- a/3dprinter-klipper/rootfs/etc/klipper/config_host_simulator +++ b/3dprinter-klipper/rootfs/etc/klipper/config_host_mcu @@ -8,13 +8,11 @@ # 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=y -CONFIG_BOARD_DIRECTORY="simulator" -CONFIG_CLOCK_FREQ=20000000 -CONFIG_SERIAL=y -CONFIG_SIMULATOR_SELECT=y -CONFIG_SERIAL_BAUD=250000 +CONFIG_MACH_LINUX=y +# CONFIG_MACH_SIMU is not set +CONFIG_BOARD_DIRECTORY="linux" +CONFIG_CLOCK_FREQ=50000000 +CONFIG_LINUX_SELECT=y CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x614e CONFIG_USB_SERIAL_NUMBER="12345" @@ -22,11 +20,13 @@ CONFIG_WANT_GPIO_BITBANGING=y CONFIG_WANT_DISPLAYS=y CONFIG_WANT_SENSORS=y CONFIG_WANT_LIS2DW=y +CONFIG_WANT_SOFTWARE_I2C=y CONFIG_WANT_SOFTWARE_SPI=y CONFIG_NEED_SENSOR_BULK=y CONFIG_CANBUS_FREQUENCY=1000000 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_INLINE_STEPPER_HACK=y \ No newline at end of file +CONFIG_INLINE_STEPPER_HACK=y diff --git a/3dprinter-klipper/rootfs/etc/klipper/moonraker.conf b/3dprinter-klipper/rootfs/etc/klipper/moonraker.conf deleted file mode 100644 index f03ee5b..0000000 --- a/3dprinter-klipper/rootfs/etc/klipper/moonraker.conf +++ /dev/null @@ -1,10 +0,0 @@ -[machine] -provider: none -validate_service: False - -[update_manager] -enable_system_updates: False - -[server] -host: 127.0.0.1 -port: 7125 diff --git a/3dprinter-klipper/rootfs/etc/klipper/printer.cfg b/3dprinter-klipper/rootfs/etc/klipper/printer.cfg deleted file mode 100644 index 07c8f8c..0000000 --- a/3dprinter-klipper/rootfs/etc/klipper/printer.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[mcu] -serial: /tmp/klipper_mcu_sim - diff --git a/3dprinter-klipper/rootfs/etc/services.d/klipper_sim/run b/3dprinter-klipper/rootfs/etc/services.d/klipper_sim/run deleted file mode 100644 index f3eaf9b..0000000 --- a/3dprinter-klipper/rootfs/etc/services.d/klipper_sim/run +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/with-contenv bashio -# ============================================================================== -# Add-on: 3dprinter-Klipper -# Runs Host Sim MCU -# ============================================================================== - -bashio::log.info "Starting Host Sim MCU..." - -## Run your program -exec "$ADDON_CONFIG_PATH"/bin/klipper_mcu_sim diff --git a/3dprinter-klipper/rootfs/etc/services.d/klippy/run b/3dprinter-klipper/rootfs/etc/services.d/klippy/run index 03cabef..b500c0b 100644 --- a/3dprinter-klipper/rootfs/etc/services.d/klippy/run +++ b/3dprinter-klipper/rootfs/etc/services.d/klippy/run @@ -6,5 +6,14 @@ bashio::log.info "Starting Klippy..." + +if bashio::config.true 'host_mcu'; then + while [ ! -e /tmp/klipper_host_mcu ] + do + bashio::log "Wait for klipper_host_mcu" + sleep 5 + done +fi + ## Run your program -exec "$KLIPPER_VENV_PATH"/bin/python "$KLIPPER_PATH"/klippy/klippy.py "$ADDON_CONFIG_PATH"/moonraker/config/printer.cfg -a /tmp/klippy_uds -l "$ADDON_CONFIG_PATH"/moonraker/logs/klippy.log +exec "$ADDON_VENV_PATH"/klipper/bin/python "$ADDON_SRC_PATH"/klipper/klippy/klippy.py "$ADDON_CONFIG_PATH"/moonraker/config/printer.cfg -a /tmp/klippy_uds -l "$ADDON_CONFIG_PATH"/moonraker/logs/klippy.log diff --git a/3dprinter-klipper/rootfs/etc/services.d/moonraker/run b/3dprinter-klipper/rootfs/etc/services.d/moonraker/run index 59af285..97b2098 100644 --- a/3dprinter-klipper/rootfs/etc/services.d/moonraker/run +++ b/3dprinter-klipper/rootfs/etc/services.d/moonraker/run @@ -6,5 +6,9 @@ bashio::log.info "Starting Moonraker..." +## Preparations, create log folder and file +mkdir -p "$ADDON_CONFIG_PATH"/moonraker/logs +touch "$ADDON_CONFIG_PATH"/moonraker/logs/moonraker.log + ## Run your program -exec "$MOONRAKER_VENV_PATH"/bin/python "$MOONRAKER_PATH"/moonraker/moonraker.py -d "$ADDON_CONFIG_PATH"/moonraker +exec "$ADDON_VENV_PATH"/moonraker/bin/python "$ADDON_SRC_PATH"/moonraker/moonraker/moonraker.py -d "$ADDON_CONFIG_PATH"/moonraker -v diff --git a/3dprinter-klipper/rootfs/etc/services.d/klipper_sim/down b/3dprinter-klipper/rootfs/etc/services.d/simulavr/down similarity index 100% rename from 3dprinter-klipper/rootfs/etc/services.d/klipper_sim/down rename to 3dprinter-klipper/rootfs/etc/services.d/simulavr/down diff --git a/3dprinter-klipper/rootfs/etc/services.d/simulavr/run b/3dprinter-klipper/rootfs/etc/services.d/simulavr/run index 2fcfa74..bbcb11b 100644 --- a/3dprinter-klipper/rootfs/etc/services.d/simulavr/run +++ b/3dprinter-klipper/rootfs/etc/services.d/simulavr/run @@ -7,5 +7,5 @@ bashio::log.info "Starting SimulAVR MCU..." ## Run your program -export PYTHONPATH="$SIMULAVR_PATH"/build/pysimulavr/ -exec "$KLIPPER_PATH"/scripts/avrsim.py "$ADDON_CONFIG_PATH"/bin/klipper_mcu_simulavr.elf +export PYTHONPATH=$ADDON_SRC_PATH/simulavr/build/pysimulavr +exec "$ADDON_SRC_PATH"/klipper/scripts/avrsim.py "$ADDON_CONFIG_PATH"/bin/klipper_mcu_simulavr.elf diff --git a/3dprinter-klipper/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl b/3dprinter-klipper/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl index 3a783c3..3f74ed7 100644 --- a/3dprinter-klipper/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl +++ b/3dprinter-klipper/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl @@ -1,9 +1,16 @@ -# Will be exposed by default. -# :7125 { -# reverse_proxy http://127.0.0.1:7125 -# } +(fluidd) { + root * {{ .fluidd_src }} + file_server +} # Ingress :8099 { - reverse_proxy http://127.0.0.1:7125 + handle /websocket* { + reverse_proxy http://127.0.0.1:7125 + } + import fluidd +} +# Fluidd +:7130 { + import fluidd }