Initial commit

This commit is contained in:
Kyle Brown 2021-09-28 20:47:35 -07:00
commit a6cafba793
26 changed files with 786 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
printer-*.cfg

70
fluidd.cfg Normal file
View file

@ -0,0 +1,70 @@
[virtual_sdcard]
path: /mnt/san/uploads
[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
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
# change this if you need more or less extrusion
variable_extrude: 1.0
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
##### set park positon for x and y #####
# default is your max posion from your printer.cfg
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
PAUSE_BASE
G91
{% if printer.extruder.can_extrude|lower == 'true' %}
G1 E-{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
G1 Z{z_safe} F900
G90
G1 X{x_park} Y{y_park} F6000
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
#### get VELOCITY parameter if specified ####
{% if 'VELOCITY' in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == 'true' %}
G91
G1 E{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}

BIN
macros/.prusa_mini.cfg.swp Normal file

Binary file not shown.

29
macros/G27.cfg Normal file
View file

@ -0,0 +1,29 @@
[gcode_macro G27]
gcode:
{% set default_x = printer.toolhead.axis_minimum.x + 20 %}
{% set default_y = printer.toolhead.axis_minimum.y + 20 %}
{% if 'save_variables' in printer %}
{% set svv = printer.save_variables.variables %}
{% if 'park_x' in svv %}
{% set default_x = svv.park_x %}
{% endif %}
{% if 'park_y' in svv %}
{% set default_y = svv.park_y %}
{% endif %}
{% endif %}
{% set x = params.X|default(default_x)|float %}
{% set y = params.Y|default(default_y)|float %}
{% set z = params.Z|default(20)|float %}
{% if printer.toolhead.homed_axes != "xyz" %}
{action_respond_info("Please home XYZ first")}
{% else %}
SAVE_GCODE_STATE NAME=G27_state
G91
G1 Z{z}
G90
G1 X{x} Y{y} F3000
RESTORE_GCODE_STATE NAME=G27_state MOVE=0
{% endif %}

24
macros/G29.cfg Normal file
View file

@ -0,0 +1,24 @@
[gcode_macro G29]
gcode:
{% set t = params.T|default(0)|float %}
{% if printer.idle_timeout.state == "Printing" %}
{action_respond_info("This command cannot be used while printing")}
{% elif printer.toolhead.homed_axes != "xyz" %}
{action_respond_info("Please home XYZ first")}
{% else %}
SAVE_GCODE_STATE NAME=G29_state
G90
G1 Z10 F240
{% if t > 30.0 %}
M190 S{t}
{% endif %}
BED_MESH_CALIBRATE
{% if 'S' in params %}
M140 S{params.S}
{% endif %}
G90
G1 Z10 F240
G1 X150 Y155 F6000
RESTORE_GCODE_STATE NAME=G29_state MOVE=0
{% endif %}

View file

@ -0,0 +1,13 @@
[gcode_macro INITIALIZE_VARIABLE]
gcode:
{% if 'VARIABLE' not in params %}
{action_respond_info("Missing VARIABLE parameter")}
{% elif 'VALUE' not in params %}
{action_respond_info("Missing VALUE parameter")}
{% else %}
{% set svv = printer.save_variables.variables %}
{% if params.VARIABLE not in svv %}
{% set escaped = params.VALUE|replace("\"", "\\\"") %}
SAVE_VARIABLE VARIABLE={params.VARIABLE} VALUE="{escaped}"
{% endif %}
{% endif %}

5
macros/LAZY_HOME.cfg Normal file
View file

@ -0,0 +1,5 @@
[gcode_macro LAZY_HOME]
gcode:
{% if printer.toolhead.homed_axes != "xyz" %}
G28
{% endif %}

26
macros/M204.cfg Normal file
View file

@ -0,0 +1,26 @@
[gcode_macro M204]
rename_existing: M204.1
gcode:
{% set f = params.F|default(0.5)|float %}
{% if 'S' in params %}
{% set s = params.S|float %}
SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f }
{% else %}
{% if 'P' in params %}
{% set p = params.P|float %}
{% if 'T' in params %}
{% set t = params.T|float %}
{% if p < t %}
SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f }
{% else %}
SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f }
{% endif %}
{% else %}
SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f }
{% endif %}
{% elif 'T' in params %}
{% set t = params.T|float %}
SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f }
{% endif %}
{% endif %}

