V3DP Posté(e) Juillet 25, 2024 Posté(e) Juillet 25, 2024 il y a une heure, fran6p a dit : Dans le printer.cfg : [filament_switch_sensor fila] switch_pin: PC1 # Qidi: !PC1 / SFS: PC1 pause_on_runout: False runout_gcode: SET_FILAMENT_SENSOR SENSOR=encoder_fila ENABLE=0 KEEP_PRINTING_AFTER_FIL_RUNOUT D={600} Quand il n'y a plus de filament, la première action est de désactiver l'autre senseur du BTT v2. Mes premiers essais sans cette désactivation mettaient immédiatement en pause, la tête se parquait (au fond à gauche (10,300)) et attendait la reprise. Le filament évidemment n'était pas extrudé sur encore 650mm J'avais bien vu, mais j'ai fait le test car je voulais être sur que matériellement le SFS ne détectait pas d'abord l'absence de mouvement du filament puis l'absence de filament. Ce qui aurait déclenché dans Klipper d'abord la macro PAUSE. Dans les faits, les macros se déclenchent bien comme il faut. C'est juste le delayed gcode qui pose problème lors de l'update a voir avec Klipper 0.10.
V3DP Posté(e) Juillet 26, 2024 Posté(e) Juillet 26, 2024 @fran6p Ca y est ! le SFS 2.0 marche bien sur mes deux X Max 3 ! Bon, le problème n'était pas lié à Klipper, mais aux modifications des macros Pause, Resume, Cancel .... que j'ai faites sur la base du post de Printables. Donc voici mes modifications du printer.cfg en ajout pour le SFS 2.0 Attention, j'ai mis un intervalle de détection de l'encodeur à 6 mm car j'utilise un tube prévu pour du Bowden avec un diamètre intérieur de 1,9 mm ################################################# # Filament sensor settings # ################################################# # modification for BTT SFS v2.0 #[filament_switch_sensor fila] #pause_on_runout: True #runout_gcode: # PAUSE # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 #event_delay: 3.0 #pause_delay: 0.5 #switch_pin: !PC1 #Macros for BTT SFS V2.0 [gcode_macro KEEP_PRINTING_AFTER_FIL_RUNOUT] description: Trigger to pause the print after a further distance has been extruded variable_end_d: 0 gcode: {% set d_start = printer.print_stats.filament_used|float %} {% set d_end = (d_start + params.D|float)|float %} SET_GCODE_VARIABLE MACRO=KEEP_PRINTING_AFTER_FIL_RUNOUT VARIABLE=end_d VALUE={d_end} M117 Pausing at {printer["gcode_macro KEEP_PRINTING_AFTER_FIL_RUNOUT"].end_d|round(2)} UPDATE_DELAYED_GCODE ID=PAUSE_AT_D DURATION=1 [delayed_gcode PAUSE_AT_D] initial_duration: 0 gcode: {% set d_current = printer.print_stats.filament_used|float %} {% if d_current < printer["gcode_macro KEEP_PRINTING_AFTER_FIL_RUNOUT"].end_d %} M117 Stopping {d_current|round(2)} {printer["gcode_macro KEEP_PRINTING_AFTER_FIL_RUNOUT"].end_d|round(2)} UPDATE_DELAYED_GCODE ID=PAUSE_AT_D DURATION=1 {% else %} PAUSE M117 FILAMENT RUNOUT DETECTED! CHANGE_TUNE # BEEP to notify user to change filament UPDATE_DELAYED_GCODE ID=PAUSE_AT_D DURATION=0 {% endif %} [delayed_gcode DISABLEFILAMENTSENSOR] # This will disable SFS within 1 second after Klipper starts initial_duration: 1 gcode: SET_FILAMENT_SENSOR SENSOR=encoder_fila ENABLE=0 SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 [gcode_macro SFS_on] # Add "SFS_on" to PRINT_START and RESUME description: Enable Smart Filament Sensor gcode: M117 ENABLING the Smart Filament Sensor G92 E0 SET_FILAMENT_SENSOR SENSOR=encoder_fila ENABLE=1 SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 [gcode_macro SFS_off] # Add "SFS_off" to PRINT_END, PAUSE and CANCEL_PRINT description: Disable Smart Filament Sensor gcode: M117 DISABLING the Smart Filament Sensor G92 E0 SET_FILAMENT_SENSOR SENSOR=encoder_fila ENABLE=0 SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 [filament_switch_sensor fila] switch_pin: PC1 # Qidi: !PC1 / SFS: PC1 pause_on_runout: False runout_gcode: SET_FILAMENT_SENSOR SENSOR=encoder_fila ENABLE=0 M117 Filament end detected # PAUSE # [pause_resume] required in printer.cfg KEEP_PRINTING_AFTER_FIL_RUNOUT D={650} insert_gcode: M117 Filament switch inserted # Addon for BTT SFS V2.0 [filament_motion_sensor encoder_fila] switch_pin: PC3 detection_length: 6.0 # accuracy of motion sensor 2.88mm extruder: extruder pause_on_runout: False runout_gcode: M117 Filament motion issue PAUSE # [pause_resume] required in printer.cfg insert_gcode: M117 Filament encoder inserted Et les changements sur les macros Print start, end, pause, resume, cancel .... Ajout des macros SFS_on, SFS_off [gcode_macro PRINT_START] gcode: HOT_CALIBRATE_START SFS_on [gcode_macro PRINT_START_QD] gcode: HOT_CALIBRATE_START SFS_on [gcode_macro CANCEL_PRINT] rename_existing: BASE_CANCEL_PRINT gcode: {% if (printer.gcode_move.position.z) < 200 %} ; check that zhop doesn't exceed z max G1 Z200 F600 {% endif %} G1 X0 Y0 F12000 SDCARD_RESET_FILE PRINT_END BASE_CANCEL_PRINT SFS_off [gcode_macro PRINT_END] gcode: M106 P2 S0 M106 P0 S0 M106 P3 S0 #关闭活性炭风扇 M104 S0 M140 S0 M141 S0 M220 S100 M221 S100 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value CLEAR_PAUSE SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 M84 # SET_STEPPER_ENABLE STEPPER=stepper_x enable=0 # SET_STEPPER_ENABLE STEPPER=stepper_y enable=0 # SET_STEPPER_ENABLE STEPPER=stepper_z enable=1 # SET_STEPPER_ENABLE STEPPER=extruder enable=0 BED_MESH_CLEAR #恢复调平数据 BED_MESH_PROFILE LOAD=default G31 BEEP I=2 DUR=500 SFS_off [gcode_macro PAUSE] rename_existing: BASE_PAUSE gcode: # Parameters {% set z = params.Z|default(50)|int %} ; z hop amount {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 ; disable filament sensor SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max G91 ; relative positioning G1 Z{z} F600 ; raise Z up by z hop amount {% else %} # { action_respond_info("Pause zhop exceeds maximum Z height.") } ; if z max is exceeded, show message and set zhop value for resume to 0 SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} SAVE_GCODE_STATE NAME=PAUSEPARK2 G90 ; absolute positioning G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y} F6000 ; park toolhead at front center SAVE_GCODE_STATE NAME=PAUSEPARK ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error) M104 S0 ; turn off hotend SET_IDLE_TIMEOUT TIMEOUT=86400 ; set timeout to 12 hours SET_STEPPER_ENABLE STEPPER=extruder enable=0 SFS_off {% endif %} [gcode_macro RESUME] rename_existing: BASE_RESUME variable_zhop: 0 variable_etemp: 0 gcode: # Parameters {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} # SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 ; enable filament sensor #INITIAL_RGB ; reset LCD color SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=150 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error) G91 ; relative positioning M83 ; relative extruder positioning {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 E{e} F900 ; prime nozzle by E, lower Z back down # {% else %} # G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend) {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=150 RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=10 ; restore position BASE_RESUME SFS_on ; resume print {% endif %} Dans le start gcode du slicer on appelle la macro SFS_on et dans le end gcode la macro SFS_off Cerise sur le gateau du fait de l'utilisation de tube PTFE Capricorn XS entre le détecteur SFS 2.0 et l'extrudeur, je passe maintenant du TPU 98A sans devoir alimenter directement la tête et shunter le détecteur. La detection est active tant sur la fin de filament que sur un problème d'extrusion 1 1
fran6p Posté(e) Juillet 26, 2024 Auteur Posté(e) Juillet 26, 2024 (modifié) Il y a déjà un moment que je n'utilise plus les macros PAUSE, RESUME, … de Qidi. J'utilise le fichier client (Fluidd / Mainsail) qui fournit ces macros (les deux interfaces Web utilisent le même fichier (client.cfg) seul le lien symboliques est nommé différemment (fluidd.cfg / mainsail.cfg). J'aurais peut-être dû le préciser dès le début. Comme ce fichier n'est pas modifiable directement (lecture seule), il faut ajouter dans le printer.cfg, une macro [gcode_macro _CLIENT_VARIABLE] dans laquelle on peut réaliser les modifications voulues (ou pas) Révélation … # Client Fluidd / Mainsail # [include mainsail.cfg] … ################################################# # Fluidd / Mainsail # # Variable macro from client.cfg settings # ################################################# [gcode_macro _CLIENT_VARIABLE] variable_use_custom_pos : True #False ; use custom park coordinates for x,y [True/False] variable_custom_park_x : 10.0 ; custom x position; value must be within your defined min and max of X variable_custom_park_y : 300.0 ; custom y position; value must be within your defined min and max of Y #variable_custom_park_dz : 2.0 ; custom dz value; the value in mm to lift the nozzle when move to park position #variable_retract : 1.0 ; the value to retract while PAUSE #variable_cancel_retract : 5.0 ; the value to retract while CANCEL_PRINT #variable_speed_retract : 35.0 ; retract speed in mm/s #variable_unretract : 1.0 ; the value to unretract while RESUME #variable_speed_unretract : 35.0 ; unretract speed in mm/s #variable_speed_hop : 15.0 ; z move speed in mm/s variable_speed_move : 200.0 ; move speed in mm/s variable_park_at_cancel : True ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False] variable_park_at_cancel_x : 10.0 ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True variable_park_at_cancel_y : 10.0 ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True ## !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!! variable_use_fw_retract : False ; use fw_retraction instead of the manual version [True/False] #variable_idle_timeout : 0 ; time in sec until idle_timeout kicks in. Value 0 means that no value will be set or restored variable_runout_sensor : "filament_switch_sensor fila" ; If a sensor is defined, it will be used to cancel the execution of RESUME in case no filament is detected. ## Specify the config name of the runout sensor e.g "filament_switch_sensor runout". Hint use the same as in your printer.cfg ## !!! Custom macros, please use with care and review the section of the corresponding macro. ## These macros are for simple operations like setting a status LED. Please make sure your macro does not interfere with the basic macro functions. ## Only single line commands are supported, please create a macro if you need more than one command. #variable_user_pause_macro : "" ; Everything inside the "" will be executed after the klipper base pause (PAUSE_BASE) function #variable_user_resume_macro: "" ; Everything inside the "" will be executed before the klipper base resume (RESUME_BASE) function #variable_user_cancel_macro: "" ; Everything inside the "" will be executed before the klipper base cancel (CANCEL_PRINT_BASE) function gcode: L'important est que, désormais, tout fonctionne Comme Klipper lui-même n'est pas en cause, moyennant des légères adaptations, c'est une solution utilisable avec les autres modèles de Qidi et probablement aussi avec d'autres fabricants utilisant un reverse bowden et un détecteur de fin de filament très loin de l'entrée de l'extrudeur. Modifié (le) Juillet 26, 2024 par fran6p 1
Zaros Posté(e) Juillet 28, 2024 Posté(e) Juillet 28, 2024 Bonjour ! Drap ! J'ai une Qidi X max 3 en machine de prod pour ma boutique, j'ai fait une ou l'autre modif (Klipper vanilla, webcam C270, et surtout j'ai virée tout les petit ventilo de la head (qui vibrer après 2 semaines (changer 4 fois par le SAV)) j'ai changer la hotend par une CHC Volcano de chez TriangleLabs avec une Volcano CHT de chez bondtech sa envoie très fort en débit (bien plus que l'origine ou j'était brider) Virée le 5015 d'origine, par un 5015 de chez GDStime plus puissant, remplacée le 4010 arrière par un 60x10 et la prochainement je vais mettre en place un Beacon pour le Zoffset automatique et le level rapide Voila
V3DP Posté(e) Juillet 29, 2024 Posté(e) Juillet 29, 2024 Le 28/07/2024 at 15:31, Zaros a dit : J'ai changer la hotend par une CHC Volcano de chez TriangleLabs avec une Volcano CHT de chez bondtech sa envoie très fort en débit (bien plus que l'origine ou j'était brider) Je confirme sur mes deux X Max 3 en prod aussi, on est presque à la limite de l'extrudeur en débit. Bon j'ai mis une petite marge de sécurité. Je me demande si on ne pourrait pas remplacer les roues crantées des extrudeurs par des Bondtech, qui sont nettement plus mordants dans le filament. Avec du TPU je trouve que les extrudeurs sont un peu limites.
pjtlivjy Posté(e) Aout 22, 2024 Posté(e) Aout 22, 2024 j'ai finalement trouver 5 minutes pour monter un hotend 2.5 sur ma X-Max 3 en dehors du fait que ça permet d'imprimer n'importe quel filament avec la buse bi métal, le débit est légèrement supérieur et plus régulier. 1
TopheC Posté(e) Janvier 19 Posté(e) Janvier 19 (modifié) Bonjour à tous, (je suis "encore" en dernière version de firmware stock sur ma X-Max3, j'attends une emmc 32Go pour libérer la bête, avec possibilité de revenir en stock si besoin.) Je viens de recevoir un hotend 2.5 à mettre, et je viens de parcourir (à nouveau) tout le fil pour savoir si vous aviez des conseils particuliers pour cette"opération" ? Ou après. A part refaire le PID... Merci d'avance Modifié (le) Janvier 19 par TopheC
pjtlivjy Posté(e) Janvier 19 Posté(e) Janvier 19 (modifié) franchement @TopheC ça se fait aisément, le PID je l'avais fais par acquis de conscience ça n'a rien changé à mes valeurs d'origine bienvenue parmi les Qidistes Modifié (le) Janvier 19 par pjtlivjy 2
TopheC Posté(e) Janvier 19 Posté(e) Janvier 19 (modifié) OK, cool ! Merci de l’accueil Et pour ceux qui chercheraient la commande à utiliser pour le (re)réglage du PID : PID_CALIBRATE HEATER=extruder TARGET=220 A entrer dans la console de Fluidd (cela dit çà doit fonctionner aussi en SSH...). Pour illustrer, au début de la vidéo https://www.youtube.com/watch?v=1sqBaWNt_3U il y a 54 minutes, TopheC a dit : OK, cool ! Merci de l’accueil Et pour ceux qui chercheraient la commande à utiliser pour le (re)réglage du PID : PID_CALIBRATE HEATER=extruder TARGET=220 A entrer dans la console de Fluidd (cela dit çà doit fonctionner aussi en SSH...). Pour illustrer, au début de la vidéo https://www.youtube.com/watch?v=1sqBaWNt_3U Et je vais repasser bientôt et souvent, je ne tire pas (du tout) le potentiel de cette machine plutôt bien faite, très robuste, mais dont le software semble délaissé (pour le moins) alors que tous les bons ingrédients FOSS sont là !!! Le support Qidi, dont d'autres marques pourraient prendre exemple, est vraiment compétent et n'hésites pas à envoyer des pièces au moindre pépin lié aux bugs. Mais cela ne fait fait pas tout.... Modifié (le) Janvier 19 par TopheC 1
pjtlivjy Posté(e) Février 4 Posté(e) Février 4 une petite mise à jour sur la X-MAX3, désormais et au moins depuis octobre 2024 (peut être avant à vérifier) le système de réglage monté en série est le même que celui des Q1 Pro, un système semi automatique, plus de vis à régler 1
Moucklee Posté(e) Février 4 Posté(e) Février 4 il y a 6 minutes, pjtlivjy a dit : une petite mise à jour sur la X-MAX3, désormais et au moins depuis octobre 2024 (peut être avant à vérifier) le système de réglage monté en série est le même que celui des Q1 Pro, un système semi automatique, plus de vis à régler Sympa le dissipateur, c'est de série ou tu la rajouté ? J'ai l'habitude d'en mettre un peu partout aussi 1
pjtlivjy Posté(e) Février 4 Posté(e) Février 4 non je les ai ajouté @Moucklee comme toi , là je viens d'en recevoir que je vais monté sur la PLUS4, on gagne quelques degrés ça ne peut qu'améliorer ... ils sont sacrément sollicités nos petits moteurs 1
fran6p Posté(e) Février 5 Auteur Posté(e) Février 5 Il y a 17 heures, pjtlivjy a dit : le système de réglage monté en série est le même que celui des Q1 Pro, un système semi automatique, plus de vis à régler De toute façon, pour «régler» cette tension des courroies, il faut tout de même dévisser (pas complètement) les quatre vis de maintien du tendeur de courroie, et ce, pour chaque moteur. Le système ancien n'était certes pas des plus pratique, mais la tension des courroies ne variait pas au gré de la compression / décompression des ressorts. Le problème venait surtout du fait qu'il fallait absolument dévisser un peu les quatre vis avant de procéder au réglage de la tension. En plus, ces vis, à moins que le carter de support des moteurs ait été modifié depuis, étaient vissées directement dans du plastique (j'ai déjà dû remplacer certaines de ces vis qui sinon ne tenaient plus dans le pas de vis ).
pjtlivjy Posté(e) Février 5 Posté(e) Février 5 le principal problème de l'ancien système @fran6p c'est surtout ce qu'en faisait certains car avec cette idée qu'il fallait absolument tendre les courroies, certains ont largement dépassé les limites de ce que pouvait encaisser la structure plastique au moins là l'intervention humaine est très limitée là c'est aussi visser directement dans le plastique, c'est sur ça ne pardonne aucune erreur et si on ne revisse pas dans le filetage ou avec une clé classique on va vers les ennuis une clé dynamométrique est plus que recommandé dans ce genre de configuration après il y a très peu de chance d'avoir besoin d'aller mettre ces petits doigts à cet endroit, je dirais même à aller toucher qu'en dernier ressort 1
fran6p Posté(e) Février 5 Auteur Posté(e) Février 5 Avec le peu de débattement permis par ce système de tension de courroie, je doute fortement qu'on puisse dépasser des limites. Les problèmes que certains ont rencontrés provenaient de l'oubli de dévisser les quatre vis du tendeur avant de faire le réglage via la vis de tension. Sans oublier, une fois ces vis de maintien du support moteur dévissées de faire faire le parcours de déplacement de la tête aux quatre coins et seulement alors procéder au réglage. L'ajout du ressort enlève simplement l'étape de réglage via la vis de tension. 2
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant