fran6p Posté(e) Mai 22, 2023 Posté(e) Mai 22, 2023 @Poussin3D Actuellement ta carte contrôleur fonctionne avec Marlin comme firmware. La tablette SonicPad fonctionne avec Klipper comme firmware. En fonction de ton imprimante, le SonicPad t'accompagnera pour flasher le firmware Klipper sur la carte contrôleur et installer le fichier (printer.cfg) qui permettra de faire fonctionner l'imprimante. Il sera évidemment possible de revenir en arrière (reflasher un Marlin) au cas où
Poussin3D Posté(e) Mai 24, 2023 Posté(e) Mai 24, 2023 @fran6p En effet, sonic pad reçu aujourd'hui, j'ai installé Klipper et suivi toutes les instructions. J'en suis au test de résonance et apres je lance une impression test. Par contre je n'ai pas compris à quel moment on configure la vitesse d'impression et les fameux profils "speedy" et "balanced". Est ce que je peux prendre mes gcode habituels et les adapter grâce au sonic pad ou est ce que je dois faire un nouveau gcode sous cura avec une vitesse de 160 mm/s ? Et concernant la vitesse de déplacement que conseilles tu ?
fran6p Posté(e) Mai 24, 2023 Posté(e) Mai 24, 2023 Avec Cura, il n'y a pas de profil prévu pour la E3S1. Il faut ajouter une nouvelle imprimante, genre Ender3 max (ta E3S1 plus a à peu près les mêmes dimensions), puis importer les deux profils «Creality». Tu peux évidemment reprendre tes profils habituels en modifiant les vitesses d'impression et surtout en décochant de Cura la prise en compte des accélérations et jerk (Klipper va les gérer). En vitesse de déplacement, j'utilise jusqu'à 200 mm/s. Ce fichier à désarchiver : Liste Profil Imprimante-E3S1-FP.zip contient une page HTML qui reprend mes profils Cura (actuellement ma E3S1 n'est plus fonctionnelle à cause d'une petite mésaventure ). Comme j'utilise pas mal de macros Klipper, mon Gcode de démarrage est très réduit (de même pour celui de fin). Je sauvegarde mes fichiers de configuration sur Github, tu peux y jeter un œil
Poussin3D Posté(e) Mai 24, 2023 Posté(e) Mai 24, 2023 (modifié) il y a 29 minutes, fran6p a dit : Avec Cura, il n'y a pas de profil prévu pour la E3S1. Il faut ajouter une nouvelle imprimante, genre Ender3 max (ta E3S1 plus a à peu près les mêmes dimensions), puis importer les deux profils «Creality». Tu peux évidemment reprendre tes profils habituels en modifiant les vitesses d'impression et surtout en décochant de Cura la prise en compte des accélérations et jerk (Klipper va les gérer). En vitesse de déplacement, j'utilise jusqu'à 200 mm/s. Ce fichier à désarchiver : Liste Profil Imprimante-E3S1-FP.zip contient une page HTML qui reprend mes profils Cura (actuellement ma E3S1 n'est plus fonctionnelle à cause d'une petite mésaventure ). Comme j'utilise pas mal de macros Klipper, mon Gcode de démarrage est très réduit (de même pour celui de fin). Je sauvegarde mes fichiers de configuration sur Github, tu peux y jeter un œil Merci beaucoup pour ta config ça va m'être très utile ! Je n'ai pas trop compris pour les profils creality à importer, pourtant j'ai déjà un profil de E3S1 pourquoi partir sur ender3 max ? Quelle différence entre "normal" et "fast" ? C'est au niveau du rendu de l'impression que ça change ? Pour la paroi intérieur et extérieur tu as essayé d'aller à plus de 80 mm/s ? Le rendu n'est pas bon ? J'irai aussi jeter un oeil sur ton Github ce week-end Concernant il y a 45 minutes, fran6p a dit : et surtout en décochant de Cura la prise en compte des accélérations et jerk (Klipper va les gérer). Tu parles de ces deux paramètres à décocher ? Modifié (le) Mai 24, 2023 par Poussin3D
fran6p Posté(e) Mai 25, 2023 Posté(e) Mai 25, 2023 Il y a 18 heures, Poussin3D a dit : Tu parles de ces deux paramètres à décocher ? Oui. A décocher sinon Cura introduira des limites Il y a 18 heures, Poussin3D a dit : Quelle différence entre "normal" et "fast" ? Les vitesses d'impression: normal => 120 mm/s, fast => 160 mm/s Il y a 18 heures, Poussin3D a dit : Pour la paroi intérieur et extérieur tu as essayé d'aller à plus de 80 mm/s ? Extérieur, oui je limite pour avoir un rendu «propre», pour l'intérieur c'est souvent la vitesse max. Il y a 18 heures, Poussin3D a dit : Je n'ai pas trop compris pour les profils creality à importer C'est la manière préconisée par Creality dans leur document sur leur page support.
Poussin3D Posté(e) Mai 25, 2023 Posté(e) Mai 25, 2023 Il y a 8 heures, fran6p a dit : Oui. A décocher sinon Cura introduira des limites D'accord mais si je le décoche, c'est géré automatiquement par Klipper ? Du coup, comment je lui impose les 2500 en accélération ? Comment je peux également gérer le Jerk ? Il y a 8 heures, fran6p a dit : Les vitesses d'impression: normal => 120 mm/s, fast => 160 mm/s Oui j'avais vu les changements de vitesse mais je voulais avoir plutôt le retour d'expérience entre ces deux vitesses, est-ce que le rendu des pièces est vraiment perceptible ? J'ai imprimé une ou deux pièces test cet après midi j'ai eu des résultats assez différents ... J'avais mis une vitesse de paroi extérieur à 100 mm/s "pour voir". Mais j'ai peut-être pas encore tout assimilé mais je suis un peu déçu du gain de temps. J'imprimais des pièces avec 0% de remplissage à 60mm/s en paroi extérieur et 80mm/s en paroi intérieur et là de passer à 80 mm/s ça me fait gagner 10 mins sur 6h ... je m'attendais à diviser par 2 mon temps d'impression ou au moins par 1.5 Il y a 8 heures, fran6p a dit : C'est la manière préconisée par Creality dans leur document sur leur page support. Je vais entrer les profils préconisés par Creality et voir si ça change quelque chose également
fran6p Posté(e) Mai 26, 2023 Posté(e) Mai 26, 2023 Il y a 18 heures, Poussin3D a dit : c'est géré automatiquement par Klipper ? OUI sauf si tu brides via les options dans Cura Du coup, comment je lui impose les 2500 en accélération ? Comment je peux également gérer le Jerk ? C'est dans le fichier printer.cfg que ça se règle, section [printer]. Klipper n'utilise pas le terme «jerk» mais «square_corner_velocity». Exemple, avec ma CR10V2 : Citation [printer] kinematics: cartesian max_velocity: 500 <= vitesses X et Y maximales max_accel: 3000 <= accélérations X et Y maximales max_z_velocity: 20 max_z_accel: 100 square_corner_velocity: 5 <= le «jerk» selon Klipper Normalement, si tu as utilisé l'accéléromètre pour déterminer les fréquences d'atténuation de résonance ( input shaping ), avec chaque modèle d'atténuation, il est indiqué l'accélération maximale utilisable. Sans modification de Klipper, il ne gère pas indépendamment les axes X et Y, sur nos machines «bed slinger» (lit se déplaçant sur l'axe Y) c'est lui qui limite les accélérations. Au niveau gain de temps, je gagne en moyenne 50/70 %. Même à 160 mm/s, je n'ai qu'une infime perte de qualité mais l'imprimante est bien calibrée (input shaping, pressure advance) par contre pour ne pas risquer de problèmes d'extrusion, mon PLA (majoritairement du 3D850 ou 870) est imprimé «chaud» (220/230°C).
Poussin3D Posté(e) Mai 31, 2023 Posté(e) Mai 31, 2023 (modifié) Salut @fran6p Désolé j'ai mis un peu de temps à te répondre, week-end et début de semaine très chargé ! Merci pour tes réponses qui m'ont bien éclairé Je me suis penché sur le sujet et : Le 26/05/2023 at 17:26, fran6p a dit : c'est géré automatiquement par Klipper ? OUI sauf si tu brides via les options dans Cura En effet, je n'avais pas décoché les paramètres du contrôle de l'accélération sous Cura donc forcément ça ne pouvait pas marcher ! Après avoir désactivé ces paramètres j'ai gagné pas mal de temps sur mes impressions !! Je n'irais pas jusqu'à 50% de gain mais maintenant j'y vais progressivement, pour le moment j'ai gagné 20% de temps sur mes impressions. j'ai aussi vu de l'amélioration dans le rendu des impressions même si on est pas encore parfait parfait, il y a du mieux. Le 26/05/2023 at 17:26, fran6p a dit : C'est dans le fichier printer.cfg que ça se règle, section [printer]. J'ai également découvert le fichier printer-model.cfg que je suis en train de configurer. J'avais ces valeurs dans printer-model.cfg Est-ce que j'ai les mêmes valeurs dans l'imprimante ? Comment je peux consulter toutes les valeurs que j'ai actuellement ? J'ai donc mis les mêmes valeurs que toi pour le moment. Le 26/05/2023 at 17:26, fran6p a dit : Normalement, si tu as utilisé l'accéléromètre pour déterminer les fréquences d'atténuation de résonance ( input shaping ), avec chaque modèle d'atténuation, il est indiqué l'accélération maximale utilisable. Sans modification de Klipper, il ne gère pas indépendamment les axes X et Y, sur nos machines «bed slinger» (lit se déplaçant sur l'axe Y) c'est lui qui limite les accélérations. J'ai bien fait le paramétrage du input shaping mais je ne sais pas si il utilise correctement les bonnes valeurs car j'ai encore un peu de ghosting même sans dépasser 80mm/s en vitesse max de paroi externe. Est-ce que je peux voir le résultat du input shaping et les valeurs modifiées quelque part ? Sinon on est bien d'accord que les vitesses que je mets sous cura sont bien celles qui seront sur la machine ? Le fichier config-model.cfg ne modifie pas les vitesses ? J'ai également vu d'autres paramètres : Il y a une doc pour comprendre et régler ces paramètres ? Est-ce que ces paramètres sont corrects ? Enfin, dernier problème, j'ai eu un décalage sur au moins 3 impressions après le 1er centimètre imprimé : D'après ce que j'ai pu lire il s'agirait d'une accélération trop forte qui ferait "sauter" un cran et ferait ce décalage... Tu me confirmes que c'est probablement ça ? Donc 5000 en accélération serait beaucoup trop ? Mais alors pourquoi de base Klipper propose ces valeurs ? Mon input shaping aurait mal été fait ? Modifié (le) Mai 31, 2023 par Poussin3D
fran6p Posté(e) Mai 31, 2023 Posté(e) Mai 31, 2023 il y a une heure, Poussin3D a dit : Donc 5000 en accélération serait beaucoup trop ? Sur nos imprimantes à plateau se déplaçant, OUI (2500-3000 max.) il y a une heure, Poussin3D a dit : il s'agirait d'une accélération trop forte qui ferait "sauter" un cran et ferait ce décalage... C'est fort probable Normalement Klipper utilise un fichier nommé «printer.cfg» pas printer-model.cfg Tous les paramètres concernannt ta machine s'y trouve, y compris les réglages de PID, input shaper, etc. Pour certains de ces paramètres, si un SAVE_CONFIG a été effectué, ils sont enregistrés à la fin du fichier printer.cfg, après la ligne indiquant de ne pas modifier les valeurs se trouvant après ( #*# <---------------------- SAVE_CONFIG ----------------------> ) Exemple du printer.cfg de mon Ender3S1 : Citation # !Ender-3 S1 # printer_size: 230x230x270 # v2.7 # Motherboard (Late 2020/2021) as the heater pins changed. # To use this config, during "make menuconfig" select the STM32F103 # with a "28KiB bootloader" and serial (on USART1 PA10/PA9) # communication. # Flash this firmware by copying "out/klipper.bin" to a SD card and # turning on the printer with the card inserted. The firmware # filename must end in ".bin" and must not match the last filename # that was flashed. # See docs/Config_Reference.md for a description of parameters. #################################################################### # ____ __ _ _ _ # # / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ # # | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \ # # | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | # # \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| # # |___/ # # # #################################################################### #======================== Included Configurations ================== [include webinterface.cfg] [include timelapse.cfg] [include macros.cfg] [include shell_command.cfg] #======================= Common Kinematic Settings ================= [printer] kinematics: cartesian max_velocity: 300 max_accel: 2500 max_z_velocity: 10 square_corner_velocity: 5.0 max_z_accel: 1000 [stepper_x] step_pin: PC2 dir_pin: PB9 enable_pin: !PC3 microsteps: 16 rotation_distance: 40 endstop_pin: !PA5 position_min: -3 position_endstop: -3 position_max: 247 homing_speed: 80 [stepper_y] step_pin: PB8 dir_pin: PB7 enable_pin: !PC3 microsteps: 16 rotation_distance: 40 endstop_pin: !PA6 position_min: -2 position_endstop: -2 position_max: 232 # 230 homing_speed: 80 [stepper_z] step_pin: PB6 dir_pin: !PB5 enable_pin: !PC3 microsteps: 16 rotation_distance: 8 endstop_pin: probe:z_virtual_endstop position_max: 270 position_min: -5 homing_speed: 6 second_homing_speed: 1 homing_retract_dist: 2.0 #========================= Extruder and Heated Bed =============== [extruder] max_extrude_only_distance: 1000.0 step_pin: PB4 dir_pin: PB3 enable_pin: !PC3 microsteps: 16 #gear_ratio: 42:12 #rotation_distance: 26.359 rotation_distance: 7.6190 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PA1 sensor_type: EPCOS 100K B57560G104F sensor_pin: PC5 #control: pid #pid_Kp: 23.904 #pid_Ki: 1.476 #pid_Kd: 96.810 min_temp: 0 max_temp: 300 # 265 #max_extrude_cross_section: 2.0 # 0.64 ( 4 x nozzle_dia x nozzle_dia ) #pressure_advance: 0.038 # Eryone PLa Matte black pressure_advance: 0.017 # PLA 3D850 Charcoal black pressure_advance_smooth_time: 0.040 [heater_bed] heater_pin: PA7 sensor_type: EPCOS 100K B57560G104F sensor_pin: PC4 #control: pid #pid_Kp: 74.000 #pid_Ki: 1.965 #pid_Kd: 696.525 min_temp: 0 max_temp: 120 # 130 [verify_heater extruder] check_gain_time: 200 hysteresis: 5 #============================= Filament Sensors ==================== [filament_switch_sensor filament_sensor] pause_on_runout: true runout_gcode: M600 switch_pin: ^!PC15 #=================================== Fans ========================== [heater_fan hotend_fan] pin: PC0 heater: extruder heater_temp: 50.0 max_power: 0.8 shutdown_speed: 0 fan_speed: 1.0 [fan] pin: PA0 kick_start_time: 0.5 #========================== Micro-Controller Config ================= [mcu] serial: /dev/serial/by-id/usb_serial_1 #serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method: command #[mcu rpi] #serial: /tmp/klipper_host_mcu #========================== Resonance Measurement ================ [input_shaper] #shaper_freq_x: 59.6 #shaper_freq_y: 44.2 #shaper_type_x: 2hump_ei #shaper_type_y: ei #[adxl345] #cs_pin: rpi:None #spi_speed: 2000000 #spi_bus: spidev2.0 #[resonance_tester] #accel_chip: adxl345 #accel_per_hz: 70 #probe_points: # 117.5,117.5,10 #============================= Probing Harware ===================== # Before printing the PROBE_CALIBRATE command needs to be issued at # least once to run the probe calibration procedure, described at # docs/Probe_Calibrate.md, to find the correct z_offset. [bltouch] sensor_pin: ^PC14 control_pin: PC13 x_offset: -31.8 # -30 y_offset: -40.5 # -40 #z_offset: 0 speed: 10 samples: 1 samples_result: average probe_with_touch_mode: true stow_on_each_sample: false #================================ Safe Homing ====================== [safe_z_home] home_xy_position: 145,155 # 147, 154 speed: 200 z_hop: 10 z_hop_speed: 10 #move_to_previous: true #============================= Bed Level Support =================== [bed_mesh] speed: 200 # 120 mesh_min: 10, 10 #15,30 # 20, 20 mesh_max: 214, 190 #210,190 # 200, 197 mesh_pps: 2,2 algorithm: bicubic probe_count: 9,9 #7,7 #5,5 [bed_screws] screw1: 25, 30 screw2: 210, 30 screw3: 210, 200 screw4: 25, 200 [screws_tilt_adjust] screw1: 57, 70 # x+32, y+40 screw1_name: front left screw screw2: 237, 70 screw2_name: front right screw screw3: 237, 232 # 240 out of range screw3_name: rear right screw screw4: 57, 232 # 240 out of range screw4_name: rear left screw horizontal_move_z: 4.0 speed: 100 screw_thread: CW-M4 # CW for Clockwise, CCW for Counter Clockwise #=========================== Optional Features ===================== [respond] [firmware_retraction] retract_length: .4 retract_speed: 40 unretract_extra_length: 0.0 unretract_speed: 35 # Support for gcode arc (G2/G3) commands. [gcode_arcs] resolution: 1.0 [save_variables] # Support saving variables to disk so that they are retained across # restarts. filename: /mnt/UDISK/printer_config/variables.cfg # Required - provide a filename that would be used to save the # variables to disk e.g. ~/variables.cfg #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# 0.062500, 0.105000, 0.085000, 0.057500, 0.077500, 0.015000, 0.020000, 0.027500, 0.020000 #*# 0.015000, 0.070000, 0.022500, 0.007500, 0.035000, -0.020000, -0.007500, 0.005000, 0.010000 #*# -0.012500, 0.055000, -0.002500, 0.007500, 0.047500, 0.000000, 0.030000, 0.055000, 0.072500 #*# -0.060000, 0.000000, -0.042500, -0.030000, 0.020000, -0.010000, 0.022500, 0.060000, 0.092500 #*# -0.042500, 0.010000, -0.037500, -0.022500, 0.012500, -0.025000, 0.027500, 0.067500, 0.107500 #*# -0.030000, 0.017500, -0.032500, -0.025000, 0.012500, -0.025000, 0.017500, 0.057500, 0.102500 #*# -0.075000, -0.020000, -0.067500, -0.052500, -0.012500, -0.040000, 0.015000, 0.067500, 0.130000 #*# -0.037500, 0.000000, -0.055000, -0.042500, -0.005000, -0.037500, -0.005000, 0.042500, 0.102500 #*# -0.072500, -0.040000, -0.100000, -0.092500, -0.052500, -0.090000, -0.040000, 0.012500, 0.055000 #*# tension = 0.2 #*# min_x = 10.0 #*# algo = bicubic #*# y_count = 9 #*# mesh_y_pps = 2 #*# min_y = 10.0 #*# x_count = 9 #*# max_y = 190.0 #*# mesh_x_pps = 2 #*# max_x = 214.0 #*# #*# [extruder] #*# control = pid #*# pid_kp = 22.703 #*# pid_ki = 1.201 #*# pid_kd = 107.271 #*# #*# [heater_bed] #*# control = pid #*# pid_kp = 70.991 #*# pid_ki = 1.283 #*# pid_kd = 982.342 #*# #*# [input_shaper] #*# shaper_type_x = ei #*# shaper_freq_x = 43.4 #*# shaper_type_y = 2hump_ei #*# shaper_freq_y = 44.0 #*# #*# [bltouch] #*# z_offset = 1.600 Tu peux accéder (modifier aussi) à ton fichier printer.cfg via l'interface Web (Mainsail ou Fluidd) : il y a une heure, Poussin3D a dit : les vitesses que je mets sous cura sont bien celles qui seront sur la machine ? Oui il y a une heure, Poussin3D a dit : Le fichier config-modelprinter.cfg ne modifie pas les vitesses ? Il fixe les accélérations et vitesses maximales que même le trancheur ne pourra pas outrepasser
Poussin3D Posté(e) Mai 31, 2023 Posté(e) Mai 31, 2023 il y a une heure, fran6p a dit : Tu peux accéder (modifier aussi) à ton fichier printer.cfg via l'interface Web (Mainsail ou Fluidd) : Ah c'est super je viens de découvrir ça merci pour l'info Alors j'ai modifié 2 ou 3 trucs et apparemment Klipper n'a pas aimé, il voulait plus rien savoir quand j'ai sauvegardé il était carrément déconnecté ... Heureusement j'avais sauvegardé la version initiale et quand je l'ai remise ça a marché ... Du coup j'ai juste modifié la max_velocity à 2800 pour déjà éviter le problème de décalage il y a une heure, fran6p a dit : Normalement Klipper utilise un fichier nommé «printer.cfg» pas printer-model.cfg Effectivement c'est bien printer.cfg celui que j'ai cité c'était le modèle test de la clé USB Bon je vais voir un peu tous ces nouveaux paramètres et prochaine étape => pressure_advance Je vais finir par arriver à faire quelque chose de correct avec ce sonicpad ^^
fran6p Posté(e) Juin 1, 2023 Posté(e) Juin 1, 2023 Pour les paramètres, la «bible» de la documentation Klipper est accessible en français ( @Savate et moi avons contribué à cette traduction ).
Poussin3D Posté(e) Juin 1, 2023 Posté(e) Juin 1, 2023 Je vais me pencher là-dessus mais je t'avoue que ce pavé me fait un peu peur et pas sûr d'avoir le temps (ou la motivation) de tout lire et surtout de tout comprendre Y en a un sacré pavé ! Il a dû vous falloir un sacré courage et des connaissances solides pour traduire tout ça
Poussin3D Posté(e) Juin 4, 2023 Posté(e) Juin 4, 2023 @fran6p Et est-ce que tu sais comment on règle le problème du M600 sur la S1 plus et le Sonicpad ? J'ai essayé d'ajouter un script "changement de filament" en pensant que ça marcherait ... mais il a buggé et impossible de redémarrer l'impression
fran6p Posté(e) Juin 4, 2023 Posté(e) Juin 4, 2023 Suivant la version de l'OS installée sur le Spad, ça dépend. Plutôt que recopier ce que j'écris dans un de mes dépôts Github, je te mets le lien qui traite du M600.
Poussin3D Posté(e) Juin 4, 2023 Posté(e) Juin 4, 2023 Ok merci, bon je suis pas sûr d'avoir compris comment il faut faire, mais je vais déjà essayer de comprendre comment fonctionnent les macros sur Klipper Alors en faisant quelques tests je viens de me rendre compte que le M600 marche ... mais que je dois changer le filament en moins d'une heure sinon l'impression s'arrête automatiquement ... (chose que je n'avais pas vu sur la précédente impression qui a foirée. J'imagine qu'avec une macro je dois pouvoir changer le timer, et 5h serait déjà mieux ^^
fran6p Posté(e) Juin 7, 2023 Posté(e) Juin 7, 2023 (modifié) Tu prends ton temps pour changer le filament Si c'est le M600 de Creality, compliqué de modifier le délai à moins d'aller modifier un fichier python (c'est la manière que Creality a utilisé pour «fabriquer» sa pseudo macro ). Avec des macros «normales» (façon Klipper donc ), il suffit de modifier un paramètre dans une macro. Exemple avec «mes» macros : Citation [gcode_macro M600] description: Starts process of Filament Change rename_existing: M600.1 gcode: {% if printer.extruder.temperature < 180 %} {action_respond_info("Extruder temperature too low")} {% else %} PAUSE_MACRO _DISABLE_FS UNLOAD_FILAMENT {% endif %} [gcode_macro PAUSE_MACRO] description: Pauses Print gcode: PAUSE SET_IDLE_TIMEOUT TIMEOUT={ 30 * 60 } # 30 minutes … [gcode_macro _DISABLE_FS] description: disables filament sensor that might trigger an M600 in the middle of a load/unload/M600... gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 [gcode_macro UNLOAD_FILAMENT] description: Unloads Filament from extruder gcode: {% if printer.extruder.temperature < 180 %} {action_respond_info("Extruder temperature too low")} {% else %} SAVE_GCODE_STATE NAME=UNLOAD_state {% set Z = params.Z|default(50)|int %} {% set axis_max = printer.toolhead.axis_maximum %} {% set pos = printer.toolhead.position %} {% set z_diff = axis_max.z - pos.z %} {% set z_safe_lift = [ Z, z_diff ] | min%} G91 # relative positioning G0 Z{ z_safe_lift } # Reset extruder position G92 E0 G1 E5.0 F300 # extrude a little G1 E-50 F{ 10 * 60 } # perform the unload G1 E-50 F{ 5 * 60 } # finish the unload RESTORE_GCODE_STATE NAME=UNLOAD_state {% endif %} La macro PAUSE est celle des interfaces Mainsail / Fluidd #================== MACROS fluidd / mainsail (Web interfaces) =================== [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 %} Donc avec les macros ci-dessus, il suffit de modifier le délai dans la ligne ci-dessous de la macro PAUSE_MACRO : Citation SET_IDLE_TIMEOUT TIMEOUT={ 30 * 60 } # 30 minutes Pour cinq heures, (300 * 60) => 18000 secondes soit 5 heures Modifié (le) Juin 7, 2023 par fran6p
BO105cbs Posté(e) Juin 8, 2023 Posté(e) Juin 8, 2023 Le 28/03/2023 at 15:06, fran6p a dit : et reprise de l'impression). Manuelle bien sûr Cela fonctionne parfaitement, dans le cadre de ce que tu as écrit à propos du firmaware. Je m'en sert de temps à autres juste pour le fun. On ne voit aucune reprise rien de rien.
Poussin3D Posté(e) Juin 12, 2023 Posté(e) Juin 12, 2023 (modifié) Le 07/06/2023 at 16:04, fran6p a dit : Donc avec les macros ci-dessus, il suffit de modifier le délai dans la ligne ci-dessous de la macro PAUSE_MACRO : Je pensais que le M600 marchait, mais il ne marche que sur une impression "test" qui dure 10 minutes, si je lance une impression de 2h avec changement de couleur ça plante, donc je dois forcément passer par une macro J'ai donc essayé d'ajouter ta macro mais je n'arrive pas à la faire fonctionner Je suis complétement novice en macro, est-ce que tu peux me dire où je me suis planté ? Après plusieurs tentatives qui ont abouti à un plantage de Klipper, j'ai réussi à ne pas le faire planter, imprimer, changer le filament, mais lorsque l'impression reprend elle est entre 5 et 10 cm trop haute. Voici les macros dans mon fichier printer.cfg : # !Ender-3 S1 Plus # printer_size: 300x300x300 # version: 3.4 # This file contains pin mappings for the stock 2021 Creality Ender 3 # S1 & S1 Pro. To use this config, check the STM32 Chip on the # Mainboard, during "make menuconfig" select accordingly either the # STM32F103 with "28KiB bootloader" or the STM32F401 with # "64KiB bootloader" and serial (on USART1 PA10/PA9) for both. # For a direct serial connection, in "make menuconfig" select # "Enable extra low-level configuration options" and Serial # (on USART2 PA3/PA2), which is on the 10 pin IDC cable used # Flash this firmware by copying "out/klipper.bin" to a SD card and # turning on the printer with the card inserted. The filename # must be changed to "firmware.bin" # With STM32F401, you might need to put "firmware.bin" in a # folder on the SD card called "STM32F4_UPDATE" in order to flash. # See docs/Config_Reference.md for a description of parameters. ###fluidd set [virtual_sdcard] path: ~/gcode_files [display_status] [pause_resume] [gcode_macro M600] description: Starts process of Filament Change rename_existing: M600.1 gcode: {% if printer.extruder.temperature < 180 %} {action_respond_info("Extruder temperature too low")} {% else %} PAUSE_MACRO _DISABLE_FS UNLOAD_FILAMENT {% endif %} [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 _DISABLE_FS] description: disables filament sensor that might trigger an M600 in the middle of a load/unload/M600... gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 [gcode_macro UNLOAD_FILAMENT] description: Unloads Filament from extruder gcode: {% if printer.extruder.temperature < 180 %} {action_respond_info("Extruder temperature too low")} {% else %} SAVE_GCODE_STATE NAME=UNLOAD_state {% set Z = params.Z|default(50)|int %} {% set axis_max = printer.toolhead.axis_maximum %} {% set pos = printer.toolhead.position %} {% set z_diff = axis_max.z - pos.z %} {% set z_safe_lift = [ Z, z_diff ] | min%} G91 # relative positioning G0 Z{ z_safe_lift } # Reset extruder position G92 E0 G1 E5.0 F300 # extrude a little G1 E-50 F{ 10 * 60 } # perform the unload G1 E-50 F{ 5 * 60 } # finish the unload RESTORE_GCODE_STATE NAME=UNLOAD_state {% 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} [gcode_macro CANCEL_PRINT] description: Cancel the actual running print rename_existing: CANCEL_PRINT_BASE gcode: TURN_OFF_HEATERS {% if "xyz" in printer.toolhead.homed_axes %} G91 G1 Z4.5 F300 G90 {% else %} {action_respond_info("Printer not homed")} {% endif %} G28 X Y {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} G1 Y{y_park} F2000 M84 CANCEL_PRINT_BASE Modifié (le) Juin 12, 2023 par Poussin3D
fran6p Posté(e) Juin 12, 2023 Posté(e) Juin 12, 2023 Mes macros sont séparées du fichier printer.cfg et chargées automatiquement au démarrage par la ligne [include …] du printer.cfg. Extrait de mon printer.cfg : Citation #======================== Included Configurations ================== [include webinterface.cfg] [include timelapse.cfg][include macros.cfg] [include shell_command.cfg] Tous mes fichiers «SonicPad» de ma Ender3S1 sont >>> là <<< (à ne pas utiliser tels quels car certains pour être fonctionnels demandent quelques modifications pour fonctionner avec la tablette Creality (plus d'infos >>> ici <<<).
Poussin3D Posté(e) Juin 15, 2023 Posté(e) Juin 15, 2023 Bon j'ai eu un peu de mal mais après quelques tentatives, je crois que ça marche ! J'ai créé un nouveau dossier que j'ai appelé macros.cfg, j'ai ajouté les macros (je me suis arrêté à "Optional Macros"). J'ai ajouté à mon printer.cfg une ligne [include macros.cfg] et à priori ça a l'air de marcher sur 2 tests, plus qu'à tester sur des fichiers plus gros et avec plusieurs changements de couleur Maintenant on peut passer aux autres problèmes J'ai un problème récurent que je ne sais pas expliquer, des fois l'interface web se connecte sans problème mais des fois il ne marche plus et pendant 2h, 4h ou 12h c'est assez aléatoire, je n'arrive plus à accéder à l'interface web, comment je peux faire ? J'ai bien vérifié l'adresse ip du sonicpad, j'ai bien vérifié que je suis sur le même réseau wifi, aucun problème de ce côté là mais j'ai ce message à chaque fois : Ce site est inaccessible 192.168.1.61 a mis trop de temps à répondre. Voici quelques conseils : Vérifier la connexion Vérifier le proxy et le pare-feu Exécutez les diagnostics réseau de Windows
Poussin3D Posté(e) Juillet 14, 2023 Posté(e) Juillet 14, 2023 (modifié) Hello, Merci @fran6p pour tes précédentes réponses. Maintenant que les autres problèmes sont résolus je peux revenir sur le premier sujet .... Les macros et la pause dans l'impression avec Klipper et le SPAD. Donc pour résumer : Lorsque j'imprime une pièce de petite taille en gros une pièce test de moins de 30 minutes d'impression et de petite taille, l'imprimante se met correctement en pause et je peux changer le filament à ma guise et relancer l'impression une fois terminé (dans un délai d'1h). Par contre, dès que j'imprime une grosse pièce, au delà de 30 minutes environ d'impression, ça plante toujours... Voici le message que j'ai : J'avais bien ajouté un dossier macros.cfg dans lequel j'ai mis ça : Citation #================== MACROS fluidd / mainsail (Web interfaces) =================== [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} [gcode_macro CANCEL_PRINT] description: Cancel the actual running print rename_existing: CANCEL_PRINT_BASE gcode: TURN_OFF_HEATERS {% if "xyz" in printer.toolhead.homed_axes %} G91 G1 Z4.5 F300 G90 {% else %} {action_respond_info("Printer not homed")} {% endif %} G28 X Y {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} G1 Y{y_park} F2000 M84 CANCEL_PRINT_BASE #=========================================================================== #========================= Start Print & End Print ========================= #=========================================================================== [gcode_macro START_PRINT] description: Use START_PRINT for the slicer beginning script Customize for your slicer of choice with placeholders. These are different for slicers, so take care of their syntax. gcode: # Get Printer built volume dimensions {% set X_MAX = printer.toolhead.axis_maximum.x|default(235)|float %} {% set Y_MAX = printer.toolhead.axis_maximum.y|default(235)|float %} {% set Z_MAX = printer.toolhead.axis_maximum.z|default(270)|float %} # Get Nozzle diameter and filament width for conditioning {% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %} {% set FILADIA = printer.extruder.filament_diameter|default(1.75)|float %} # Set Start coordinates of purge lines {% set X_START = 4.0|default(4.0)|float %} {% set Y_START = 9.0|default(9.0)|float %} # Calculate purge line extrusion volume and filament length {% set PRIMER_WIDTH = 1 * NOZZLE %} {% set PRIMER_HEIGHT = 0.5 * NOZZLE %} {% set PRIMER_SECT = PRIMER_WIDTH * PRIMER_HEIGHT %} {% set PRIMER_VOL = PRIMER_SECT * (Y_MAX - 3 - Y_START) * 2 %} {% set FILA_SECT = 3.1415 * ( FILADIA / 2.0) * ( FILADIA / 2.0) %} {% set FILA_LENGTH = 1.55 * PRIMER_VOL / FILA_SECT %} # Get Bed and Extruder temperature from Slicer GCode {% set BED_TEMP = params.BED_TEMP|default(60)|float %} {% set EXTRUDER_TEMP_PRE = 160|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(205)|float %} # Preheat nozzle and bed M104 S{EXTRUDER_TEMP_PRE} M190 S{BED_TEMP} # Reset Pressure Advance to 0, will be adjusted later in G-code based on material settings from Cura #M900 K0 # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=0.0 # Home _CG28 # either use one of these below lines : G29 and / or BED_MESH_CALIBRATE # do bed leveling for each print. # BED_MESH_PROFILE use an already made leveling. #G29 #BED_MESH_CALIBRATE BED_MESH_PROFILE LOAD="default" #LEVEL_BED_ADVANCED MAX_AGE=10 ; probe mesh eventually # Park nozzle while things heat up G1 X{X_START} Y{Y_START-5} Z{PRIMER_HEIGHT} F6000.0 # Heat nozzle and bed M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} # Purge line G90 G92 E0 G1 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0 G1 X{X_START} Y{Y_MAX - 3 - Y_START} Z{PRIMER_HEIGHT} E{FILA_LENGTH} F2000.0 G1 X{X_START + PRIMER_WIDTH} Y{Y_MAX - 3 - Y_START} Z{PRIMER_HEIGHT} G1 X{X_START + PRIMER_WIDTH} Y{Y_START} Z{PRIMER_HEIGHT} E{FILA_LENGTH*2} F2000.0 G92 E0 G1 Z2.0 F600 G1 Z0.2 F600 G1 Z2.0 F600 [gcode_macro END_PRINT] description: Use END_PRINT for the slicer ending script - customize for your slicer of choice gcode: M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-3.0 F3600 ; retract filament G91 ; relative positioning # Get Boundaries {% set X_MIN = printer.toolhead.axis_minimum.x|default(0)|float %} {% set Y_MAX = printer.toolhead.axis_maximum.y|default(230)|float %} {% set max_z = printer.toolhead.axis_maximum.z|default(270)|float %} {% if printer.toolhead.position.z < (max_z - 2) %} {% set z_safe = 2.0 %} {% else %} {% set z_safe = max_z - printer.toolhead.position.z %} {% endif %} G0 Z{z_safe} F3600 ; move nozzle up and present print G90 G0 X{X_MIN+2} Y{Y_MAX-5} F3600 TURN_OFF_HEATERS M107 ; turn off fan #G28 X Y M84 ; Disable steppers # _SAVE_IF_SET ; SAVE_CONFIG if a mesh was probed in START_PRINT (LEVEL_BED_ADVANCED) # Alternative macros PRINT_START and PRINT_END [gcode_macro PRINT_START] gcode: START_PRINT { rawparams } [gcode_macro PRINT_END] gcode: END_PRINT { rawparams } # This is where the magic happens: # MAX_AGE is checked against the stored variable # SAVE=1 can be used to force saving the mesh (restarts Klipper, so use only for manual usage) # FORCE_LEVEL=1 forces a mesh probe even if MAX_AGE is not reached [gcode_macro LEVEL_BED_ADVANCED] description: Levels the bed if the last leveling was MAX_AGE runs ago. Force leveling by setting FORCE_LEVEL to 1 variable_save_at_end: 0 gcode: {% set max_age = params.MAX_AGE|default(10)|int %} {% set force_level = params.FORCE|default(0)|int %} {% set save = params.SAVE|default(0)|int %} # load level_age from stored variables {% set svv = printer.save_variables.variables %} {% if "level_age" not in svv %} # first run SAVE_VARIABLE VARIABLE=level_age VALUE={max_age} {% set level_age = 1 %} {% else %} # load level_age and increment {% set level_age = svv.level_age %} SAVE_VARIABLE VARIABLE=level_age VALUE={level_age|int + 1} {% endif %} {action_respond_info("Bed mesh age is " + level_age|string) + "."} # Level eventually {% if force_level or (level_age >= max_age|int) %} {action_respond_info("Bed mesh exceeded max age. Leveling...")} # homing if not homed yet _CG28 BED_MESH_CALIBRATE {% if save %} SAVE_VARIABLE VARIABLE=level_age VALUE=1 # reset counter SAVE_CONFIG {% else %} SET_GCODE_VARIABLE MACRO=LEVEL_BED_ADVANCED VARIABLE=save_at_end VALUE=1 {% endif %} {% else %} {action_respond_info("Loading old bed mesh.")} BED_MESH_PROFILE LOAD="default" {% endif %} Et dans le fichier printer.cfg Citation # !Ender-3 S1 Plus # printer_size: 300x300x300 # version: 3.4 # This file contains pin mappings for the stock 2021 Creality Ender 3 # S1 & S1 Pro. To use this config, check the STM32 Chip on the # Mainboard, during "make menuconfig" select accordingly either the # STM32F103 with "28KiB bootloader" or the STM32F401 with # "64KiB bootloader" and serial (on USART1 PA10/PA9) for both. # For a direct serial connection, in "make menuconfig" select # "Enable extra low-level configuration options" and Serial # (on USART2 PA3/PA2), which is on the 10 pin IDC cable used # Flash this firmware by copying "out/klipper.bin" to a SD card and # turning on the printer with the card inserted. The filename # must be changed to "firmware.bin" # With STM32F401, you might need to put "firmware.bin" in a # folder on the SD card called "STM32F4_UPDATE" in order to flash. # See docs/Config_Reference.md for a description of parameters. ###fluidd set [virtual_sdcard] path: ~/gcode_files [display_status] [pause_resume] [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} [gcode_macro CANCEL_PRINT] description: Cancel the actual running print rename_existing: CANCEL_PRINT_BASE gcode: TURN_OFF_HEATERS {% if "xyz" in printer.toolhead.homed_axes %} G91 G1 Z4.5 F300 G90 {% else %} {action_respond_info("Printer not homed")} {% endif %} G28 X Y {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} G1 Y{y_park} F2000 M84 CANCEL_PRINT_BASE [stepper_x] step_pin: PC2 dir_pin: PB9 enable_pin: !PC3 rotation_distance: 40 microsteps: 16 endstop_pin: !PA5 position_min: -5 position_endstop: -5 position_max: 305 homing_speed: 80 [stepper_y] step_pin: PB8 dir_pin: PB7 enable_pin: !PC3 rotation_distance: 40 microsteps: 16 endstop_pin: !PA6 position_min: -2 position_endstop: -2 position_max: 305 homing_speed: 80 [stepper_z] step_pin: PB6 dir_pin: !PB5 enable_pin: !PC3 rotation_distance: 8 microsteps: 16 endstop_pin: probe:z_virtual_endstop #enable to use bltouch #endstop_pin: !PA15 #disable to use bltouch #position_endstop: -0.1 position_min: -10 position_max: 305 homing_speed: 4 second_homing_speed: 1 homing_retract_dist: 2.0 [extruder] gear_ratio: 1:1 max_extrude_only_distance: 1000.0 step_pin: PB4 dir_pin: PB3 enable_pin: !PC3 rotation_distance: 7.5 microsteps: 16 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PA1 sensor_type: EPCOS 100K B57560G104F sensor_pin: PC5 #control: pid # tuned for stock hardware with 200 degree Celsius target #pid_Kp: 23.904 #pid_Ki: 1.476 #pid_Kd: 96.810 min_temp: 0 max_temp: 265 pressure_advance: 0.07 pressure_advance_smooth_time: 0.040 [heater_bed] heater_pin: PA7 sensor_type: EPCOS 100K B57560G104F sensor_pin: PC4 #control: pid # tuned for stock hardware with 50 degree Celsius target #pid_Kp: 74.000 #pid_Ki: 1.965 #pid_Kd: 696.525 min_temp: 0 max_temp: 130 [verify_heater extruder] check_gain_time: 200 hysteresis: 5 [fan] pin: PA0 kick_start_time: 0.5 #set heater fan runnig with temperature over 60; [heater_fan my_nozzle_fan] pin: PC0 max_power: 0.8 shutdown_speed : 0 heater:extruder heater_temp : 60 fan_speed : 1.0 [mcu] serial: /dev/serial/by-id/usb_serial_1 restart_method: command # [mcu rpi] # serial: /tmp/klipper_host_mcu # [adxl345] # cs_pin: rpi:None # spi_speed: 2000000 # spi_bus: spidev2.0 # [resonance_tester] # accel_chip: adxl345 # accel_per_hz: 70 # probe_points: # 150,150,10 [input_shaper] #shaper_type_x = mzv #shaper_freq_x = 59.2 #shaper_type_y = mzv #shaper_freq_y = 30.0 [filament_switch_sensor filament_sensor] pause_on_runout: true switch_pin: ^!PC15 [bltouch] sensor_pin: ^PC14 #signal check port ^stand for pull up control_pin: PC13 #singal control prot x_offset: -30.0 y_offset: -40.0 #z_offset: 0 #z off_set configuration speed: 20 stow_on_each_sample = false #high speed for bltoch, samples: 1 #probe_with_touch_mode = true [safe_z_home] home_xy_position:185,195 speed: 200 z_hop: 10 z_hop_speed: 10 [bed_mesh] speed: 150 mesh_min: 25,30 #need to handle head distance with bl_touch mesh_max: 273,250 #max probe range probe_count: 5,5 fade_start: 1 fade_end: 10 fade_target: 0 algorithm: bicubic [bed_screws] screw1: 25, 33 screw2: 262, 33 screw3: 262, 272 screw4: 25, 272 [gcode_macro G29] gcode: G28 bed_mesh_calibrate G1 X0 Y0 Z10 F4200 [gcode_arcs] #resolution: 1.0 [printer] kinematics: cartesian max_velocity: 300 max_accel: 2800 max_z_velocity: 10 max_z_accel: 1000 square_corner_velocity: 5.0 [include timelapse.cfg] [include macros.cfg] #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bltouch] #*# z_offset = 3.730 #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# 0.090000, 0.027500, -0.045000, 0.022500, 0.075000 #*# 0.092500, 0.012500, -0.045000, 0.040000, 0.065000 #*# 0.052500, 0.002500, -0.055000, 0.055000, 0.082500 #*# 0.055000, 0.022500, -0.035000, 0.047500, 0.062500 #*# 0.097500, 0.052500, -0.020000, 0.050000, 0.070000 #*# tension = 0.2 #*# min_x = 25.0 #*# algo = bicubic #*# y_count = 5 #*# mesh_y_pps = 2 #*# min_y = 30.0 #*# x_count = 5 #*# max_y = 250.0 #*# mesh_x_pps = 2 #*# max_x = 273.0 #*# #*# [input_shaper] #*# shaper_type_x = mzv #*# shaper_freq_x = 48.6 #*# shaper_type_y = ei #*# shaper_freq_y = 43.6 #*# #*# [extruder] #*# control = pid #*# pid_kp = 26.308 #*# pid_ki = 1.580 #*# pid_kd = 109.506 #*# #*# [heater_bed] #*# control = pid #*# pid_kp = 73.837 #*# pid_ki = 0.785 #*# pid_kd = 1736.082 Modifié (le) Juillet 14, 2023 par fran6p
fran6p Posté(e) Juillet 14, 2023 Posté(e) Juillet 14, 2023 Je me suis permis d'éditer ton post pour le rendre «plus» lisible en mettant les deux gros blocs de configuration dans des balises «citation» ( ’’ ). Sans rapport probable mais : tu as deux fois les mêmes macros à la fois dans le printer.cfg et le macros.cfg ( PAUSE, RESUME, CANCEL_PRINT ) et… c'est «mal» . Comme ton include se trouve en fin du fichier printer.cfg, ce sont celles du macros.cfg qui auront la priorité. Souvent l'erreur de max_extrude vient d'un mauvais paramétrage du mode d'extrusion: relatif / absolu. Si c'est en absolu, c'est souvent lui qui déclenche cette erreur. Le G90 est le mode absolu, le G91 le relatif. Pour l'extrudeur uniquement il serait préférable de compléter le changement de mode en utilisant les modes M82 / M83 (absolu / relatif). Concernant l'extrusion, il est préférable de travailler en relatif mais si un G90 est «appelé», le mode d'extrusion passera en absolu (sauf si après le G90 on utilise un M83). Par défaut dans le gcode de démarrage, le mode est en absolu (G90) et l'extrudeur passe en mode absolu sauf si on complète par un M83. En mode absolu, pour que la distance ne soit pas trop longue, on effectue régulièrement un G92 E0 (réinitialise). Les macros actuelles PAUSE, RESUME… mixent parfois du G90 et du G91 ce qui met le «bintz». Je n'utilise plus vraiment ces macros PAUSE, RESUME, CANCEL_PRINT mais plutôt celles des équipes Mainsail / Fluidd (ce sont désormais les mêmes). Je trouve leurs macros plus simples à gérer (avec plus de fonctionnalités et un paramétrage plus individualisé via leur macro _CLIENT_VARIABLE (une macro débutant par le caractère " _ " n'apparait pas dans la liste des macros ). Révélation ## Client variable macro for your printer.cfg #[gcode_macro _CLIENT_VARIABLE] #variable_use_custom_pos : False ; use custom park coordinates for x,y [True/False] #variable_custom_park_x : 0.0 ; custom x position; value must be within your defined min and max of X #variable_custom_park_y : 0.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 : 100.0 ; move speed in mm/s #variable_park_at_cancel : False ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False] #variable_park_at_cancel_x : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True #variable_park_at_cancel_y : None ; 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 #gcode:
Poussin3D Posté(e) Juillet 15, 2023 Posté(e) Juillet 15, 2023 Il y a 20 heures, fran6p a dit : Sans rapport probable mais : tu as deux fois les mêmes macros à la fois dans le printer.cfg et le macros.cfg ( PAUSE, RESUME, CANCEL_PRINT ) et… c'est «mal» . Comme ton include se trouve en fin du fichier printer.cfg, ce sont celles du macros.cfg qui auront la priorité. Pour être honnête, j'ai vraiment du mal à comprendre comment fonctionne le langage des macros. Je fais copier/coller et je prie pour que ça fonctionne ... Il y a 20 heures, fran6p a dit : Souvent l'erreur de max_extrude vient d'un mauvais paramétrage du mode d'extrusion: relatif / absolu. Si c'est en absolu, c'est souvent lui qui déclenche cette erreur. Le G90 est le mode absolu, le G91 le relatif. Pour l'extrudeur uniquement il serait préférable de compléter le changement de mode en utilisant les modes M82 / M83 (absolu / relatif). Concernant l'extrusion, il est préférable de travailler en relatif mais si un G90 est «appelé», le mode d'extrusion passera en absolu (sauf si après le G90 on utilise un M83). Par défaut dans le gcode de démarrage, le mode est en absolu (G90) et l'extrudeur passe en mode absolu sauf si on complète par un M83. En mode absolu, pour que la distance ne soit pas trop longue, on effectue régulièrement un G92 E0 (réinitialise). Les macros actuelles PAUSE, RESUME… mixent parfois du G90 et du G91 ce qui met le «bintz». Je n'utilise plus vraiment ces macros PAUSE, RESUME, CANCEL_PRINT mais plutôt celles des équipes Mainsail / Fluidd (ce sont désormais les mêmes). Je trouve leurs macros plus simples à gérer (avec plus de fonctionnalités et un paramétrage plus individualisé via leur macro _CLIENT_VARIABLE (une macro débutant par le caractère " _ " n'apparait pas dans la liste des macros ). Mais alors concrètement que dois-je faire pour arriver à faire marcher une macro, quelque chose de simple, pour que je puisse faire une pause et changer mon filament sans rester à côté de l'imprimante ?
fran6p Posté(e) Juillet 15, 2023 Posté(e) Juillet 15, 2023 (modifié) Il y a 1 heure, Poussin3D a dit : quelque chose de simple, pour que je puisse faire une pause Ça dépend de ce que tu entends par «pause» (j'en fais régulièrement pour aller boire un verre d'eau, aller aux toilettes, me lever, marcher un peu (mais pas trop), … ). La pause la plus simple laisserait la buse à l'endroit où la pause est demandée MAIS en faisant ainsi comme elle resterait en température sur la pièce en train de s'imprimer, cela provoquerait des «dégâts». Donc la majorité des «pauses» déplacent la buse à un endroit «sûr» (et sauvegardent la position de future reprise) pour éviter le désagrément ci-dessus. Or suivant la manière dont est implémentée la macro, si elle mixe du relatif et de l'absolu et qu'au moment de la reprise l'état antérieur n'est pas complétement restitué, on obtient parfois le message de quantité d'extrusion dépassant les capacités (paramètres de l'extrudeur). Dans ton trancheur, tu n'aurais pas activé l'extrusion relative par hasard ? Dans Cura, section «modes spéciaux», extrusion relative : Tu devrais déjà, même si ça ne résoudra peut-être pas ton soucis, supprimer du fichier printer.cfg les macros PAUSE, RESUME, CANCEL_PRINT et ne les avoir que dans le fichier macros.cfg Comme je n'utilise plus ces macros sous cette forme mais celles fournies par mainsail ou fluidd, je ne saurais t'aider plus. C'est bizarre tout de même car pour avoir utilisé ces «anciennes» macros, elles étaient fonctionnelles Modifié (le) Juillet 15, 2023 par fran6p
Poussin3D Posté(e) Juillet 15, 2023 Posté(e) Juillet 15, 2023 il y a une heure, fran6p a dit : Ça dépend de ce que tu entends par «pause» (j'en fais régulièrement pour aller boire un verre d'eau, aller aux toilettes, me lever, marcher un peu (mais pas trop), … ). Aujourd'hui ça sera plutôt la pause apéro ! Il y a 1 heure, fran6p a dit : La pause la plus simple laisserait la buse à l'endroit où la pause est demandée MAIS en faisant ainsi comme elle resterait en température sur la pièce en train de s'imprimer, cela provoquerait des «dégâts». En effet, je vois bien ce que ça donne et ce n'est pas ce que je cherche Il y a 1 heure, fran6p a dit : Dans ton trancheur, tu n'aurais pas activé l'extrusion relative par hasard ? Dans Cura, section «modes spéciaux», extrusion relative Je viens de vérifier, et non ce n'est pas activé Il y a 1 heure, fran6p a dit : Tu devrais déjà, même si ça ne résoudra peut-être pas ton soucis, supprimer du fichier printer.cfg les macros PAUSE, RESUME, CANCEL_PRINT et ne les avoir que dans le fichier macros.cfg J'ai supprimé les macros du fichier printer.cfg et je viens de lancer une impression avec changement de couleur au milieu. Résultat dans une heure... Avec ces paramètres dans Cura 5.2.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