7
macros/M205.cfg Normal file
View file

@ -0,0 +1,7 @@
[gcode_macro M205]
gcode:
{% if 'X' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}
{% elif 'Y' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}
{% endif %}

32
macros/M600.cfg Normal file
View file

@ -0,0 +1,32 @@
[gcode_macro M600]
gcode:
{% set default_x = printer.toolhead.axis_minimum.x + 20 %}
{% set default_y = printer.toolhead.axis_minimum.y + 20 %}
{% set default_e = 100 %}
{% if 'save_variables' in printer %}
{% set svv = printer.save_variables.variables %}
{% if 'park_x' in svv %}
{% set default_x = svv.park_x %}
{% endif %}
{% if 'park_y' in svv %}
{% set default_y = svv.park_y %}
{% endif %}
{% if 'bowden_len' in svv %}
{% set default_e = svv.bowden_len %}
{% endif %}
{% endif %}
{% set x = params.X|default(default_x)|float %}
{% set y = params.Y|default(default_y)|float %}
{% set z = params.Z|default(20)|float %}
{% set e = params.E|default(default_e)|float %}
{% if printer.pause_resume.is_paused %}
{action_respond_info("Already paused")}
{% elif printer.toolhead.homed_axes != "xyz" %}
{action_respond_info("Please home XYZ first")}
{% else %}
PAUSE_PARK X={x} Y={y} Z={z}
M702 U{e}
{% endif %}

36
macros/M701.cfg Normal file
View file

@ -0,0 +1,36 @@
[gcode_macro M701]
gcode:
{% set default_u = 100 %}
{% if 'save_variables' in printer %}
{% set svv = printer.save_variables.variables %}
{% if 'bowden_len' in svv %}
{% set default_u = svv.bowden_len %}
{% endif %}
{% endif %}
{% set i = params.I|default(30)|float %}
{% set i_f = params.IF|default(180)|float %}
{% set u = params.U|default(default_u)|float %}
{% set u_f = params.UF|default(360)|float %}
{% set p = params.P|default(30)|float %}
{% set p_f = params.PF|default(180)|float %}
{% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %}
{action_respond_info("This command cannot be used while printing")}
{% elif printer.extruder.temperature < 170 %}
{action_respond_info("Extruder temperature too low")}
{% else %}
SAVE_GCODE_STATE NAME=M701_state
M83
{% if i > 0.0 %}
G1 E{i} F{i_f}
{% endif %}
{% if u > 0.0 %}
G1 E{u} F{u_f}
{% endif %}
{% if p > 0.0 %}
G1 E{p} F{p_f}
{% endif %}
RESTORE_GCODE_STATE NAME=M701_state MOVE=0
{% endif %}

36
macros/M702.cfg Normal file
View file

@ -0,0 +1,36 @@
[gcode_macro M702]
gcode:
{% set default_u = 100 %}
{% if 'save_variables' in printer %}
{% set svv = printer.save_variables.variables %}
{% if 'bowden_len' in svv %}
{% set default_u = svv.bowden_len %}
{% endif %}
{% endif %}
{% set p = params.P|default(8)|float %}
{% set p_f = params.PF|default(180)|float %}
{% set i = params.I|default(30)|float %}
{% set i_f = params.IF|default(180)|float %}
{% set u = params.U|default(default_u)|float %}
{% set u_f = params.UF|default(360)|float %}
{% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %}
{action_respond_info("This command cannot be used while printing")}
{% elif printer.extruder.temperature < 170 %}
{action_respond_info("Extruder temperature too low")}
{% else %}
SAVE_GCODE_STATE NAME=M702_state
M83
{% if p > 0.0 %}
G1 E{p} F{p_f}
{% endif %}
{% if i > 0.0 %}
G1 E-{i} F{i_f}
{% endif %}
{% if u > 0.0 %}
G1 E-{u} F{u_f}
{% endif %}
RESTORE_GCODE_STATE NAME=M702_state MOVE=0
{% endif %}

