Aller au contenu

Acheter Bambu Lab A1

Ender 3S1 plus ajouter un script (pause)


RD3D

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 😉

🙂

Lien vers le commentaire
Partager sur d’autres sites

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 ?

accel.JPG

Modifié (le) par Poussin3D
Lien vers le commentaire
Partager sur d’autres sites

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.

🙂

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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).

🙂

Lien vers le commentaire
Partager sur d’autres sites

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

image.jpeg.739104268d45b8f1399490cd39e4e4da.jpeg

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 :

image.jpeg.efb483520b819b519d97f49be9b77177.jpeg

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é :

image.thumb.jpeg.6ddbbaedc48bf56be04480a0f42ab942.jpeg

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) par Poussin3D
Lien vers le commentaire
Partager sur d’autres sites

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) :

mainsail-machine-printer.thumb.jpg.f619b62665815a64fbcd395bbaecaa37.jpg

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 😄

🙂

Lien vers le commentaire
Partager sur d’autres sites

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 ^^

Lien vers le commentaire
Partager sur d’autres sites

Pour les paramètres, la «bible» de la documentation Klipper est accessible en français ( @Savate et moi avons contribué à cette traduction 😉 ).

Lien vers le commentaire
Partager sur d’autres sites

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 😮

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

🙂

Lien vers le commentaire
Partager sur d’autres sites

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 ^^

Lien vers le commentaire
Partager sur d’autres sites

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) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

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. 

Lien vers le commentaire
Partager sur d’autres sites

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) par Poussin3D
Lien vers le commentaire
Partager sur d’autres sites

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 >>><<< (à ne pas utiliser tels quels car certains pour être fonctionnels demandent quelques modifications pour fonctionner avec la tablette Creality (plus d'infos >>> ici <<<).

🙂

Lien vers le commentaire
Partager sur d’autres sites

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 :

 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

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 :

image.thumb.jpeg.cd19b780103d9a329e4af0f7c9a01fa4.jpeg

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) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

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:

 

🙂

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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 :

extrusion-relative.jpg.ac96193dcdacc109fc048622c5425298.jpg

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) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

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

image.jpeg.6321a0be33454abcac0eb368b7509c7d.jpeg

 

Lien vers le commentaire
Partager sur d’autres sites

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...