diff --git a/README.md b/README.md index c31e103..6b602c0 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ This plugin can use the GPIO.BOARD or GPIO.BCM numbering scheme. * Configurable GPIO pins. * Support movement detection sensors, e.g. Smart-Filament-Sensor. * Detect if filament is not moving anymore (jammed or runout) + * Detection based on timeout + * Detection based on filament position returned bei M114 (unfortunately imprecise compared with firmware) ## Installation @@ -27,8 +29,19 @@ This plugin can use the GPIO.BOARD or GPIO.BCM numbering scheme. After installation a restart of Octoprint is recommended. ## Configuration +### GPIO Pin +* Choose any free GPIO pin you for data usage, but I would recommend to use GPIO pins without special functionalities like e.g. I2C +* Run the sensor only on 3.3V, because GPIO pins don't like 5V for a long time + +### Detection time +Currently it is necessary to configure a maximum time period no filament movement was detected. This time could be depended on the print speed and maximum print line length. For the beginning - until I figured out how to estimate the best detection time - you can run a test print and messearue your maximum time and configure this value. +The default value 45 seconds was estimated on max. print speed 10mm/s, for faster prints it could be smaller. + ### Detection distance -Version 2.0 of this plugin detects the movement depending on the moved distance. Therefore it is necessary to configure a distance without movement being detected. In Marlin Firmware the default value is set to 7mm. According to this the value is set for the plugin. +Version 1.1.0 of this plugin detects the movement depending on the moved distance. Therefore it is necessary to configure a distance without movement being detected. In Marlin Firmware the default value is set to 7mm. According to this the value is set for the plugin. + +### Sampling time +To reduce the negative effects on the print quality a sampling time must be set. Periodically M114 code is sent to the printer to receive the current filament position. This increases the load on the printer, i.e. if the sampling time is set to small the printer starts stuttering, because it cannot process all commands fast enough. I assume the value could differ according to the mainboard architecture (8-bit or 32-bit). ### Octoprint - Firmware & Protocol Since currently GCode command M600 is used to interrupt the print, it is recommended to add M600 to the setting "Pausing commands". @@ -37,7 +50,8 @@ Since currently GCode command M600 is used to interrupt the print, it is recomme If you do not want that the print is paused right on your print, I recommend to add a GCode Script for "After print job is paused". Also adding GCode script "Before print job is resumed" might be useful, in the case you hit the heatbed or print head during the change of the filament or removing the blockage. ## Disclaimer -I as author of this plugin am not responsible for any damages on your print or printer. As user you are responsible for a sensible usage of this plugin. +* I as author of this plugin am not responsible for any damages on your print or printer. As user you are responsible for a sensible usage of this plugin. +* Be cautious not to damage your Raspberry Pi, because of wrong voltage. I don't take any responsibility for wrong wiring. ## Outlook -Detection based on distance \ No newline at end of file +Support of multiple sensors for multiextruders like 4 channel kraken hotend \ No newline at end of file diff --git a/octoprint_smart_filament_sensor/__init__.py b/octoprint_smart_filament_sensor/__init__.py index fa595ef..7494836 100644 --- a/octoprint_smart_filament_sensor/__init__.py +++ b/octoprint_smart_filament_sensor/__init__.py @@ -106,8 +106,8 @@ def get_settings_defaults(self): detection_method = 0, # 0 = timeout detection, 1 = distance detection # Distance detection - motion_sensor_detection_distance = 7, # Recommended detection distance from Marlin - motion_sensor_sampling_time = 5000, # It is recommended to choose sampling time not too low, because it would block the printer + motion_sensor_detection_distance = 3, # Recommended detection distance from Marlin would be 7 + motion_sensor_sampling_time = 10000, # It is recommended to choose sampling time not too low, because it would block the printer # Timeout detection motion_sensor_max_not_moving=45, # Maximum time no movement is detected - default continously diff --git a/octoprint_smart_filament_sensor/templates/smartfilamentsensor_settings.jinja2 b/octoprint_smart_filament_sensor/templates/smartfilamentsensor_settings.jinja2 index b0a495f..ff35d1e 100644 --- a/octoprint_smart_filament_sensor/templates/smartfilamentsensor_settings.jinja2 +++ b/octoprint_smart_filament_sensor/templates/smartfilamentsensor_settings.jinja2 @@ -50,6 +50,7 @@
sec + Don't choose the timeout value too small. During long slow movements, it takes some time until the sensor changes the value.
@@ -67,6 +68,7 @@
ms + In this period M114 command is sent to the printer. Don't choose the value too small, because it could negatively effect the print quality and even cause stuttering.