9
macros/M900.cfg Normal file
View file

@ -0,0 +1,9 @@
[gcode_macro M900]
gcode:
{% if 'K' in params %}
{% if 'E' in params %}
SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}
{% else %}
SET_PRESSURE_ADVANCE ADVANCE={params.K}
{% endif %}
{% endif %}

5
macros/NOTIFY.cfg Normal file
View file

@ -0,0 +1,5 @@
[gcode_macro NOTIFY]
gcode:
{% if 'MSG' in params %}
RESPOND TYPE=command MSG="action:notification {params.MSG}"
{% endif %}

31
macros/PAUSE_PARK.cfg Normal file
View file

@ -0,0 +1,31 @@
[gcode_macro PAUSE_PARK]
gcode:
{% set default_x = printer.toolhead.axis_minimum.x + 20 %}
{% set default_y = printer.toolhead.axis_minimum.y + 20 %}
{% if 'save_variables' in printer %}
{% set svv = printer.save_variables.variables %}
{% if 'park_x' in svv %}
{% set default_x = svv.park_x %}
{% endif %}
{% if 'park_y' in svv %}
{% set default_y = svv.park_y %}
{% endif %}
{% endif %}
{% set x = params.X|default(default_x)|float %}
{% set y = params.Y|default(default_y)|float %}
{% set z = params.Z|default(20)|float %}
{% set r = params.R|default(3)|float %}
{% if printer.pause_resume.is_paused %}
{action_respond_info("Already paused")}
{% elif printer.toolhead.homed_axes != "xyz" %}
{action_respond_info("Please home XYZ first")}
{% else %}
PAUSE
{% if r > 0.0 %}
RETRACT D={r}
{% endif %}
G27 X{x} Y{y} Z{z}
{% endif %}

23
macros/POST_END.cfg Normal file
View file

@ -0,0 +1,23 @@
[gcode_macro POST_END]
gcode:
CLEAR_PAUSE
{% if 't5uid1' in printer %}
DGUS_PRINT_END
{% endif %}
M220 S100
M221 S100
M900 K0
{% if printer.extruder.temperature >= 170 %}
M83
G91
G1 E-2 F2400
G1 E-2 Z5 F2400
{% endif %}
M82
G90
G27
M104 S0
M140 S0
M106 S0
M84 X Y E
SAVE_IF_SET

3
macros/POWEROFF.cfg Normal file
View file

@ -0,0 +1,3 @@
[gcode_macro POWEROFF]
gcode:
RESPOND TYPE=command MSG=action:poweroff

14
macros/PRE_START.cfg Normal file
View file

@ -0,0 +1,14 @@
[gcode_macro PRE_START]
gcode:
{% set wz = params.WZ|default(0.25)|float %}
{% set wn = params.WN|default(0.4)|float %}
CLEAR_PAUSE
M106 S0
M220 S100
M221 S100
M900 K0
{% if 't5uid1' in printer %}
DGUS_PRINT_START
{% endif %}
G28
WIPE_LINE Z={wz} N={wn}

16
macros/RETRACT.cfg Normal file
View file

@ -0,0 +1,16 @@
[gcode_macro RETRACT]
gcode:
{% set f = params.F|default(600)|float %}
{% if 'D' in params %}
{% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %}
{action_respond_info("This command cannot be used while printing")}
{% elif printer.extruder.temperature < 170 %}
{action_respond_info("Extruder temperature too low")}
{% else %}
SAVE_GCODE_STATE NAME=RETRACT_state
M83
G1 E-{params.D} F{f}
RESTORE_GCODE_STATE NAME=RETRACT_state MOVE=0
{% endif %}
{% endif %}

4
macros/SAVE_AT_END.cfg Normal file
View file

