Aller au contenu

Messages recommandés

Posté(e)
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.

Posté(e)

@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 😁

  • J'aime 1
  • Merci ! 1
Posté(e) (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) par fran6p
  • J'aime 1
Posté(e)

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 😄 

Posté(e)
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.

  • 4 weeks later...
Posté(e)

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.

  • J'aime 1
  • 4 months later...
Posté(e) (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) par TopheC
Posté(e) (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) par pjtlivjy
  • J'aime 2
Posté(e) (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) par TopheC
  • J'aime 1
  • 3 weeks later...
Posté(e)

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 😉

 

IMG_0937.jpeg

  • J'aime 1
Posté(e)
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 😉

 

IMG_0937.jpeg

Sympa le dissipateur, c'est de série ou tu la rajouté ?

J'ai l'habitude d'en mettre un peu partout aussi 🤣

 

Capturedcran2025-02-04231938.png.0f5d6437fd779301c303b2c15eecfe41.png

  • J'aime 1
Posté(e)

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 1
Posté(e)
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 😞).

Posté(e)

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 1
Posté(e)

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.

🙂

  • +1 2

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...