728x90

출처

ffmpeg 설치

pi@orangepiplus2e:~$ sudo apt install ffmpeg

웹캠, 타임랩스 저장 설정

상단의 [Settings] 아키콘 선택

Stream URL 입력하고, [Test] 버튼 선택 (예 : http://192.168.0.36:4998/?action=stream)

Stream test 창에서 카메라의 영상을 확인하고, [Close] 버튼 선택

Snapshot URL 입력하고, [Test] 버튼 선택 (예 : http://192.168.0.36:4998/?action=snapshot)

Snapshot test 창에서 카메라의 이미지를 확인하고, [Close] 버튼 선택

Path to FFMPEG 에 /usr/bin/ffmpeg 입력하고, [Test] 버튼 선택, The path is valid 메시지 확인 하고, [Save] 버튼 선택

[Timelapse] 텝에서 경고가 사라진 것을 확인

728x90
728x90

출처

python2 설치

pi@orangepiplus2e:~/klipper$ sudo apt install python-is-python2 python2-minimal python-dev-is-python2 gcc-arm-none-eabi

Klipper 설치전 설치 도메인 추가

Klipper 소스 다운로드

pi@orangepiplus2e:~/klipper$ sudo vi /etc/resolv.conf

8.8.8.8 도메인 서버 추가

nameserver 8.8.8.8

네트워크 서비스 재시작

pi@orangepiplus2e:~/klipper$ sudo systemctl restart networking.service

Klipper 설치

Klipper 소스 다운로드

pi@orangepiplus2e:~$ git clone https://github.com/Klipper3d/klipper

Klipper 설치전 종속성있는 패키지 자동 설치

pi@orangepiplus2e:~$ sudo apt purge command-not-found 
pi@orangepiplus2e:~$ sudo apt --purge autoremove
pi@orangepiplus2e:~$ sudo bash -c 'apt update && apt full-upgrade && apt autoremove && apt clean'
pi@orangepiplus2e:~$ cd ~/klipper
pi@orangepiplus2e:~/klipper$ scripts/install-octopi.sh
 
 
###### Running apt-get update...
기존:1 https://mirrors.bfsu.edu.cn/armbian bullseye InRelease                                                      
기존:2 http://deb.debian.org/debian bullseye InRelease                                                             
기존:3 http://deb.debian.org/debian bullseye-updates InRelease                                                    
기존:4 http://deb.debian.org/debian bullseye-backports InRelease
기존:5 http://security.debian.org bullseye-security InRelease
패키지 목록을 읽는 중입니다... 완료                       
 
 
###### Installing packages...
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료        
주의, 'python-dev' 대신에 'python-dev-is-python2' 패키지를 선택합니다
주의, 정규식 'libusb-1.0'에 대해 'libusb-1.0-0-dev'을(를) 선택합니다
주의, 정규식 'libusb-1.0'에 대해 'libusb-1.0-doc'을(를) 선택합니다
주의, 정규식 'libusb-1.0'에 대해 'libusb-1.0-0'을(를) 선택합니다
binutils-arm-none-eabi is already the newest version (2.35.2-2+14+b2).
binutils-arm-none-eabi 패키지는 수동설치로 지정합니다.
build-essential is already the newest version (12.9).
gcc-arm-none-eabi is already the newest version (15:8-2019-q3-1+b1).
libusb-1.0-0 is already the newest version (2:1.0.24-3).
libusb-1.0-0 패키지는 수동설치로 지정합니다.
python-dev-is-python2 is already the newest version (2.7.18-9).
The following additional packages will be installed:
  libftdi1 libhidapi-libusb0 libnewlib-dev libusb-0.1-4 python3-appdirs python3-distlib python3-filelock
  python3-importlib-metadata python3-more-itertools python3-six python3-virtualenv python3-zipp
제안하는 패키지:
  dfu-programmer avrdude-doc gcc-doc ncurses-doc libnewlib-doc
추천하는 패키지:
  libstdc++-arm-none-eabi-newlib
다음 새 패키지를 설치할 것입니다:
  avr-libc avrdude binutils-avr dfu-util gcc-avr libffi-dev libftdi1 libhidapi-libusb0 libncurses-dev
  libnewlib-arm-none-eabi libnewlib-dev libusb-0.1-4 libusb-1.0-0-dev libusb-1.0-doc libusb-dev python3-appdirs
  python3-distlib python3-filelock python3-importlib-metadata python3-more-itertools python3-six
  python3-virtualenv python3-zipp stm32flash virtualenv
0개 업그레이드, 25개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
 
 
###### Installing system start script...
 
 
###### Installing system start configuration...
 
 
###### Launching Klipper host software...
Restarting klipper (via systemctl): klipper.service.

펌웨어 빌드 설정

3D 프린터용의 보드용 펌웨어 제작을 위해서 설정화면을 아래와 같이 실행하고 설정합니다.

pi@orangepiplus2e:~/klipper$ make menuconfig

펌웨어 빌드

Configuration saved to '/home/pi/klipper/.config'
pi@orangepiplus2e:~/klipper$ make
  Compiling out/src/sched.o
  Compiling out/src/command.o
 
... 생략 ...
 
  Compiling out/src/stm32/hard_pwm.o
  Building out/compile_time_request.o
Version: v0.10.0-293-ge3beafbd
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
  Creating hex file out/klipper.bin

Orange Pi와 Ender 5 연결

3D 프린터와 연결된 USB 주소 확인

pi@orangepiplus2e:~$ ls /dev/serial/by-id/*
/dev/serial/by-id/usb-Klipper_stm32f103xe_38FFD9055641343421871443-if00

~/printer.cfg 파일 (Ender 5 with SKR Mini e3 V2.0 용)

알리에서 구입한 Micro Swiss Direct Drive Extruder for Creality Ender 5 클론 제품의 printer.cfg (지금까지 인터넷에서 찾아서 최적화 했음)

~/printer.cfg 파일 생성

pi@orangepiplus2e:~$ vi ~/printer.cfg

printer.cfg 내용

# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3 v2.0. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader" and USB communication. Also,
# select "Enable extra low-level configuration options" and configure
# "GPIO pins to set at micro-controller startup" to "!PA14".

# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.

# See docs/Config_Reference.md for a description of parameters.

# [gcode_macro START_PRINT]
# gcode:
#     {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
#     {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
#     # Start bed heating
#     M140 S{BED_TEMP}
#     # Use absolute coordinates
#     G90
#     # Reset the G-Code Z offset (adjust Z offset if needed)
#     SET_GCODE_OFFSET Z=0.0
#     # Home the printer
#     G28
# 
#     G92 E0 ;Reset Extruder
#     G1 Z2.0 F3000 ;Move Z Axis up
#     G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
#     G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
#     G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
#     G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
#     G92 E0 ;Reset Extruder
# 
#     # Move the nozzle near the bed
#     G1 Z5 F3000
#     # Move the nozzle very close to the bed
#     G1 Z0.15 F300
#     # Wait for bed to reach temperature
#     M190 S{BED_TEMP}
#     # Set and wait for nozzle to reach temperature
#     M109 S{EXTRUDER_TEMP}
# 
# [gcode_macro END_PRINT]
# gcode:
#     # Turn off bed, extruder, and fan
#     M140 S0
#     M104 S0
#     M106 S0
#     # Move nozzle away from print while retracting
#     G91
#     G1 X-2 Y-2 E-3 F300
#     # Raise nozzle by 10mm
#     G1 Z10 F3000
#     G90
#     # Disable steppers
#     M84
# 
# [virtual_sdcard]
# path: ~/gcode_files
# 
# [display_status]
# 
# [pause_resume]
# 
# [gcode_macro CANCEL_PRINT]
# description: Cancel the actual running print
# rename_existing: CANCEL_PRINT_BASE
# gcode:
#   TURN_OFF_HEATERS
#   CANCEL_PRINT_BASE

[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC0
position_endstop: 220
position_max: 220
homing_speed: 50

[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
run_current: 0.580
stealthchop_threshold: 999999

[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC1
position_endstop: 220
position_max: 220
homing_speed: 50

[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
run_current: 0.580
stealthchop_threshold: 999999

[stepper_z]
step_pin: PB0
dir_pin: !PC5
enable_pin: !PB1
microsteps: 16
rotation_distance: 8
endstop_pin: ^PC2
position_endstop: 0.0
position_max: 300

[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
run_current: 0.580
stealthchop_threshold: 999999

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD2
microsteps: 16
# rotation_distance: 33.500
# rotation_distance: 33.00934
rotation_distance: 24.395
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250

[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
run_current: 0.650
stealthchop_threshold: 999999

[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

[heater_fan nozzle_cooling_fan]
pin: PC7

[fan]
pin: PC6

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f103xe_38FFD9055641343421871443-if00

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

[static_digital_output usb_pullup_enable]
pins: !PA14

[board_pins]
aliases:
    # EXP1 header
    EXP1_1=PB5,  EXP1_3=PA9,   EXP1_5=PA10, EXP1_7=PB8,  EXP1_9=,
    EXP1_2=PA15, EXP1_4=, EXP1_6=PB9,  EXP1_8=PB15, EXP1_10=<5V>

# See the sample-lcd.cfg file for definitions of common LCD displays.

OctoKlipper - OctoPrint Plugin 설치

상단의 [Settings] 메뉴 선택
오른쪽 [Plugin Manager] 메뉴 선택
신규 Plugin 설치하기 위해서 [Get More] 메뉴 선택
검색창에 Klipper 입력하고 목록에서 OctoKlipper의 [Install] 버튼 선택
설치가 완료되면 [Close] 버튼 선택
정상적으로 OctoKlipper 플러그인이 설치되면 상단에 [Klipper Standby] 버튼이 생성된 것을 확인 할 수 있습니다.

OctoKlipper 프린터 연결

[Connect] 버튼을 선택하면 프린터와 연결을 시도 합니다.
정상적으로 연결이 된 경우 Message 창에서 연결을 확인 할 수 있습니다.

OctoKlipper 설정

상단의 [Settings] 메뉴 선택
오른쪽 [OctoKlipper] 메뉴를 선택하면 Klipper 설정 화면을 볼 수 있습니다.

 

728x90
728x90

출처

OS 업데이트

pi@orangepiplus2e:~$ sudo apt update
pi@orangepiplus2e:~$ sudo apt upgrade

파이썬 버전 확인

OctoPrint 는 파이썬 환경에서 실행되므로 파이썬을 설치합니다.

pi@orangepiplus2e:~$ sudo apt-get install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential

파이썬 버전 확인

pi@orangepiplus2e:~$ python3 --version
Python 3.9.2

OctoPrint 설치

OctoPrint 작업 디렉토리 생성

pip 최신버전으로 업그레이드, OctoPrint 가상환경 생성

pi@orangepiplus2e:~$ python3 -m venv OctoPrint

OctoPrint 설치

pi@orangepiplus2e:~$ OctoPrint/bin/pip3 install OctoPrint

pi 계정 권한 변경

pi 계정에 터미널과 시리얼 접근권한을 추가해서 옥토프린트가 3D 프린터를 컨트롤할 수 있도록 합니다.

pi@orangepiplus2e:~$ sudo usermod -a -G tty pi 
pi@orangepiplus2e:~$ sudo usermod -a -G dialout pi

OctoPrint 서버 수동실행 (Ctrl + C 서버 종료)

pi@orangepiplus2e:~$ OctoPrint/bin/octoprint serve
2022-03-11 02:34:37,332 - octoprint.startup - INFO - ******************************************************************************
2022-03-11 02:34:37,335 - octoprint.startup - INFO - Starting OctoPrint 1.7.3
2022-03-11 02:34:37,337 - octoprint.startup - INFO - ******************************************************************************
 
... 생략 ...
 
2022-03-11 02:34:54,604 - octoprint.environment - INFO - Detected environment is Python 3.9.2 under Linux (linux). Details:
|  hardware:
|    cores: 4
|    freq: 1368.0
|    ram: 2111889408
|  os:
|    bits: 32
|    id: linux
|    platform: linux
|  python:
|    pip: 20.3.4
|    version: 3.9.2
|    virtualenv: /home/pi/OctoPrint  
 
... 생략 ...
 
2022-03-11 02:35:13,893 - octoprint.plugins.softwareupdate - INFO - Saved version cache to disk
2022-03-11 02:35:45,849 - octoprint.server.util.flask.PreemptiveCache - INFO - Adding entry for / and {'path': '/', 'base_url': 'http://192.168.0.36:5000/', 'query_string': 'l10n=en', '_timestamp': 1646933745.8489377, '_count': 1}
2022-03-11 02:35:57,403 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.0.30

OctoPrint 접속

OctoPrint 서버 자동실행

pi@orangepiplus2e:~$ wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init
pi@orangepiplus2e:~$ sudo mv octoprint.init /etc/init.d/octoprint
pi@orangepiplus2e:~$ wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default
pi@orangepiplus2e:~$ sudo mv octoprint.default /etc/default/octoprint
pi@orangepiplus2e:~$ sudo chmod +x /etc/init.d/octoprint

OctoPrint 서비스 등록

pi@orangepiplus2e:~$ sudo update-rc.d octoprint defaults

OctoPrint 서버 환경설정 (/etc/default/octoprint)

pi@orangepiplus2e:~$ vi /etc/default/octoprint

16번줄의 DAEMON 앞에 주석(#)를 제거, DAEMON 파일 경로도 정확한지 확인하고 저장합니다.

# Configuration for /etc/init.d/octoprint

# The init.d script will only run if this variable non-empty.
OCTOPRINT_USER=pi

# base directory to use
#BASEDIR=/home/pi/.octoprint

# configuration file to use
#CONFIGFILE=/home/pi/.octoprint/config.yaml

# On what port to run daemon, default is 5000
PORT=5000

# Path to the OctoPrint executable, you need to set this to match your installation!
DAEMON=/home/pi/OctoPrint/bin/octoprint

# What arguments to pass to octoprint, usually no need to touch this
DAEMON_ARGS="--port=$PORT"

# Umask of files octoprint generates, Change this to 000 if running octoprint as its own, separate user
UMASK=022

# Process priority, 0 here will result in a priority 20 process.
# -2 ensures Octoprint has a slight priority over user processes.
NICELEVEL=-2

# Should we run at startup?
START=yes

OctoPrint 서비스 실행

pi@orangepiplus2e:~$ sudo service octoprint start

OctoPrint 서비스 종료

pi@orangepiplus2e:~$ sudo service octoprint stop
728x90
728x90

출처

OS 업데이트

pi@NanoPi-NEO2-Black:~$ sudo apt update
pi@NanoPi-NEO2-Black:~$ sudo apt-get upgrade

파이썬 설치

OctoPrint 는 파이썬 환경에서 실행되므로 파이썬을 설치합니다.

pi@NanoPi-NEO2-Black:~$ sudo apt-get install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential

파이썬 버전 확인

pi@NanoPi-NEO2-Black:~$ python3 --version
Python 3.5.2

OctoPrint 설치

OctoPrint 작업 디렉토리 생성

pip 최신버전으로 업그레이드, OctoPrint 가상환경 생성

pi@NanoPi-NEO2-Black:~$ /home/pi/OctoPrint/bin/python3 -m pip install --upgrade pip
Collecting pip
  Using cached pip-22.0.4-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.1.1
    Uninstalling pip-20.1.1:
      Successfully uninstalled pip-20.1.1
Successfully installed pip-22.0.4
pi@NanoPi-NEO2-Black:~$ python3 -m venv OctoPrint

OctoPrint 설치

pi@NanoPi-NEO2-Black:~$ OctoPrint/bin/pip3 install OctoPrint

pi 계정 권한 변경

pi 계정에 터미널과 시리얼 접근권한을 추가해서 옥토프린트가 3D 프린터를 컨트롤할 수 있도록 합니다.

pi@raspberrypi:~$ sudo usermod -a -G tty pi 
pi@raspberrypi:~$ sudo usermod -a -G dialout pi

OctoPrint 서버 수동실행 (Ctrl + C 서버 종료)

pi@NanoPi-NEO2-Black:~$ OctoPrint/bin/octoprint serve
2022-03-09 16:16:16,731 - octoprint.startup - INFO - ******************************************************************************
2022-03-09 16:16:16,735 - octoprint.startup - INFO - Starting OctoPrint 1.7.3
2022-03-09 16:16:16,736 - octoprint.startup - INFO - ******************************************************************************
 
... 생략 ...
 

2022-03-09 16:16:27,791 - octoprint.environment - INFO - Detected environment is Python 3.7.9 under Linux (linux). Details:
|  hardware:
|    cores: 4
|    freq: 1248.0
|    ram: 1040207872
|  os:
|    bits: 64
|    id: linux
|    platform: linux
|  python:
|    pip: 22.0.4
|    version: 3.7.9
|    virtualenv: /home/pi/OctoPrint  

OctoPrint 접속

OctoPrint 서버 자동실행

pi@NanoPi-NEO2-Black:~$ wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init
pi@NanoPi-NEO2-Black:~$ sudo mv octoprint.init /etc/init.d/octoprint
pi@NanoPi-NEO2-Black:~$ wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default 
pi@NanoPi-NEO2-Black:~$ sudo mv octoprint.default /etc/default/octoprint
pi@NanoPi-NEO2-Black:~$ sudo chmod +x /etc/init.d/octoprint

OctoPrint 서비스 등록

pi@NanoPi-NEO2-Black:~$ sudo update-rc.d octoprint defaults

OctoPrint 서버 환경설정 (/etc/default/octoprint)

pi@raspberrypi:~$ vi /etc/default/octoprint

16번줄의 DAEMON 앞에 주석(#)를 제거, DAEMON 파일 경로도 정확한지 확인하고 저장합니다.

# Configuration for /etc/init.d/octoprint

# The init.d script will only run if this variable non-empty.
OCTOPRINT_USER=pi

# base directory to use
#BASEDIR=/home/pi/.octoprint

# configuration file to use
#CONFIGFILE=/home/pi/.octoprint/config.yaml

# On what port to run daemon, default is 5000
PORT=5000

# Path to the OctoPrint executable, you need to set this to match your installation!
DAEMON=/home/pi/OctoPrint/bin/octoprint

# What arguments to pass to octoprint, usually no need to touch this
DAEMON_ARGS="--port=$PORT"

# Umask of files octoprint generates, Change this to 000 if running octoprint as its own, separate user
UMASK=022

# Process priority, 0 here will result in a priority 20 process.
# -2 ensures Octoprint has a slight priority over user processes.
NICELEVEL=-2

# Should we run at startup?
START=yes

OctoPrint 서비스 실행

pi@NanoPi-NEO2-Black:~$ sudo service octoprint start

OctoPrint 서비스 종료

pi@NanoPi-NEO2-Black:~$ sudo service octoprint stop
728x90
728x90

출처

Fluidd 다운로드

다운로드 사이트 : https://github.com/fluidd-core/fluidd/releases

이미지 복원

Etcher에서 [Flash from file] 메뉴 선택
Fluidd 이미지 파일 선택
Etcher에서 [Select target] 메뉴 선택
SD메모리 선택
Etcher에서 [Flash] 메뉴를 선택해서 이미지 복원 시작

wifi 설정

boot드라이버 fluiddpi-wpa-supplicant.txt 파일 수정

3D 프린터용 펌웨어 빌드

펌웨어 설정

해당 3D 프린터 보드용 펌웨어 제작을 위해서 설정화면을 아래와 같이 실행하고 설정합니다.

pi@fluiddpi:~ $ cd ~/klipper
pi@fluiddpi:~/klipper $ make menuconfig

Sample 파일을 참조

SKR Mini E3 2.0 용 Sample 파일을 참조해서 펌웨어 컴파일 정보를 확인 할 수 있습니다.

SKR Mini E3 2.0 용 펌웨어 설정

빌드

Configuration saved to '/home/pi/klipper/.config'
pi@fluiddpi:~/klipper$ make
  Creating symbolic link out/board
  Building out/autoconf.h
  Compiling out/src/sched.o
 
... 생략 ...
 
  Building out/compile_time_request.o
Version: v0.10.0-283-g4a8aece6
  Preprocessing out/src/generic/armcm_link.ld
  Linking out/klipper.elf
  Creating hex file out/klipper.bin
pi@fluiddpi:~/klipper$

포트 포워딩 했을 경우 외부에서 접속 가능 하도록 설정

API 서버 접속 불가 확인
나의 IP 확인

API 서버를 외부에서 접근 가능하도록 설정

klipper_config/moonraker.conf 편집

pi@fluiddpi:~ $ cd klipper_config/
pi@fluiddpi:~/klipper_config $ vi moonraker.conf

cors_domains 항목에 trusted_clients 항목에 내IP 추가

[authorization]

trusted_clients:
  222.229.97.226/32
  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

Klipper 재실행

pi@fluiddpi:~/klipper_config $ sudo systemctl restart klipper.service

API 서버 설정

MJPG-streamer 서비스

MJPG-streamer 서비스 파일

pi@fluiddpi:~$ vi /etc/systemd/system/webcamd.service

MJPG-streamer 서비스 상태 확인

pi@fluiddpi:~$ sudo systemctl status webcamd.service
[0m webcamd.service - the FluiddPI webcam daemon (based on OctoPi) with the user specified config
     Loaded: loaded (/etc/systemd/system/webcamd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-03-05 03:53:52 GMT; 24min ago
    Process: 414 ExecStart=/usr/local/bin/webcamd (code=exited, status=0/SUCCESS)
   Main PID: 487 (mjpg_streamer)
      Tasks: 3 (limit: 1935)
        CPU: 3.236s
     CGroup: /system.slice/webcamd.service
             붴487 ./mjpg_streamer -o output_http.so -w ./www-mjpgstreamer -n -i input_uvc.so -r 640x480 -f 10 -d /dev/video0
 
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: Format............: JPEG
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: TV-Norm...........: DEFAULT
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: www-folder-path......: ./www-mjpgstreamer/
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: HTTP TCP port........: 8080
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: HTTP Listen Address..: (null)
Mar 05 03:53:52 fluiddpi systemd[1]: Started the FluiddPI webcam daemon (based on OctoPi) with the user specified config.
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: username:password....: disabled
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: commands.............: disabled
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: starting input plugin input_uvc.so
Mar 05 03:53:52 fluiddpi mjpg_streamer[487]: MJPG-streamer [487]: starting output plugin: output_http.so (ID: 00)

MJPG-streamer input_raspicam.so 빌드

input_raspicam.so 파일을 빌드하기 위해서 /opt/vc/include 디렉토리를 참조하는데 fluidd 배포판 이미지에는 누락되어 있어 수동으로 설치가 필요합니다.

pi@fluiddpi:~$ git clone https://github.com/raspberrypi/userland
pi@fluiddpi:~$ cd userland
pi@fluiddpi:~/userland$ ./buildme

MJPG-streamer 빌드

pi@raspberrypi:~$ sudo apt-get install cmake libjpeg9-dev imagemagick libv4l-dev libgphoto2-dev
pi@raspberrypi:~$ git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer-raspi
pi@fluiddpi:~ $ cd mjpg-streamer-raspi/mjpg-streamer-experimental/
pi@fluiddpi:~/mjpg-streamer-raspi/mjpg-streamer-experimental$ cmake CMakeLists.txt
pi@raspberrypi:~/mjpg-streamer/mjpg-streamer-experimental$ make
pi@fluiddpi:~/mjpg-streamer-raspi/mjpg-streamer-experimental$ cp plugins/input_raspicam/input_raspicam.so ~/mjpg-streamer/

MJPG-streamer 설정 파일(webcam.txt) 수정

pi@fluiddpi:~$ vi ~/klipper_config/webcam.txt

input_raspicam.so 사용하기

camera="raspi"

MJPG-streamer 수동실행

pi@fluiddpi:~/mjpg-streamer-raspi/mjpg-streamer-experimental $ /usr/local/bin/webcamd
Starting up webcamDaemon...
 
--- Configuration: ----------------------------
cfg_file:      /home/pi/klipper_config/webcam.txt
camera:        raspi
usb options:   -r 640x480 -f 10
raspi options: -fps 10
http options:  -w ./www-mjpgstreamer -n
 
Explicitly USB device:
-----------------------------------------------
 
Found video devices:
/dev/video0
/dev/video10
/dev/video11
/dev/video12
/dev/video13
/dev/video14
/dev/video15
/dev/video16
/dev/video18
/dev/video20
/dev/video21
/dev/video22
/dev/video23
raspi
config file='/home/pi/klipper_config/webcam.txt':Start MJPG-streamer with video device: raspi
<13>Mar  8 14:02:03 pi: Starting Raspberry Pi camera
Checking for VL805 (Raspberry Pi 4)...
  - It seems that you don't have VL805 (Raspberry Pi 4).
    There should be no problems with USB (a.k.a. select() timeout)
Running ./mjpg_streamer -o output_http.so -w ./www-mjpgstreamer -n -i input_raspicam.so -fps 10
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39
 i: fps.............: 10
 i: resolution........: 640 x 480
 i: camera parameters..............:
 
Sharpness 0, Contrast 0, Brightness 50
Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0
Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none'
Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128
Rotation 0, hflip No, vflip No
ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000
 o: www-folder-path......: ./www-mjpgstreamer/
 o: HTTP TCP port........: 8080
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: disabled
 i: Starting Camera
Encoder Buffer Size 81920
Done bring up all configured video device
 
Goodbye...

klipper_config/printer.cfg 파일 (Ender 5 with SKR Mini e3 V2.0 용)

알리에서 구입한 Micro Swiss Direct Drive Extruder for Creality Ender 5 클론 제품의 printer.cfg (지금까지 인터넷에서 찾아서 최적화 했음)

# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3 v2.0. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader" and USB communication. Also,
# select "Enable extra low-level configuration options" and configure
# "GPIO pins to set at micro-controller startup" to "!PA14".

# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.

# See docs/Config_Reference.md for a description of parameters.

# [gcode_macro START_PRINT]
# gcode:
#     {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
#     {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
#     # Start bed heating
#     M140 S{BED_TEMP}
#     # Use absolute coordinates
#     G90
#     # Reset the G-Code Z offset (adjust Z offset if needed)
#     SET_GCODE_OFFSET Z=0.0
#     # Home the printer
#     G28
# 
#     G92 E0 ;Reset Extruder
#     G1 Z2.0 F3000 ;Move Z Axis up
#     G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
#     G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
#     G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
#     G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
#     G92 E0 ;Reset Extruder
# 
#     # Move the nozzle near the bed
#     G1 Z5 F3000
#     # Move the nozzle very close to the bed
#     G1 Z0.15 F300
#     # Wait for bed to reach temperature
#     M190 S{BED_TEMP}
#     # Set and wait for nozzle to reach temperature
#     M109 S{EXTRUDER_TEMP}
# 
# [gcode_macro END_PRINT]
# gcode:
#     # Turn off bed, extruder, and fan
#     M140 S0
#     M104 S0
#     M106 S0
#     # Move nozzle away from print while retracting
#     G91
#     G1 X-2 Y-2 E-3 F300
#     # Raise nozzle by 10mm
#     G1 Z10 F3000
#     G90
#     # Disable steppers
#     M84
# 
# [virtual_sdcard]
# path: ~/gcode_files
# 
# [display_status]
# 
# [pause_resume]
# 
# [gcode_macro CANCEL_PRINT]
# description: Cancel the actual running print
# rename_existing: CANCEL_PRINT_BASE
# gcode:
#   TURN_OFF_HEATERS
#   CANCEL_PRINT_BASE

[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC0
position_endstop: 220
position_max: 220
homing_speed: 50

[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
run_current: 0.580
stealthchop_threshold: 999999

[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC1
position_endstop: 220
position_max: 220
homing_speed: 50

[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
run_current: 0.580
stealthchop_threshold: 999999

[stepper_z]
step_pin: PB0
dir_pin: !PC5
enable_pin: !PB1
microsteps: 16
rotation_distance: 8
endstop_pin: ^PC2
position_endstop: 0.0
position_max: 300

[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
run_current: 0.580
stealthchop_threshold: 999999

[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD2
microsteps: 16
# rotation_distance: 33.500
# rotation_distance: 33.00934
rotation_distance: 24.395
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250

[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
run_current: 0.650
stealthchop_threshold: 999999

[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

[heater_fan nozzle_cooling_fan]
pin: PC7

[fan]
pin: PC6

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f103xe_38FFD9055641343421871443-if00

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

[static_digital_output usb_pullup_enable]
pins: !PA14

[board_pins]
aliases:
    # EXP1 header
    EXP1_1=PB5,  EXP1_3=PA9,   EXP1_5=PA10, EXP1_7=PB8,  EXP1_9=,
    EXP1_2=PA15, EXP1_4=, EXP1_6=PB9,  EXP1_8=PB15, EXP1_10=<5V>

# See the sample-lcd.cfg file for definitions of common LCD displays.
728x90
728x90

출처

 

SKR mini E3 v2.0에 권장되는 BLTouch 배선

BLTouch 설치

Configuration.h

BLTouch 활성화

/**
 * The BLTouch probe uses a Hall effect sensor and emulates a servo.
 */
#define BLTOUCH

노즐과 BLTouch 사이 간격 설정

/**
 * Z Probe to nozzle (X,Y) offset, relative to (0, 0).
 *
 * In the following example the X and Y offsets are both positive:
 *
 *   #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
 *
 *     +-- BACK ---+
 *     |           |
 *   L |    (+) P  | R <-- probe (20,20)
 *   E |           | I
 *   F | (-) N (+) | G <-- nozzle (10,10)
 *   T |           | H
 *     |    (-)    | T
 *     |           |
 *     O-- FRONT --+
 *   (0,0)
 *
 * Specify a Probe position as { X, Y, Z }
 */
#define NOZZLE_TO_PROBE_OFFSET { 0, -38, 0 }

Z_SAFE_HOMING 활성화

Home 이동시 베드 외부로 이동 하는 것을 방지하기 위해서 Z_SAFE_HOMING을 활성화 시켜 주므로 베드의 가운데로 이동하도록 하기 위함(NOZZLE_TO_PROBE_OFFSET 값이 올바르지 않는 경우 베드의 외부로 이동 할수 있음)

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
// With this feature enabled:
//
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing.
// - Prevent Z homing when the Z probe is outside bed area.
//
#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT X_CENTER  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT Y_CENTER  // Y point for Z homing
#endif

AUTO_BED_LEVELING_BILINEAR 활성화

Z축 엔드스탑 스위치에 의해서 멈추던 것을 BLTouch의 신호에 의해서 멈추도록 설정

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
//#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

Z_MIN_PROBE_ENDSTOP_INVERTING 활성화, MESH_BED_LEVELING 비활성화

MESH_BED_LEVELING : 수동으로 레벨링 측정하는 옵션은 비활성화 시키고,
AUTO_BED_LEVELING_BILINEAR : 그리드 형태로 여러지점을 샘플지점으로 베드 레벨링을 측정하도록 설정 (높이가 고르지 않은 배드에 가장 적합)

/**
 * Choose one of the options below to enable G29 Bed Leveling. The parameters
 * and behavior of G29 will change depending on your selection.
 *
 *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
 *
 * - AUTO_BED_LEVELING_BILINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a mesh, best for large or uneven beds.
 *
 * - MESH_BED_LEVELING
 *   Probe a grid manually
 *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
 *   For machines without a probe, Mesh Bed Leveling provides a method to perform
 *   leveling in steps so you can manually adjust the Z height at each grid-point.
 *   With an LCD controller the process is guided step-by-step.
 */
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR // <-- 주석 제거
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING // <- 주석 추가

GRID_MAX_POINTS_X 값 변경

그리드 형태로 샘플지점을 5x5에서 3x3으로 변경 (너무 촘촘하게 측정은 불필요 하다고 판단)

  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 3 // 5 -> 3
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

MIN_SOFTWARE_ENDSTOP_Z 주석 추가

Z move 마이너스값 허용

// Min software endstops constrain movement within minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  #define MIN_SOFTWARE_ENDSTOP_X
  #define MIN_SOFTWARE_ENDSTOP_Y
  // #define MIN_SOFTWARE_ENDSTOP_Z  // 주석시 - Z move 마이너스값 허용
#endif

Configuration_adv.h

BLTOUCH_DELAY 주석 제거

BLTouch가 측정한 값을 인식하는 데 필요한 지연 시간 설정(시간 단위(ms). 필요한 경우 활성화하고 지연 시간을 늘려서 설정도 가능)

  // Safety: The probe needs time to recognize the command.
  //         Minimum command delay (ms). Enable and increase if needed.
  #define BLTOUCH_DELAY 500  // <- 주석제거

BLTOUCH_FORCE_SW_MODE 주석 제거

  // Feature: Switch into SW mode after a deploy. It makes the output pulse longer. Can be useful
  //          in special cases, like noisy or filtered input configurations.
  #define BLTOUCH_FORCE_SW_MODE  // <- 주석제거

컴파일

CURA GCode 추가

;When using Default mode, you do not need to declare logic mode. 
M280 P0 S160 ; BLTouch alarm release 
G4 P100 ; delay for BLTouch 
G28 ; home 
G29 ; auto bed leveling

 

728x90
728x90

출처

Octolapse 삭제

pi@raspberrypi:~$ cd OctoPrint/
pi@raspberrypi:~/OctoPrint$ virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/pi/OctoPrint/venv/bin/python2
Not overwriting existing python script /home/pi/OctoPrint/venv/bin/python (you must use /home/pi/OctoPrint/venv/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.   
pi@raspberrypi:~/OctoPrint$ source venv/bin/activate
(venv) pi@raspberrypi:~/OctoPrint$ python -m pip --disable-pip-version-check uninstall --yes Octolapse

Octolapse 수동설치

(venv) pi@raspberrypi:~/OctoPrint$ python -m pip --disable-pip-version-check install Octolapse-0.4.0_bluexmas.zip --no-cache-dir
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing ./Octolapse-0.4.0_bluexmas.zip
 
.. 생략 ...
 
Building wheels for collected packages: Octolapse
  Building wheel for Octolapse (setup.py) ... done
  Created wheel for Octolapse: filename=Octolapse-0.4.0-cp27-cp27mu-linux_armv7l.whl size=3286578 sha256=92dba105ebe1509fc92147d973c662e914c5aef344c766796d299cc63021f969
  Stored in directory: /tmp/pip-ephem-wheel-cache-jiQcsm/wheels/a7/32/ae/c12a39393ef08ef1772f53f0f469c4b6140d8be700083e7d5e
Successfully built Octolapse
Installing collected packages: Octolapse
Successfully installed Octolapse-0.4.0

__init__.py

@functools.total_ordering
class NumberedVersion(version.LooseVersion):
    # This is the current plugin version, not including any versioneer info,
    # which could be earlier or later
    CurrentVersion = "0.4.0(bluexmas)"
    # This is the CurrentVersion last time the settings were migrated.
    CurrentSettingsVersion = "0.4.0(bluexmas)"

render.py

    def _delete_snapshots_for_job(
        self, temporary_directory, job_guid, camera_guid,
        progress_callback=None, progress_key='delete_snapshots', progress_current_step=None, progress_total_steps=None
    ):
        with self.temp_files_lock:
            # get the two snapshot paths, one for the job, one for the camera
            job_path = utility.get_temporary_snapshot_job_path(temporary_directory, job_guid)
            camera_path = utility.get_temporary_snapshot_job_camera_path(temporary_directory, job_guid, camera_guid)
            logger.debug("Deleting all snapshot images at: %s", camera_path)

    def _render(self):
        """Process the timelapse render job and report progress"""

        try:

        finally:
            # Start cleanup of rendering/snapshot files

            # delete the temp rendering file if it exists.
            if os.path.isfile(temp_filepath):
                try:
                    utility.remove(temp_filepath)
                except (OSError, IOError):
                    logger.exception("Could not delete a temporary rendering file!")
                    pass

            # bluexmas - snapshot 삭제하는 곳
            if delete_snapshots:


    def _clear_temporary_files(
        self, progress_key='deleting_temp_files', progress_current_step=None, progress_total_steps=None,
        delete_folder=True
    ):
        """Delete all temporary rendering files, and report progress."""
        logger.debug("Cleaning all temporary rendering files.")

확인

OctoLapse 로그

2020-10-24 06:46:10,102 - octolapse.timelapse - DEBUG - Sent: G0 X96.557 Y97.579 2020-10-24 06:46:10,221 - octolapse.timelapse - DEBUG - Setting job-on-hold lock. 2020-10-24 06:46:10,223 - octolapse.timelapse - DEBUG - Sent: G0 X97.209 Y97.28 2020-10-24 06:46:10,224 - octolapse.timelapse - INFO - About to take a snapshot. Triggering Command: G1 X99.01 Y99.335 E1795.27793 2020-10-24 06:46:10,228 - octolapse.stabilization_gcode - INFO - Triggered at line: 183289 by gcode: G1 X99.01 Y99.335 E1795.27793 2020-10-24 06:46:10,229 - octolapse.stabilization_gcode - INFO - Snapshot Gcode (Tool: 1):^M Init - G1 X99.01 Y99.335 E1795.27793^M Start - M83^M Start - G1 E-5.00000 F2700.000^M Snapshot - G0 X217.800 Y217.800 F12000.000^M Take Snapshot - @OCTOLAPSE TAKE-SNAPSHOT^M Return - G0 X99.010 Y99.335^M End - G1 E5.00000 F2700.000^M End - M82^M End - G1 F922.500 2020-10-24 06:46:10,231 - octolapse.timelapse - INFO - Queuing 1 initialization commands. 2020-10-24 06:46:10,233 - octolapse.timelapse - DEBUG - Snapshot gcode INIT - queuing: G1 X99.01 Y99.335 E1795.27793 2020-10-24 06:46:10,234 - octolapse.timelapse - INFO - Queuing 2 start commands. 2020-10-24 06:46:10,236 - octolapse.timelapse - DEBUG - Snapshot gcode START - queuing: M83 2020-10-24 06:46:10,239 - octolapse.timelapse - DEBUG - Snapshot gcode START - queuing: G1 E-5.00000 F2700.000 2020-10-24 06:46:10,240 - octolapse.timelapse - DEBUG - Queuing 1 snapshot commands, an M400 and an M114 command. Note that the actual snapshot command is never sent. 2020-10-24 06:46:10,241 - octolapse.timelapse - INFO - Octolapse is requesting a position. 2020-10-24 06:46:10,246 - octolapse.timelapse - DEBUG - Snapshot gcode SNAPSHOT - queuing: G0 X217.800 Y217.800 F12000.000 2020-10-24 06:46:10,251 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - queuing: M400 2020-10-24 06:46:10,252 - octolapse.timelapse - DEBUG - Sent: G0 X97.208 Y97.559 2020-10-24 06:46:10,254 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - queuing: M114 2020-10-24 06:46:10,283 - octolapse.timelapse - DEBUG - Sent: G1 F922.5 X99.01 Y97.561 E1795.21892 2020-10-24 06:46:10,289 - octolapse.timelapse - DEBUG - Snapshot gcode INIT - sent: G1 X99.01 Y99.335 E1795.27793 2020-10-24 06:46:10,301 - octolapse.timelapse - DEBUG - Snapshot gcode START - sent: M83 2020-10-24 06:46:10,304 - octolapse.timelapse - DEBUG - Snapshot gcode START - sent: G1 E-5.00000 F2700.000 2020-10-24 06:46:10,317 - octolapse.timelapse - DEBUG - Snapshot gcode SNAPSHOT - sent: G0 X217.800 Y217.800 F12000.000 2020-10-24 06:46:10,339 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - sent: M400 2020-10-24 06:46:13,162 - octolapse.timelapse - DEBUG - The position request is being sent 2020-10-24 06:46:13,163 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - sent: M114 2020-10-24 06:46:13,165 - octolapse.timelapse - INFO - Octolapse has received a position request response. 2020-10-24 06:46:13,182 - octolapse.timelapse - INFO - Taking a snapshot. 2020-10-24 06:46:13,183 - octolapse.snapshot - INFO - Starting snapshot acquisition 2020-10-24 06:46:13,185 - octolapse.snapshot - INFO - Starting 1 snapshot threads. 2020-10-24 06:46:13,186 - octolapse.snapshot - INFO - Snapshot Delay - Waiting 0.125 second(s) after executing the snapshot script for the Webcam - Default OctoPi 0.16.0 camera. 2020-10-24 06:46:13,312 - octolapse.snapshot - DEBUG - Snapshot - downloading for the Webcam - Default OctoPi 0.16.0 camera from http://bluesanta.iptime.org:4996/?action=snapshot. 2020-10-24 06:46:13,737 - octolapse.snapshot - DEBUG - Snapshot - snapshot downloaded for the Webcam - Default OctoPi 0.16.0 camera in 0.425 seconds. 2020-10-24 06:46:13,738 - octolapse.snapshot - DEBUG - Post-processing snapshot for the Webcam - Default OctoPi 0.16.0 camera. 2020-10-24 06:46:13,741 - octolapse.snapshot - INFO - Snapshot threads complete, but may be post-processing. 2020-10-24 06:46:13,741 - octolapse.snapshot - INFO - Snapshot acquisition completed in 0.557 seconds. 2020-10-24 06:46:13,742 - octolapse.timelapse - INFO - Queuing 1 return commands. 2020-10-24 06:46:13,743 - octolapse.timelapse - DEBUG - Snapshot gcode RETURN - queuing: G0 X99.010 Y99.335 2020-10-24 06:46:13,744 - octolapse.timelapse - INFO - Queuing 3 end commands. 2020-10-24 06:46:13,747 - octolapse.timelapse - DEBUG - Snapshot gcode RETURN - sent: G0 X99.010 Y99.335 2020-10-24 06:46:13,748 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: G1 E5.00000 F2700.000 2020-10-24 06:46:13,750 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: M82 2020-10-24 06:46:13,754 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: G1 F922.500 2020-10-24 06:46:13,755 - octolapse.timelapse - INFO - The snapshot has completed 2020-10-24 06:46:13,757 - octolapse.timelapse - INFO - Sending on_snapshot_complete payload. 2020-10-24 06:46:13,757 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: G1 E5.00000 F2700.000 2020-10-24 06:46:13,764 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: M82 2020-10-24 06:46:13,766 - octolapse.timelapse - DEBUG - Releasing job-on-hold lock. 2020-10-24 06:46:13,772 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: G1 F922.500 2020-10-24 06:46:13,776 - octolapse.timelapse - DEBUG - Sent: G1 X95.845 Y99.335 E1795.3832 2020-10-24 06:46:13,784 - octolapse.timelapse - DEBUG - Sent: G1 X95.985 Y99.3 E1795.388 2020-10-24 06:46:13,809 - octolapse.timelapse - DEBUG - Sent: G1 X96.265 Y99.176 E1795.39818 2020-10-24 06:46:13,816 - octolapse.snapshot - DEBUG - Snapshot - Snapshot saved to disk for the Webcam - Default OctoPi 0.16.0 camera at /home/pi/.octoprint/data/octolapse/tmp/octolapse_snapshots_tmp/083d4ba3-e1e1-46d9-a778-a6b89cf5a3e2/354def78-9eea-409a-ad23-ee966dfff4ba/CE5_3D_Printer_test_fixed_stl_3rd_gen000299.jpg 2020-10-24 06:46:13,834 - octolapse.timelapse - DEBUG - Sent: G1 X96.515 Y99.013 E1795.40811 2020-10-24 06:46:13,838 - octolapse.timelapse - DEBUG - Sent: G1 X96.743 Y98.8 E1795.41848 2020-10-24 06:46:13,841 - octolapse.timelapse - DEBUG - Sent: G1 X96.916 Y98.578 E1795.42785 ... 생략 ... 2020-10-24 06:46:13,953 - octolapse.timelapse - DEBUG - Sent: G0 X95.774 Y98.682 2020-10-24 06:46:13,956 - octolapse.timelapse - DEBUG - Sent: G0 X95.252 Y98.736 2020-10-24 06:46:14,220 - octolapse.snapshot - DEBUG - Post-processing snapshot for the Webcam - Default OctoPi 0.16.0 camera complete. 2020-10-24 06:46:14,225 - octolapse.snapshot - INFO - Snapshot Download Job completed for the Webcam - Default OctoPi 0.16.0 camera in 0.913 seconds. 2020-10-24 06:46:15,025 - octolapse.timelapse - DEBUG - Sent: G0 X92.881 Y98.735 2020-10-24 06:46:15,157 - octolapse.timelapse - DEBUG - Sent: G0 X91.024 Y98.586 ... 생략 ... 2020-10-24 06:46:28,055 - octolapse.timelapse - DEBUG - Sent: G1 X96.515 Y98.978 E1798.61655 2020-10-24 06:46:28,076 - octolapse.timelapse - DEBUG - Sent: G1 X96.745 Y98.764 E1798.627 2020-10-24 06:46:28,093 - octolapse.timelapse - DEBUG - Setting job-on-hold lock. 2020-10-24 06:46:28,095 - octolapse.timelapse - INFO - About to take a snapshot. Triggering Command: G1 X99.01 Y99.263 E1798.72229 2020-10-24 06:46:28,096 - octolapse.timelapse - DEBUG - Sent: G1 X96.796 Y98.696 E1798.62983 2020-10-24 06:46:28,099 - octolapse.stabilization_gcode - INFO - Triggered at line: 183619 by gcode: G1 X99.01 Y99.263 E1798.72229 2020-10-24 06:46:28,100 - octolapse.stabilization_gcode - INFO - Snapshot Gcode (Tool: 1):^M Init - G1 X99.01 Y99.263 E1798.72229^M Start - M83^M Start - G1 E-5.00000 F2700.000^M Snapshot - G0 X217.800 Y217.800 F12000.000^M Take Snapshot - @OCTOLAPSE TAKE-SNAPSHOT^M Return - G0 X99.010 Y99.263^M End - G1 E5.00000 F2700.000^M End - M82^M End - G1 F600.000 2020-10-24 06:46:28,101 - octolapse.timelapse - INFO - Queuing 1 initialization commands. 2020-10-24 06:46:28,102 - octolapse.timelapse - DEBUG - Snapshot gcode INIT - queuing: G1 X99.01 Y99.263 E1798.72229 2020-10-24 06:46:28,103 - octolapse.timelapse - INFO - Queuing 2 start commands. 2020-10-24 06:46:28,104 - octolapse.timelapse - DEBUG - Snapshot gcode START - queuing: M83 2020-10-24 06:46:28,106 - octolapse.timelapse - DEBUG - Snapshot gcode START - queuing: G1 E-5.00000 F2700.000 2020-10-24 06:46:28,108 - octolapse.timelapse - DEBUG - Queuing 1 snapshot commands, an M400 and an M114 command. Note that the actual snapshot command is never sent. 2020-10-24 06:46:28,109 - octolapse.timelapse - INFO - Octolapse is requesting a position. 2020-10-24 06:46:28,110 - octolapse.timelapse - DEBUG - Snapshot gcode SNAPSHOT - queuing: G0 X217.800 Y217.800 F12000.000 2020-10-24 06:46:28,112 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - queuing: M400 2020-10-24 06:46:28,115 - octolapse.timelapse - DEBUG - Sent: G1 X99.01 Y98.697 E1798.70346 2020-10-24 06:46:28,116 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - queuing: M114 2020-10-24 06:46:28,119 - octolapse.timelapse - DEBUG - Snapshot gcode INIT - sent: G1 X99.01 Y99.263 E1798.72229 2020-10-24 06:46:28,142 - octolapse.timelapse - DEBUG - Snapshot gcode START - sent: M83 2020-10-24 06:46:28,146 - octolapse.timelapse - DEBUG - Snapshot gcode START - sent: G1 E-5.00000 F2700.000 2020-10-24 06:46:28,154 - octolapse.timelapse - DEBUG - Snapshot gcode SNAPSHOT - sent: G0 X217.800 Y217.800 F12000.000 2020-10-24 06:46:28,175 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - sent: M400 2020-10-24 06:46:31,154 - octolapse.timelapse - DEBUG - The position request is being sent 2020-10-24 06:46:31,156 - octolapse.timelapse - DEBUG - Waiting for moves to complete before continuing - sent: M114 2020-10-24 06:46:31,157 - octolapse.timelapse - INFO - Octolapse has received a position request response. 2020-10-24 06:46:31,190 - octolapse.timelapse - INFO - Taking a snapshot. 2020-10-24 06:46:31,192 - octolapse.snapshot - INFO - Starting snapshot acquisition 2020-10-24 06:46:31,194 - octolapse.snapshot - INFO - Starting 1 snapshot threads. 2020-10-24 06:46:31,194 - octolapse.snapshot - INFO - Snapshot Delay - Waiting 0.125 second(s) after executing the snapshot script for the Webcam - Default OctoPi 0.16.0 camera. 2020-10-24 06:46:31,320 - octolapse.snapshot - DEBUG - Snapshot - downloading for the Webcam - Default OctoPi 0.16.0 camera from http://bluesanta.iptime.org:4996/?action=snapshot. 2020-10-24 06:46:31,718 - octolapse.snapshot - DEBUG - Snapshot - snapshot downloaded for the Webcam - Default OctoPi 0.16.0 camera in 0.398 seconds. 2020-10-24 06:46:31,719 - octolapse.snapshot - DEBUG - Post-processing snapshot for the Webcam - Default OctoPi 0.16.0 camera. 2020-10-24 06:46:31,720 - octolapse.snapshot - INFO - Snapshot threads complete, but may be post-processing. 2020-10-24 06:46:31,721 - octolapse.snapshot - INFO - Snapshot acquisition completed in 0.528 seconds. 2020-10-24 06:46:31,721 - octolapse.timelapse - INFO - Queuing 1 return commands. 2020-10-24 06:46:31,722 - octolapse.timelapse - DEBUG - Snapshot gcode RETURN - queuing: G0 X99.010 Y99.263 2020-10-24 06:46:31,725 - octolapse.timelapse - INFO - Queuing 3 end commands. 2020-10-24 06:46:31,726 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: G1 E5.00000 F2700.000 2020-10-24 06:46:31,728 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: M82 2020-10-24 06:46:31,732 - octolapse.timelapse - DEBUG - Snapshot gcode END - queuing: G1 F600.000 2020-10-24 06:46:31,734 - octolapse.timelapse - DEBUG - Snapshot gcode RETURN - sent: G0 X99.010 Y99.263 2020-10-24 06:46:31,735 - octolapse.timelapse - INFO - The snapshot has completed 2020-10-24 06:46:31,742 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: G1 E5.00000 F2700.000 2020-10-24 06:46:31,743 - octolapse.timelapse - INFO - Sending on_snapshot_complete payload. 2020-10-24 06:46:31,750 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: M82 2020-10-24 06:46:31,755 - octolapse.timelapse - DEBUG - Releasing job-on-hold lock. 2020-10-24 06:46:31,756 - octolapse.snapshot - DEBUG - Snapshot - Snapshot saved to disk for the Webcam - Default OctoPi 0.16.0 camera at /home/pi/.octoprint/data/octolapse/tmp/octolapse_snapshots_tmp/083d4ba3-e1e1-46d9-a778-a6b89cf5a3e2/354def78-9eea-409a-ad23-ee966dfff4ba/CE5_3D_Printer_test_fixed_stl_3rd_gen000300.jpg 2020-10-24 06:46:31,756 - octolapse.timelapse - DEBUG - Snapshot gcode END - sent: G1 F600.000 2020-10-24 06:46:31,761 - octolapse.timelapse - DEBUG - Sent: G0 F12000 X99.29 Y99.263 2020-10-24 06:46:31,764 - octolapse.timelapse - DEBUG - Sent: G0 X99.218 Y98.489 2020-10-24 06:46:31,772 - octolapse.timelapse - DEBUG - Sent: G0 X96.689 Y98.481 ... 생략 ... 2020-10-24 06:46:31,982 - octolapse.timelapse - DEBUG - Sent: G0 X89.757 Y99.263 2020-10-24 06:46:32,190 - octolapse.snapshot - DEBUG - Post-processing snapshot for the Webcam - Default OctoPi 0.16.0 camera complete. 2020-10-24 06:46:32,191 - octolapse.snapshot - INFO - Snapshot Download Job completed for the Webcam - Default OctoPi 0.16.0 camera in 0.870 seconds. 2020-10-24 06:46:33,003 - octolapse.timelapse - DEBUG - Sent: G1 F600 X85.99 Y99.263 E1799.03251 2020-10-24 06:46:33,143 - octolapse.timelapse - DEBUG - Sent: G1 X85.99 Y98.697 E1799.05134 2020-10-24 06:46:33,157 - octolapse.timelapse - DEBUG - Sent: G1 X88.85 Y98.693 E1799.14646 ... 생략 ... 2020-10-24 06:46:43,265 - octolapse.timelapse - DEBUG - Sent: M140 S0 2020-10-24 06:46:43,335 - octolapse.timelapse - DEBUG - Sent: M84 X Y E 2020-10-24 06:46:43,366 - octolapse.timelapse - INFO - Snapshot jobs queue has completed, starting to render. 2020-10-24 06:46:43,378 - octolapse.__init__ - INFO - Adding new rendering job. JobGuid: 083d4ba3-e1e1-46d9-a778-a6b89cf5a3e2, CameraGuid: 354def78-9eea-409a-ad23-ee966dfff4ba 2020-10-24 06:46:43,383 - octolapse.__init__ - INFO - Print completed successfullly. 2020-10-24 06:46:43,385 - octolapse.__init__ - INFO - The print has ended. 2020-10-24 06:46:43,471 - octolapse.render - INFO - Sending render start message 2020-10-24 06:46:43,475 - octolapse.render - INFO - Setting output paths. 2020-10-24 06:46:43,477 - octolapse.render - INFO - Rendering is enabled for camera 354def78-9eea-409a-ad23-ee966dfff4ba. 2020-10-24 06:46:43,478 - octolapse.render - DEBUG - Converting and copying images to the temporary rendering folder 2020-10-24 06:46:43,636 - octolapse.snapshot - DEBUG - Post-processing snapshot for the Webcam - Default OctoPi 0.16.0 camera complete. 2020-10-24 06:46:43,637 - octolapse.snapshot - INFO - Snapshot Download Job completed for the Webcam - Default OctoPi 0.16.0 camera in 0.937 seconds. 2020-10-24 06:47:33,918 - octolapse.render - DEBUG - Reading snapshot metadata from /home/pi/.octoprint/data/octolapse/tmp/octolapse_snapshots_tmp/083d4ba3-e1e1-46d9-a778-a6b89cf5a3e2/354def78-9eea-409a-ad23-ee966dfff4ba/metadata.csv 2020-10-24 06:47:33,926 - octolapse.render - INFO - FPS Calculation Type:static, Fps:60 2020-10-24 06:47:33,930 - octolapse.render - INFO - Creating the directory at /home/pi/.octoprint/timelapse 2020-10-24 06:47:33,934 - octolapse.render - DEBUG - Renaming images. 2020-10-24 06:47:34,758 - octolapse.render - INFO - Adding 120 pre-roll frames. 2020-10-24 06:47:53,872 - octolapse.render - INFO - Adding 120 post-roll frames. 2020-10-24 06:48:18,097 - octolapse.render - INFO - Renaming images because pre-roll images were added. 2020-10-24 06:48:18,815 - octolapse.render - INFO - Pre/post roll generated successfully. 2020-10-24 06:48:18,816 - octolapse.render - DEBUG - Applying video filter chain: [f0] format=yuv420p [out] 2020-10-24 06:48:18,816 - octolapse.render - DEBUG - Rendering movie to /home/pi/.octoprint/data/octolapse/tmp/octolapse_rendering_tmp/2f7f2af7-2373-49b0-8369-fa2f2af6fa21.tmp 2020-10-24 06:48:18,817 - octolapse.render - INFO - Running ffmpeg. 2020-10-24 06:48:18,818 - octolapse.script - DEBUG - Executing Unknown with No Timeout timeout: /usr/local/bin/ffmpeg -framerate 60 -loglevel info -i /home/pi/.octoprint/data/octolapse/tmp/octolapse_rendering_tmp/CE5_3D_Printer_test_fixed_stl_3rd_gen%06d.jpg -threads 1 -r 60 -y -vcodec mpeg4 -f mp4 -b:v 10000k -vf "[f0] format=yuv420p [out]" /home/pi/.octoprint/data/octolapse/tmp/octolapse_rendering_tmp/2f7f2af7-2373-49b0-8369-fa2f2af6fa21.tmp 2020-10-24 06:48:20,786 - octolapse.script - INFO - stderr: ffmpeg version N-99482-g214998c55f Copyright (c) 2000-2020 the FFmpeg developers 2020-10-24 06:48:20,789 - octolapse.script - INFO - stderr: built with gcc 8 (Raspbian 8.3.0-6+rpi1) 2020-10-24 06:48:20,793 - octolapse.script - INFO - stderr: configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --extra-ldflags=-latomic 2020-10-24 06:48:20,802 - octolapse.script - INFO - stderr: libavutil 56. 60.100 / 56. 60.100 2020-10-24 06:48:20,803 - octolapse.script - INFO - stderr: libavcodec 58.109.100 / 58.109.100 2020-10-24 06:48:20,805 - octolapse.script - INFO - stderr: libavformat 58. 61.100 / 58. 61.100 2020-10-24 06:48:20,807 - octolapse.script - INFO - stderr: libavdevice 58. 11.102 / 58. 11.102 2020-10-24 06:48:20,808 - octolapse.script - INFO - stderr: libavfilter 7. 87.100 / 7. 87.100 2020-10-24 06:48:20,810 - octolapse.script - INFO - stderr: libswscale 5. 8.100 / 5. 8.100 2020-10-24 06:48:20,811 - octolapse.script - INFO - stderr: libswresample 3. 8.100 / 3. 8.100 2020-10-24 06:48:20,813 - octolapse.script - INFO - stderr: libpostproc 55. 8.100 / 55. 8.100 2020-10-24 06:48:21,028 - octolapse.script - INFO - stderr: Input #0, image2, from '/home/pi/.octoprint/data/octolapse/tmp/octolapse_rendering_tmp/CE5_3D_Printer_test_fixed_stl_3rd_gen%06d.jpg': 2020-10-24 06:48:21,029 - octolapse.script - INFO - stderr: Duration: 00:00:09.03, start: 0.000000, bitrate: N/A 2020-10-24 06:48:21,030 - octolapse.script - INFO - stderr: Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 3280x2464, 60 tbr, 60 tbn, 60 tbc 2020-10-24 06:48:21,033 - octolapse.script - INFO - stderr: Stream mapping: 2020-10-24 06:48:21,034 - octolapse.script - INFO - stderr: Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native)) 2020-10-24 06:48:21,035 - octolapse.script - INFO - stderr: Press [q] to stop, [?] for help 2020-10-24 06:48:21,327 - octolapse.script - INFO - stderr: [swscaler @ 0x2045f80] deprecated pixel format used, make sure you did set range correctly 2020-10-24 06:48:21,648 - octolapse.script - INFO - stderr: Output #0, mp4, to '/home/pi/.octoprint/data/octolapse/tmp/octolapse_rendering_tmp/2f7f2af7-2373-49b0-8369-fa2f2af6fa21.tmp': 2020-10-24 06:48:21,649 - octolapse.script - INFO - stderr: Metadata: 2020-10-24 06:48:21,650 - octolapse.script - INFO - stderr: encoder : Lavf58.61.100 2020-10-24 06:48:21,651 - octolapse.script - INFO - stderr: Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 3280x2464, q=2-31, 10000 kb/s, 60 fps, 15360 tbn, 60 tbc 2020-10-24 06:48:21,652 - octolapse.script - INFO - stderr: Metadata: 2020-10-24 06:48:21,653 - octolapse.script - INFO - stderr: encoder : Lavc58.109.100 mpeg4 2020-10-24 06:48:21,654 - octolapse.script - INFO - stderr: Side data: 2020-10-24 06:48:21,655 - octolapse.script - INFO - stderr: cpb: bitrate max/min/avg: 0/0/10000000 buffer size: 0 vbv_delay: N/A 2020-10-24 06:48:23,035 - octolapse.script - INFO - stderr: frame= 2 fps=0.0 q=2.0 size= 768kB time=00:00:00.01 bitrate=376034.4kbits/s speed=0.0169x ... 생략 ... 2020-10-24 06:55:28,637 - octolapse.script - INFO - stderr: frame= 542 fps=1.3 q=31.0 size= 13568kB time=00:00:09.01 bitrate=12327.0kbits/s speed=0.0211x 2020-10-24 06:55:28,640 - octolapse.script - INFO - stderr: frame= 542 fps=1.3 q=31.0 Lsize= 13592kB time=00:00:09.01 bitrate=12348.7kbits/s speed=0.0211x 2020-10-24 06:55:28,641 - octolapse.script - INFO - stderr: video:13589kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.024478% 2020-10-24 06:55:28,719 - octolapse.render - DEBUG - Deleting all snapshot images at: /home/pi/.octoprint/data/octolapse/tmp/octolapse_snapshots_tmp/083d4ba3-e1e1-46d9-a778-a6b89cf5a3e2/354def78-9eea-409a-ad23-ee966dfff4ba 2020-10-24 06:55:29,767 - octolapse.render - DEBUG - Cleaning all temporary rendering files. 2020-10-24 06:55:30,683 - octolapse.render - INFO - Sending render complete message 2020-10-24 06:55:33,552 - octolapse.render - INFO - Cleaning temporary snapshot folders at /home/pi/.octoprint/data/octolapse/tmp. 2020-10-24 06:55:33,560 - octolapse.render - INFO - Cleaning temporary snapshot folders at /home/pi/.octoprint/data/octolapse/tmp. 2020-10-24 06:55:33,561 - octolapse.render - INFO - Sending render end message

728x90
728x90

출처

OctoLapse 플러그인 추가

OctoLapse Ender 5 설정

카메라가 앞쪽에 있으므로 해더가 뒤쪽 오른쪽(Back Right)으로 이동 후 캡쳐하도록 설정

Cura 설정

G코드 추가

; Script based on an original created by tjjfvi (https://github.com/tjjfvi)
; An up-to-date version of the tjjfvi's original script can be found
; here:  https://csi.t6.fyi/
; Note - This script will only work in Cura V4.2 and above!
; --- Global Settings
; layer_height = {layer_height}
; smooth_spiralized_contours = {smooth_spiralized_contours}
; magic_mesh_surface_mode = {magic_mesh_surface_mode}
; machine_extruder_count = {machine_extruder_count}
; --- Single Extruder Settings
; speed_z_hop = {speed_z_hop}
; retraction_amount = {retraction_amount}
; retraction_hop = {retraction_hop}
; retraction_hop_enabled = {retraction_hop_enabled}
; retraction_enable = {retraction_enable}
; retraction_speed = {retraction_speed}
; retraction_retract_speed = {retraction_retract_speed}
; retraction_prime_speed = {retraction_prime_speed}
; speed_travel = {speed_travel}

728x90

+ Recent posts