@ -0,0 +1,4 @@
[gcode_macro SAVE_AT_END]
variable_save: 0
gcode:
SET_GCODE_VARIABLE MACRO=SAVE_AT_END VARIABLE=save VALUE=1

5
macros/SAVE_IF_SET.cfg Normal file
View file

@ -0,0 +1,5 @@
[gcode_macro SAVE_IF_SET]
gcode:
{% if printer["gcode_macro SAVE_AT_END"].save == 1 %}
SAVE_CONFIG
{% endif %}

22
macros/WIPE_LINE.cfg Normal file
View file

@ -0,0 +1,22 @@
[gcode_macro WIPE_LINE]
gcode:
{% set z = params.Z|default(0.25)|float %}
{% set n = params.N|default(0.4)|float %}
{% if printer.toolhead.homed_axes != "xyz" %}
{action_respond_info("Please home XYZ first")}
{% elif printer.extruder.temperature < 170 %}
{action_respond_info("Extruder temperature too low")}
{% else %}
SAVE_GCODE_STATE NAME=WIPE_LINE_state
M82
G90
G92 E0
G1 X10 Y20 Z5 F3000
G1 Z{z} F3000
G1 X10 Y150 F1500 E10.83
G1 X{ n + 10.0 } F5000
G1 Y22 F1500 E21.5
G1 Y20 F5000
RESTORE_GCODE_STATE NAME=WIPE_LINE_state MOVE=0
{% endif %}

38
macros/prusa_mini.cfg Normal file
View file

@ -0,0 +1,38 @@
[respond]
default_type: command
[pause_resume]
# Filament change gcode, parameters are a default park position if no XYZ is specified - Z is relative.
[gcode_macro M600]
default_parameter_X: 100
default_parameter_Y: 0
default_parameter_Z: 10
gcode:
PAUSE
G91
G1 E400 F1800
M117 Ready for unload
[gcode_macro LOAD_FILAMENT]
gcode:
M117 Loading Filament...
M83
G1 E50 F1800
M83
G1 E330 F2700
M83
G1 E60 F300
M400
M117 Load Complete
[gcode_macro UNLOAD_FILAMENT]
gcode:
M117 Unloading Filament...
M83
G1 E-5 F300
M83
G1 E-500 F2700
M400
M117 Remove Filament Now!

42
moonraker.conf Normal file
View file

@ -0,0 +1,42 @@
[server]
host: 0.0.0.0
port: 7125
enable_debug_logging: False
config_path: ~/klipper_config
temperature_store_size: 600
gcode_store_size: 1000
log_path: ~/klipper_logs
[authorization]
force_logins: True
cors_domains:
*.local
*.home
*.lan
*://app.fluidd.xyz
trusted_clients:
10.0.0.0/8
10.10.100.0/24
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.168.0.0/16
FE80::/10
::1/128
# enables partial support of Octoprint API
[octoprint_compat]
# enables moonraker to track and store print history.
[history]
# this enables moonraker's update manager
[update_manager]
enable_auto_refresh: True
# this enabled fluidd updates
[update_manager client fluidd]
type: web
repo: cadriel/fluidd
path: ~/fluidd

215
printer.cfg Normal file
View file

@ -0,0 +1,215 @@
# This file contains common configurations and pin mappings for the Prusa
# Mini+, which uses the Prusa Buddy board. The printer's LCD is not currently
# supported by Klipper, so the touchscreen will permanently display the
# bootloader screen after the Klipper firmware is flashed; use Fluidd, Mainsail,
# or OctoPrint etc. to control the printer.
# To use this config, the firmware should be compiled for the STM32F407. When
# running "make menuconfig", enable "extra low-level configuration setup",
# select the "128KiB + 512 byte offset" bootloader, and USB communication.
# Connect the printer to your Raspberry Pi using the printer's micro-USB port.
# If you prefer to remove Prusa's stock bootloader entirely, select the
# "No bootloader" option.
# When flashing for the first time, you will need to break the "appendix"
# on the Buddy board, then put the device into DFU mode by moving the jumper
# on the 3-pin header (older boards) or shorting the 2-pin header (newer boards)
# and resetting, and finally use "make flash" to install Klipper. Once Klipper is
# installed, you no longer need the jumper - just use "make flash" which will
# automatically put the device into DFU mode.
# Note that if you were previously running Prusa firmware, you must fully
# power cycle the board after flashing. Otherwise, Klipper will be unable to
# communicate with the TMC2209s due to the abrupt change in the baud rate,
# and will show this error: "Unable to read tmc uart register IFCNT".
# See docs/Config_Reference.md for a description of parameters.
[include macros/*.cfg]
[include fluidd.cfg]
[stepper_x]
step_pin: PD1
dir_pin: PD0
enable_pin: !PD3
microsteps: 16
rotation_distance: 32 # 200 * 16 / 100
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 180.4
position_min: -2
position_max: 180.4
homing_speed: 50
homing_retract_dist: 0
[stepper_y]
step_pin: PD13
dir_pin: PD12
enable_pin: !PD14
microsteps: 16
rotation_distance: 32 # 200 * 16 / 100
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: -3
position_min: -3
position_max: 180
homing_speed: 50
homing_retract_dist: 0
[stepper_z]
step_pin: PD4
dir_pin: !PD15
enable_pin: !PD2
microsteps: 16
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_min: -2
position_max: 185
[extruder]
step_pin: PD9
dir_pin: !PD8
enable_pin: !PD10
microsteps: 16
rotation_distance: 26.2564 # (200 * 16 * 48/18) / 325
gear_ratio: 48:18
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB1
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC0
control: pid
# Prusa's firmware defaults.
pid_Kp: 7
pid_Ki: 0.5
pid_Kd: 45
min_temp: 10
max_temp: 305
max_extrude_only_distance: 6000
[tmc2209 stepper_x]
uart_pin: PD5
uart_address: 1
diag_pin: ^PE2
driver_SGTHRS: 130
run_current: 0.35
sense_resistor: 0.22
stealthchop_threshold: 999999
[tmc2209 stepper_y]
uart_pin: PD5
uart_address: 3
diag_pin: ^PE1
driver_SGTHRS: 130
run_current: 0.35
sense_resistor: 0.22
stealthchop_threshold: 999999
[tmc2209 stepper_z]
uart_pin: PD5
uart_address: 0
diag_pin: ^PE3
driver_SGTHRS: 100
run_current: 0.35
sense_resistor: 0.22
stealthchop_threshold: 999999
[tmc2209 extruder]
uart_pin: PD5
uart_address: 2
diag_pin: ^PA15
driver_SGTHRS: 100
run_current: 0.4
sense_resistor: 0.22
[heater_bed]
heater_pin: PB0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA4
control: pid
# Prusa's firmware defaults.
pid_Kp: 120
pid_Ki: 1.5
pid_Kd: 600
min_temp: 10
max_temp: 110
# Hotend fan.
# The stock firmware uses control ranges of PWM 0-50%, RPM 1000-8000.
# Change fan_speed below to match your preference. Measured speeds:
# fan_speed 0.5: 50% PWM = 4000RPM (Prusa stock default speed)
# fan_speed 1.0: 100% PWM = 8000RPM (safe but loud)
[heater_fan hotend_fan]
pin: PE9
tachometer_pin: PE14
fan_speed: 0.5
# Part cooling fan.
# The stock firmware uses control ranges of PWM 10-50%, RPM 500-5000.
# To match stock firmware, set the Klipper fan speed to 50%. This speed
# can be safely increased to 100% for better part cooling. Measured speeds:
# 50% PWM = 2500RPM (Prusa stock default speed)
# 100% PWM = 5000RPM (better cooling, still quiet)
[fan]
pin: PE11
tachometer_pin: PE10
# The SuperPINDA has built-in temperature compensation and no thermistor output,
# so no compensation table is needed here.
[probe]
pin: PA8
x_offset: -29
y_offset: -3
#z_offset: 0 # set this to your Live Z Offset, but negated (invert the sign)
speed: 6.0
[safe_z_home]
home_xy_position: 147.4,21.1
z_hop: 4
[bed_mesh]
speed: 100
horizontal_move_z: 5
mesh_min: 10,10
mesh_max: 141,167
probe_count: 4,4
[filament_switch_sensor filament_sensor]
switch_pin: ^PB4
pause_on_runout: True
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_1E002F000F47393233333131-if00
restart_method: command
[printer]
kinematics: cartesian
# Prusa firmware defaults.
max_velocity: 180
square_corner_velocity: 5.0
max_accel: 3500
max_accel_to_decel: 3500
max_z_velocity: 30
max_z_accel: 400
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.040000, -0.025000, -0.042500, -0.107500
#*# -0.070000, -0.038750, -0.027500, 0.043750
#*# -0.060000, 0.026250, 0.088750, 0.187500
#*# -0.073750, 0.085000, 0.202500, 0.325000
#*# tension = 0.2
#*# min_x = 10.0
#*# algo = lagrange
#*# y_count = 4
#*# mesh_y_pps = 2
#*# min_y = 10.0
#*# x_count = 4
#*# max_y = 166.99
#*# mesh_x_pps = 2
#*# max_x = 140.98
#*#
#*# [probe]
#*# z_offset = 1.000

79
webcam.txt Normal file
View file

@ -0,0 +1,79 @@
### Windows users: To edit this file use Notepad++, VSCode, Atom or SublimeText.
### Do not use Notepad or WordPad.
### MacOSX users: If you use Textedit to edit this file make sure to use
### "plain text format" and "disable smart quotes" in "Textedit > Preferences"
### Configure which camera to use
#
# Available options are:
# - auto: tries first usb webcam, if that's not available tries raspi cam
# - usb: only tries usb webcam
# - raspi: only tries raspi cam
#
# Defaults to auto
#
#camera="auto"
### Additional options to supply to MJPG Streamer for the USB camera
#
# See https://faq.octoprint.org/mjpg-streamer-config for available options
#
# Defaults to a resolution of 640x480 px and a framerate of 10 fps
#
# camera_usb_options="-r 1280x710 -f 30"
### Additional webcam devices known to cause problems with -f
#
# Apparently there a some devices out there that with the current
# mjpg_streamer release do not support the -f parameter (for specifying
# the capturing framerate) and will just refuse to output an image if it
# is supplied.
#
# The webcam daemon will detect those devices by their USB Vendor and Product
# ID and remove the -f parameter from the options provided to mjpg_streamer.
#
# By default, this is done for the following devices:
# Logitech C170 (046d:082b)
# GEMBIRD (1908:2310)
# Genius F100 (0458:708c)
# Cubeternet GL-UPC822 UVC WebCam (1e4e:0102)
#
# Using the following option it is possible to add additional devices. If
# your webcam happens to show above symptoms, try determining your cam's
# vendor and product id via lsusb, activating the line below by removing # and
# adding it, e.g. for two broken cameras "aabb:ccdd" and "aabb:eeff"
#
# additional_brokenfps_usb_devices=("aabb:ccdd" "aabb:eeff")
#
#
#additional_brokenfps_usb_devices=()
### Additional options to supply to MJPG Streamer for the RasPi Cam
#
# See https://faq.octoprint.org/mjpg-streamer-config for available options
#
# Defaults to 10fps
#
camera_raspi_options="-fps 30"
### Configuration of camera HTTP output
#
# Usually you should NOT need to change this at all! Only touch if you
# know what you are doing and what the parameters mean.
#
# Below settings are used in the mjpg-streamer call like this:
#
# -o "output_http.so -w $camera_http_webroot $camera_http_options"
#
# Current working directory is the mjpg-streamer base directory.
#
#camera_http_webroot="./www-fluidd"
#camera_http_options="-n"
### EXPERIMENTAL
# Support for different streamer types.
#
# Available options:
# mjpeg [default] - stable MJPG-streamer
#camera_streamer=mjpeg