Tircown Posté(e) Novembre 2, 2020 Posté(e) Novembre 2, 2020 Oui je ne parle pas des variables de fran6p, mais bien du nom donné à la sauvegarde. Bon si ça marche avec cr10v2 chez lui et que Klipper est à jour chez chacun, tu peux oublier mon histoire de nom de variable sauvegarde. 1
Stef67 Posté(e) Novembre 2, 2020 Posté(e) Novembre 2, 2020 (modifié) Ok merci pour vos réponses a tous les 2 Edit: loin de moi l'idée d'être chiant mais, il n'y aurais pas moyen de faire afficher dans le terminal quand il recupere le bed mesh ? Bonsoir. Fran6p, j'ai testé le capteur filament ainsi que ce qui se passe quand il détecte qu'il n'y en a plus. Donc en enlevant le filament, la tête se met en park, puis une demande de Switch avec un timer 20s. après 20s lextrudeur tire le filament puis l'impression reprends. Par contre si on a pas changé le filament, après les 20s le cycle reste le même et il reprends l'impression avec ou sans filament. Ma question est la suivante, Serait il possible, une fois la détection activée, que la commande Switch ne se déclenche pas tant que le capteur n'est pas détecté comme ayant du filament? Par exemple, moi j'imprime beaucoup de nuit et si il manque du fil au milieu de la nuit je risque pas de me réveiller, l'impression va donc reprendre toute la nuit sans filament. L'idéal serait donc que la tête se mette en park, le bed reste chaud, et la commande Switch ne d'active que si l'on insere du filament dans le capteur. Modifié (le) Novembre 2, 2020 par Stef67
Stef67 Posté(e) Novembre 15, 2020 Posté(e) Novembre 15, 2020 Bonsoir, Apres pas mal de jours de recherches et de tests infructueux, je reviens vers vous. J'essai de modifier le comportement du capteur filament avec la commande M600 du fichier cfg de Fran6p. Qu'on se comprenne bien, tel qu'il est il fonctionne tres bien, mais il declenche des timers. Le 1er a 25s le suivant a 10s et ensuite le print reprend, que le fil soit rechargé ou pas. La seule solution qui me semble possible serait d'ajouter une commande d'attente, soit de detecter qu'un fil a ete remis dans le capteur, soit qu'une commande soit entrée dans le terminal ou via le menu. J'ai tenté un M0 mais il est interdit dans klipper car il attends un clic materiel pour continuer. Du coup je pensais qu'il serait possible de creer une macro qui mette en pause en attente d'une commande gcode, puis de modifier l'action resume printing du menu pour y entrer ce gcode. Malheureusement entre l'idée et la conception, c'ets tout un monde... Si quelqu'un a une idée, merci d'avance # filament change [gcode_macro M600] gcode: M117 Filament Change M118 Filament Change SAVE_GCODE_STATE NAME=filament_change PAUSE LOW_TEMP_CHECK G91 # relative G1 E-1 F300 # retract 1 M125 # park M702 # unload M0 Click to continue <--- voila le genre de commande qu'il aurait fallu ajouter M117 New filament M118 New filament COUNTDOWN TIME=25 MSG="Switch" M701 COUNTDOWN TIME=10 MSG="Clean" RESUME M117 Resuming M118 Resuming RESTORE_GCODE_STATE NAME=filament_change M117 Printing.. M118 Printing..
Tircown Posté(e) Novembre 15, 2020 Posté(e) Novembre 15, 2020 (modifié) Ça doit être faisable en créant un menu avec 3 options. Chacune constituée d'un tronçon du code de @fran6p et coupé au endroits ou l'intervention est requise. Pour chaque menu il y a un paramètre "enable" qui permet de gérer quand l'option est visible. Chacun des 3 tronçon doit mettre à jour une variable qui débloque l'affichage de l'option suivante. Je ne sais plus trop si le rafraichissement de l'affichage est automatique, mais s'il se fait bien entre chaque tronçon, ça revient à faire ce que tu souhaites. Si le M600 est déclenché dans le code il faudra quand même aller dans le bon menu pour accéder aux options suivantes. Une autre façon de faire, avec un bouton physique supplémentaire cette fois-ci: créer une section gcode_button user_input, en paramétrant le pin mais sans gcode. dans la macro M600, mettre une boucle aux endroits ou on veut attendre. Mettre un DWELL court à l'intérieur et une condition de sortie sur QUERY_BUTTON button=user_input. Il faut s'assurer aussi qu'on ait le temps de relâcher le bouton avant d'arriver dans la prochaine bouche. Pour le M701 ce n'est pas un soucis, c'est assez long, mais le RESUME est quasi instantané et si le bouton est censé stopper une action après, il faudra temporiser un peu entre les deux (DWELL). Modifié (le) Novembre 15, 2020 par Tircown 1
Stef67 Posté(e) Novembre 16, 2020 Posté(e) Novembre 16, 2020 oula, merci pour ta reponse mais pour etre franc, j'ai rien compris C'est deja un stade un peut trop avancé pour moi je pense
Stef67 Posté(e) Novembre 18, 2020 Posté(e) Novembre 18, 2020 (modifié) Bonjour, J'ai reussi a faire ce que je voulais à quelques petits détails prêts. J'ai donc decoupé le menu M600 de Fran6p en 2, supprimé l'option COOLDOWN qui imposait un timer aux actions. J'en suis donc aujourd'hui à 2 macros : La première va enregistrer l'emplacement, mettre la tête en park, désactiver le stepper extruder et éteindre la hotend. (cela me permet de unload/reload le fil manuellement) ### FILAMENT CHANGE [gcode_macro M600] gcode: SAVE_GCODE_STATE NAME=filament_change PAUSE # Relative position G91 # Retract 1mm G1 E-1 F300 # Park the nozzle M125 # Disable Stepper extrudeur for purge manually SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 # Disable temperature nozzle M104 S0 Le 2eme va redonner l'emplacement a la tête d'impression et celle ci va s'y rendre et reprendre le print. ### FILAMENT RESUME [gcode_macro FILAMENT_RESUME] gcode: RESUME RESTORE_GCODE_STATE NAME=filament_change Ensuite j'ajoute sur mon ecran un bouton Filament resume qui lancera la macro ( il ne faut pas oublier de remettre la hotend en chauffe avant de lancer la reprise) Maintenant, j'ai trouvé comment modifier le fichier original menu.cfg (je sais qu'il sera reinitialisé en cas de Maj) Je souhaite pouvoir relancer un print apres un filament runout, sans avoir a allumer l'ordinateur pour me rendre sur octoprint. Je modifie donc le menu en ajoutant un menu 'Fil. Runout' contenant : ### + Fil. Runout # + Heating hotend # + Unload filament # + Load filament # + Resume print # + Cancel print J'ajoute donc au menu.cfg: ### menu filament runout ### [menu __main __filrunout] type: list enable: {printer.idle_timeout.state == "Printing"} permet au menu de ne s'afficher que si l'imprimante est en cours de print name: Fil. Runout [menu __main __filrunout __hotend0_target] type: input enable: {('extruder' in printer) and printer.idle_timeout.state == "Printing"} name: {"Ex0:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} input: {printer.extruder.target} input_min: 0 input_max: {printer.configfile.config.extruder.max_temp} input_step: 1 gcode: M104 T0 S{'%.0f' % menu.input} [menu __main __filrunout __unloads] type: command name: Unload Filament gcode: SAVE_GCODE_STATE NAME=__filament__load M83 G1 E-120 F480 RESTORE_GCODE_STATE NAME=__filament__load [menu __main __filrunout __loads] type: command name: Load Filament gcode: SAVE_GCODE_STATE NAME=__filament__load M83 G1 E120 F480 RESTORE_GCODE_STATE NAME=__filament__load [menu __main __filrunout __resumeprint] type: command enable: {not printer.idle_timeout.state == "Printing"} name: Resume printing gcode: FILAMENT_RESUME Le menu n'est pas encore fini, mais je coince sur une option que je trouve interessante, on peut faire apparaitre le menu sous certaines conditions. L'ideal serait de faire apparaitre celui-ci, uniquement si le capteur filament indique un runout. De plus une fois le menu apparu, il serait judicieux que les options , load unload , resume, cancel, n'apparaissent que lorsque la hotend sera chauffée. Malheureusement je ne trouve aucune indication sur la maniere de faire. Si quelqu'un a une idée Merci de m'avoir lu (une fois de plus) Modifié (le) Novembre 18, 2020 par Stef67
Tircown Posté(e) Novembre 18, 2020 Posté(e) Novembre 18, 2020 (modifié) Le 16/11/2020 at 01:15, Stef67 a dit : C'est deja un stade un peut trop avancé pour moi je pense Et 2 jours après tu paramètres exactement ce dont le parle 2-3 remarques. C'est une mauvaise idée d'avoir touché au fichier menu.cfg. Comme tu le pointes du doigts il sera écrasé à chaque mise à jour. En revanche c'est tout à fait possible et conseillé de mettre ton code dans le fichier printer.cfg ou mieux, dans un fichier que tu "includes" dedans. Tout cela est dans la doc mais si tu coinces je peux t'aider. Si ton objectif n'est d'accéder à ces fonctionnalités qu'en cas de run out et bien le mieux à faire est de paramétrer la section [filament_switch_sensor my_sensor]. Tu y mets la valeur TRUE au paramètre pause_on_runout et c'est à peu près tout. Pour l'enable de ton menu tu utilises printer.pause_resume.is_paused et il ne sera visible que lorsque l'imprimante sera mise en pause, ce que fait le filament_switch_sensor justement. Modifié (le) Novembre 18, 2020 par Tircown 1
Stef67 Posté(e) Novembre 18, 2020 Posté(e) Novembre 18, 2020 (modifié) merci pour ta reponse, effectivement le mieux serait de faire un menu.cfg en include mais depuis klipper 0.9.0 le menu a changé et ne fonctionne plus. C'est pour cela que je modifie comme ca. (du moins quand j'active le menu de fran6p il ne fonctionne pas.) pour le parametre True dans la section pause_on_runout c'est deja fait. printer.pause_resume.is_paused voila exactement ce que je recherchais !!! Merci bcp Je vais essayer de faire un menu cfg propre en include pour verifier si il marche ou pas. Modifié (le) Novembre 18, 2020 par Stef67
fran6p Posté(e) Novembre 18, 2020 Auteur Posté(e) Novembre 18, 2020 il y a 14 minutes, Stef67 a dit : printer.pause_resume.is_paused voila exactement ce que je recherchais !!! Merci bcp Les différentes variables liées à «printer» sont précisées dans le command_templates.md Pour les menus, on ne peut plus utiliser «items: et une liste d'items. Il faut en fait pour chaque item de la liste créer une option, exemple donné dans les fichiers de conf pour la carte SD: 1) Menu principal, option liée à la carte SD Citation [menu __main __sdcard] type: vsdlist enable: {('virtual_sdcard' in printer)} name: SD Card 2) pour chaque option de cette branche sdcard, créer autant de conf (menu principal, option SD sélectionnée , liste des différentes possibilités (start, resume, …) : Citation [menu __main __sdcard __start] type: command enable: {('virtual_sdcard' in printer) and not printer.idle_timeout.state == "Printing"} name: Start printing gcode: M24 [menu __main __sdcard __resume] type: command enable: {('virtual_sdcard' in printer) and printer.idle_timeout.state == "Printing"} name: Resume printing gcode: M24 … C'est faisable mais je n'ai ni le temps de le faire ni l'envie car je n'utilise pas l'écran
Stef67 Posté(e) Novembre 19, 2020 Posté(e) Novembre 19, 2020 (modifié) Bonsoir/Bonjour, Apres quelques deboires, j'ai enfin reussi a avoir exactement ce que je voulais. J'ai donc ajouté un menu.cfg dans mon dossier ce qui me permet de ne pas toucher a l'original. J'y ai ajouté le menu Fil. Runout, qui n'apparait que lorsque le print est en pause suite a un runout. Le contenu: -Chauffe de la hotend -Unload filament 12cm (direct drive+Bmg) -Load filament 12cm -Reprise du print -Cancel du print cela donne : Révélation ### menu filament runout ### [menu __main __filrunout] type: list enable: {printer.pause_resume.is_paused} name: Fil. Runout index:1 [menu __main __filrunout __hotend0_target] type: input enable: {'extruder' in printer} name: {"Ex0:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} input: {printer.extruder.target} input_min: 0 input_max: {printer.configfile.config.extruder.max_temp} input_step: 1 gcode: M104 T0 S{'%.0f' % menu.input} [menu __main __filrunout __unloads] type: command name: Unload Filament gcode: SAVE_GCODE_STATE NAME=__filament__load M83 G1 E-120 F480 RESTORE_GCODE_STATE NAME=__filament__load [menu __main __filrunout __loads] type: command name: Load Filament gcode: SAVE_GCODE_STATE NAME=__filament__load M83 G1 E120 F480 RESTORE_GCODE_STATE NAME=__filament__load [menu __main __filrunout __resumeprint] type: command enable: {not printer.idle_timeout.state == "Printing"} name: Resume printing gcode: FILAMENT_RESUME [menu __main __filrunout __cancelprint] type: command enable: True name: Cancel printing gcode: CANCEL_PRINT Pour finaliser le Cancel print j'ai ajouté une macro que j'ai nommée 'CANCEL_PRINTING' dans le Macros.cfg puis je l'ai ajouté dans le Gcode scripts 'After print job is cancelled' la macro: Révélation ### CANCEL PRINTING [gcode_macro CANCEL_PRINTING] gcode: # Relative position G91 # Move Z up 10mm G0 Z10 F600 # Absolute position G90 # Park the nozzle and present print G0 X0 Y290 F4000 # Disable all heaters M104 S0 M140 S0 # Disable fan M106 S0 Jajoute aussi dans le Gcode scripts, dans le 'Before print job is resumed' les macros: RESUME RESTORE_GCODE_STATE NAME=filament_change Cela permet de relancer le print via le bouton resume de octoprint si on est loin de la box. Ensuite j'ai decoupé la macro M600 de Fran6p en 2 partie, supprimé la partie cooldown qui m'est inutile. partie 1 : Enregistre la position, emmene la tete en position park, desactive le stepper de l'extrudeur afin de pouvoir unload et reload le filament manuellement si on le desire, emet un Bip et eteinds la hotend (le plateau reste chaud pour que le print ne se decolle pas) Révélation ### FILAMENT CHANGE [gcode_macro M600] gcode: SAVE_GCODE_STATE NAME=filament_change PAUSE # Relative position G91 # Retract 1mm G1 E-1 F300 # Park the nozzle M125 # Disable Stepper extrudeur for purge manually SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 # Tone for prevent M300 P500 S 1000 # Disable temperature nozzle M104 S0 Partie 2: Reprends la position et continu le print. Révélation ### FILAMENT RESUME [gcode_macro FILAMENT_RESUME] gcode: RESUME RESTORE_GCODE_STATE NAME=filament_change Il me reste a retrouver un post qui expliquait comment annuler un print au demarrage si le filament n'etait pas present dans le capteur et empechait aussi de resume print si le filament n'etait pas present. Je met les fichiers ci-dessous, si quelqu'un est interressé, ou si ca peut donner des idées. Merci encore pour l'aide que vous m'apportez sans arret Edit: voici les 2 macros que j'avais trouvé pour empecher le print et la reprise si le filament n'est pas present : Révélation Using a macro is the best solution, however I would do it differently. Create CHECK_FILAMENT macro that you add to the beginning of your "start gcode": [gcode_macro CHECK_FILAMENT] gcode: {% if printer['filament_switch_sensor my_sensor'].filament_detected != True %} action_raise_error("No filament present, aborting print") {% endif %} Ajout de {} Autour de action_raise_error : [gcode_macro CHECK_FILAMENT] gcode: {% if printer['filament_switch_sensor my_sensor'].filament_detected != True %} {action_raise_error("No filament present, aborting print")} {% endif %} Apres ajout de CHECK_FILAMENT dans le START_PRINT le print est bien arreté si le filament n'est pas present. A ce moment le terminal reponds : Send: CHECK_FILAMENT Recv: !! Error evaluating 'gcode_macro CHECK_FILAMENT:gcode': CommandError: No filament present, aborting print Recv: ok Arksine reponds a cette question : It is behaving as intended, action_raise_error raises an exception and Klipper logs that exception. ( Si quelqu'un connait un moyen de remplacer cette phrase d'erreur par un message propre ) ---------------------------------------------------------------------------------------------- This should raise a gcode error, forcing the print to abort. If you want to apply a check to RESUME, you could do the following: [gcode_macro RESUME] rename_existing: BASE_RESUME gcode: {% if printer['filament_switch_sensor my_sensor'].filament_detected != True %} action_respond_info("No filament present, abort resume") {% else %} BASE_RESUME {% endif %} celle-ci, placée dans le macros.cfg fonctionne et empeche le print de reprendre si le filament n'est pas present dans le capteur. J'ai du corriger en ajoutant des {} autour de action_respond_info [gcode_macro RESUME] rename_existing: BASE_RESUME gcode: {% if printer['filament_switch_sensor my_sensor'].filament_detected != True %} {action_respond_info("No filament present, abort resume")} {% else %} BASE_RESUME {% endif %} EDIT : Ajout des fonctions macros ci-dessus: empeche le print de demarrer si pas de filament. empeche la reprise du print suite a un runout, si pas de filament. KLIPPER CR10V3 Update 19.11.20.zip Modifié (le) Novembre 19, 2020 par Stef67 1
Binary Fpv Posté(e) Décembre 24, 2020 Posté(e) Décembre 24, 2020 Salut tout le monde !, après plusieurs test je souhaite flasher de nouveau marlin sur la cm, cependant impossible de la détecter dans cura. D'ailleurs ca ne fonctionne pas non plus avec carte sd Des idées !?
Ellionas Posté(e) Janvier 7, 2021 Posté(e) Janvier 7, 2021 Bonjour à tous, me revoilà ! Bon, j'ai arrêté les impressions (Et le bidouillage de l'imprimante) depuis plusieurs mois, trop de taf, une compagne pas trop contente du peu de temps que j'ai, et un beau burn-out en route... Bref, j'ai voulu m'y remettre depuis plusieurs jours, et la fièvre du bidouillage m'a repris... Mal m'en a pris. J'ai essayé d'installer mon bltouch (Celui-ci sur mon Ender 5 pro, avec klipper, et, malgré deux jours passés dessus, je n'arrive à rien... Pour info, voici mon cfg : (Qui changera d'ici 5 min, en fonction de mes tests.) # This file contains common pin mappings for the 2019 Creality # Ender 5. To use this config, the firmware should be compiled for the # AVR atmega1284p. # Note, a number of Melzi boards are shipped with a bootloader that # requires the following command to flash the board: # avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex # If the above command does not work and "make flash" does not work # then one may need to flash a bootloader to the board - see the # Klipper docs/Bootloaders.md file for more information. # See the example.cfg file for a description of available parameters. [stepper_x] step_pin: PD7 dir_pin: PC5 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC2 position_endstop: 0 position_max: 220 homing_speed: 30 [stepper_z] step_pin: PB3 dir_pin: !PB2 enable_pin: !PA5 step_distance: .0012500 # Use .001250 for Ender5 versions after late 2019 endstop_pin: probe:z_virtual_endstop ;position_endstop: 0.0 position_min: -2 position_max: 300 [stepper_y] step_pin: PC6 dir_pin: PC7 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC3 position_endstop: 0 position_max: 220 homing_speed: 30 [extruder] max_extrude_only_distance: 100.0 step_pin: PB1 dir_pin: !PB0 enable_pin: !PD6 step_distance: 0.010526 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PD5 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA7 control: pid # tuned for stock hardware with 200 degree Celsius target pid_Kp: 21.527 pid_Ki: 1.063 pid_Kd: 108.982 min_temp: 0 max_temp: 285 [heater_bed] heater_pin: PD4 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA6 control: pid # tuned for stock hardware with 50 degree Celsius target pid_Kp: 54.027 pid_Ki: 0.770 pid_Kd: 948.182 min_temp: 0 max_temp: 130 [fan] pin: PB4 [mcu] serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 5 max_z_accel: 100 [display] lcd_type: st7920 cs_pin: PA3 sclk_pin: PA1 sid_pin: PC1 encoder_pins: ^PD2, ^PD3 click_pin: ^!PC0 [firmware_retraction] retract_length: 3 retract_speed: 30 unretract_extra_length: 0 unretract_speed: 20 [gcode_arcs] resolution: 1.0 [bltouch] sensor_pin: ^PC4 control_pin: PA4 x_offset: -41 y_offset: -1 z_offset: 10.50 speed: 15 samples: 2 samples_result: average sample_retract_dist: 2.0 [bed_mesh] speed: 200 horizontal_move_z: 5 mesh_min: 0,0 mesh_max: 110,210 probe_count: 5,5 mesh_pps: 3,3 algorithm: bicubic [homing_override] set_position_z: 5 axes: z gcode: G90 ; Uncomment these 2 lines to blindly lift the Z 2mm at start G1 Z10 F600 ; Move Z up a bit to prevent scratching G28 X0 Y0 G1 X120 Y120 F3600 G28 Z0 [gcode_macro G29] gcode: G28 G1 Z10 F600 BED_MESH_CALIBRATE BED_MESH_PROFILE save=ender5 Y'a plein de choses qui ne vont pas : - Primo : La buse est trop loin du bed. Même si je change le z offset de la section bltouch, cela ne change strictement rien... (Donc incidemment, je ne peux rien imprimer.) - Deusio : Je ne pige rien aux paramètres mesh_min . D'après ce que je vois sur de multiples exemples de cf, le min est entre 50,30 et 70,50. (65,50 sur un cfg ender 5 d'exemple) Sauf que quand je mets ces valeurs, ma tête d'impression commence son "palpage" quasiment au milieu de l'axe x. - Tertio : Même chose pour mesh_max . D'après ce que je vois, il devrait être de 210,210 ou 220,220. Sauf que si je mets cela, quand je lancerais un palpage, cela sortira du plateau, voir klipper me dira que je suis out range. Je suis donc obligé de mettre 110,210... Bref... Si quelqu'un pouvait m'aide, car là je suis au bord de la rupture...
fran6p Posté(e) Janvier 8, 2021 Auteur Posté(e) Janvier 8, 2021 Il y a 20 heures, Ellionas a dit : La buse est trop loin du bed. Tu as mis : z_offset: 10.50 C'est pas un peu beaucoup ? Après avoir «calibrer» le BLT normalement les valeurs enregistrées sont sauvegardées dans le printer.cfg (à la fin du fichier) et celles précédemment placées dans la section [Bltouch] sont mises en commentaire (précédées d'un #). Ma section BLT : Citation [bltouch] # CR10V2, connexion sur ZMAXPIN (19) sensor_pin: ^ar19 control_pin: ar11 pin_move_time: 0.680 x_offset: 47 y_offset: 0 # Increase Z_Offset to lower nozzle closer to bed. PLA 1.55 #z_offset: 1.55 speed: 60 samples: 2 #sample_retract_dist: 2 #samples_result: average #samples_tolerance: 0.100 #samples_tolerance_retries: 0 Tu n'as pas de section «safe_z_home» ? Citation [safe_z_home] home_xy_position: 150,150 speed: 60.0 z_hop: 10.0 z_hop_speed: 10.0 Pour les mesh_min / max, sur ma CR10-V2, j'ai pour mon plateau de 310x310 : Citation [bed_mesh] speed: 100 probe_count: 5,5 mesh_min: 57,10 mesh_max: 290,290 horizontal_move_z: 5 mesh_pps: 2,2 #algorithm: lagrange #fade_start: 1 #fade_end: 10 #fade_target: 0 Ta vitesse de «calcul» du maillage (200) n'est-elle pas excessive ? Les valeurs saisies dans mesh_{min|max} sont relatives au pointeau du Bltouch pas de la buse : https://github.com/KevinOConnor/klipper/blob/master/docs/Bed_Mesh.md
Ellionas Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 il y a 23 minutes, fran6p a dit : Tu as mis : z_offset: 10.50 C'est pas un peu beaucoup ? Après avoir «calibrer» le BLT normalement les valeurs enregistrées sont sauvegardées dans le printer.cfg (à la fin du fichier) et celles précédemment placées dans la section [Bltouch] sont mises en commentaire (précédées d'un #). Bonjour fran6p, En fait, j'ai fait déjà plein de test sur ce paramètre, allant de -5 à 10.5. Et cela change strictement rien. (Mais vraiment aucun changement, en bien ou en mal.) Citation Tu n'as pas de section «safe_z_home» ? J'ai cru comprendre sur pas mal de site que soit on utilisait un [homing_override], soit le safe_z_mode. Je crois qu'on ne peut les mettre tous les deux, je vais tester. Citation Pour les mesh_min / max, sur ma CR10-V2, j'ai pour mon plateau de 310x310 : Citation [bed_mesh] speed: 100 probe_count: 5,5 mesh_min: 57,10 mesh_max: 290,290 horizontal_move_z: 5 mesh_pps: 2,2 #algorithm: lagrange #fade_start: 1 #fade_end: 10 #fade_target: 0 Le problème, c'est qu'en mesh_min, si je mets une valeur autre que 0,0, il va commencer son palpage loin à gauche. (Au lieu de le commencer tout à droite.) mesh_max pose aussi problème, car si je mets 210,210, le palpage sort du plateau ou j'ai une erreur out range (En gros il essaye de palper bien au-delà du plateau.) Citation Ta vitesse de «calcul» du maillage (200) n'est-elle pas excessive ? Les valeurs saisies dans mesh_{min|max} sont relatives au pointeau du Bltouch pas de la buse : https://github.com/KevinOConnor/klipper/blob/master/docs/Bed_Mesh.md Quel est l'incidence, à proprement parler ? Merci en tout cas fran6p.
Ellionas Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 C'est bien ce que je pensais, on ne peut utiliser homing et safe en même temps. Il m'indique comme erreur : homing_override and safe_z_homing cannot be used simultaneously
fran6p Posté(e) Janvier 8, 2021 Auteur Posté(e) Janvier 8, 2021 Je n'utilise pas «homing_override» mais «safe_z_home» Le mesh(min/max) ne fonctionne correctement que si la «calibration» du BLT a été correctement réalisée. Tu as bien suivi la procédure (en anglais) : https://github.com/KevinOConnor/klipper/blob/master/docs/Probe_Calibrate.md Les valeurs x_offset et y_offset sont correctes ?
Ellionas Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 il y a 27 minutes, fran6p a dit : Je n'utilise pas «homing_override» mais «safe_z_home» Le mesh(min/max) ne fonctionne correctement que si la «calibration» du BLT a été correctement réalisée. Tu as bien suivi la procédure (en anglais) : https://github.com/KevinOConnor/klipper/blob/master/docs/Probe_Calibrate.md Les valeurs x_offset et y_offset sont correctes ? À vrai dire, je ne connaissais pas cette page, je me suis contenté de saisir les valeurs données pour l'ender 5 sur des cfg d'autres. (Oui, pour le coup, j'ai l'impression d'avoir bâclé les choses... Désolé.) Problème, en suivant la procédure (Je déplace la tête au centre manuellement, je mets un adhésif et je fais "probe".) il me renvoie ça : Send: probe Recv: // Failed to verify BLTouch probe is raised; retrying. Recv: // probe at 0.000,0.000 is z=-0.005000 Recv: // probe at 0.000,0.000 is z=-0.125000 Recv: !! Probe samples exceed samples_tolerance Et en faisant get_position à la suite, j'obtiens cela : Send: get_position Recv: // mcu: stepper_x:0 stepper_y:0 stepper_z:3 Recv: // stepper: stepper_x:0.000000 stepper_y:0.000000 stepper_z:-0.122500 Recv: // kinematic: X:0.000000 Y:0.000000 Z:-0.122500 Recv: // toolhead: X:0.000000 Y:0.000000 Z:-0.122500 E:0.000000 Recv: // gcode: X:0.000000 Y:0.000000 Z:-0.122500 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Recv: ok ... Bon, j'ai compris, je dois pas le faire manuellement en mettant les moteurs off... Faut que je le fasse de l'interface. (Encore une victoire de canard !) Bon, je continue la procédure et je te dis quoi. Send: probe Recv: // Failed to verify BLTouch probe is raised; retrying. Recv: // probe at 112.000,103.000 is z=-0.127500 Recv: // probe at 112.000,103.000 is z=-0.152500 Recv: // Result is z=-0.140000 Recv: ok [...] Send: get_position Recv: // mcu: stepper_x:-191 stepper_y:-80 stepper_z:-21 Recv: // stepper: stepper_x:112.000000 stepper_y:103.000000 stepper_z:-0.152500 Recv: // kinematic: X:112.000000 Y:103.000000 Z:-0.152500 Recv: // toolhead: X:112.000000 Y:103.000000 Z:-0.152500 E:0.000000 Recv: // gcode: X:112.000000 Y:103.000000 Z:-0.152500 E:0.000000 Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000 Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000 Recv: ok
fran6p Posté(e) Janvier 8, 2021 Auteur Posté(e) Janvier 8, 2021 Pense à éditer tes posts plutôt qu'en faire de multiples à la suite En haut de chaque post, se trouve un bouton « … ». Quand on clique dessus, un menu déroulant apparait dans lequel l'option ÉDITER apparait. Cette option comme son nom l'indique, permet de modifier, corriger, compléter son propos durant une période de 12 heures après parution.
Ellionas Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 il y a 10 minutes, fran6p a dit : Pense à éditer tes posts plutôt qu'en faire de multiples à la suite En haut de chaque post, se trouve un bouton « … ». Quand on clique dessus, un menu déroulant apparait dans lequel l'option ÉDITER apparait. Cette option comme son nom l'indique, permet de modifier, corriger, compléter son propos durant une période de 12 heures après parution. Je ne trouvais plus le "edit". Merci. ^^ Bon, je ne comprends pas bien ce passage : Citation Start by homing the printer and then move the head to a position near the center of the bed. Navigate to the OctoPrint terminal tab and run the PROBE_CALIBRATE command to start the tool. This tool will perform an automatic probe, then lift the head, move the nozzle over the location of the probe point, and start the manual probe tool. If the nozzle does not move to a position above the automatic probe point, then ABORT the manual probe tool and perform the XY probe offset calibration described above. J'ai déplacé la tête vers le milieu du lit. Ensuite, j'ai fait probe_calibrate. Suite à cela, il déplace la tête en bas à droite de l'imprimante, hors du plateau et me mets ce message : Send: probe_calibrate Recv: // probe at 114.000,110.000 is z=0.106250 Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.106 <-- ?????? Recv: ok Comment il veut faire un test manuel s'il la probe est hors plateau ?
Maya35 Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 A mon avis, elle ne sait pas ou elle est ta tête Tu as bien fait un Home pour qu'il soit capable de savoir ou est le 0 0 0 ?
Ellionas Posté(e) Janvier 8, 2021 Posté(e) Janvier 8, 2021 (modifié) Un "home" ? Non... Cela fonctionne comment ? EDIT : Le bouton home all ? Si c'est ça, oui, bien sûr. Modifié (le) Janvier 8, 2021 par Ellionas
Ellionas Posté(e) Janvier 9, 2021 Posté(e) Janvier 9, 2021 (modifié) Bon, j'y ai passé la nuit, mais grâce à la page de fran6p, j'ai à peu près réussi. Par contre, j'ai dû changer le position-min de [stepper_z] à -10 et faire mon [bed_mesh] ainsi [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 115,115 mesh_max: 290, 290 probe_count: 5,5 mesh_pps: 3,3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2,3 move_check_distance: 5 split_delta_z: .025 J'ai du mal à comprendre les valeurs de mesh_min et mesh_max, (En sachant que c'est un plateau ender 5, 230*230) mais au moins, j'ai pu faire des impressions... Maintenant, il reste quelque soucis : - Lors du lancement d'une impression, une fois que le bed et la buse sont chauds, il me fait un petit tour bien au-dessus du tapis en sortant du filament... Pourquoi ? J'ai l'impression qu'il me fait la purge dans le vide. (Néanmoins, dès qu'on passe à la jupe/radeau, il remonte bien l'axe z, et c'est au poil.) Peux-ton éviter cela ? Est-ce que l'on peut faire un palpage automatique avant la chauffe de la buse ? (Mais après la chauffe du bed.) - Sur mon impression de cette nuit, (Une deck box pour les cartes Yu-Gi-Oh de mon fils.) j'ai eu deux décalage en y... Pouvez-vous m'indiquer comment éviter cela ? (Voir flèches sur la photo) https://nsa40.casimages.com/img/2021/01/09/210109121618480516.jpg Pour info, voilà le cfg complet : # This file contains common pin mappings for the 2019 Creality # Ender 5. To use this config, the firmware should be compiled for the # AVR atmega1284p. # Note, a number of Melzi boards are shipped with a bootloader that # requires the following command to flash the board: # avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex # If the above command does not work and "make flash" does not work # then one may need to flash a bootloader to the board - see the # Klipper docs/Bootloaders.md file for more information. # See the example.cfg file for a description of available parameters. [stepper_x] step_pin: PD7 dir_pin: PC5 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC2 position_endstop: 0 position_max: 230 homing_speed: 30 [stepper_z] step_pin: PB3 dir_pin: !PB2 enable_pin: !PA5 step_distance: .0012500 # Use .001250 for Ender5 versions after late 2019 endstop_pin: probe:z_virtual_endstop ;position_endstop: 0.0 position_min: -10 position_max: 290 [stepper_y] step_pin: PC6 dir_pin: PC7 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC3 position_endstop: 0 position_max: 230 homing_speed: 30 [extruder] max_extrude_only_distance: 100.0 step_pin: PB1 dir_pin: !PB0 enable_pin: !PD6 step_distance: 0.010526 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PD5 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA7 control: pid # tuned for stock hardware with 200 degree Celsius target pid_Kp: 21.527 pid_Ki: 1.063 pid_Kd: 108.982 min_temp: 0 max_temp: 285 [heater_bed] heater_pin: PD4 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA6 control: pid # tuned for stock hardware with 50 degree Celsius target pid_Kp: 54.027 pid_Ki: 0.770 pid_Kd: 948.182 min_temp: 0 max_temp: 130 [fan] pin: PB4 [mcu] serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 5 max_z_accel: 100 [display] lcd_type: st7920 cs_pin: PA3 sclk_pin: PA1 sid_pin: PC1 encoder_pins: ^PD2, ^PD3 click_pin: ^!PC0 [firmware_retraction] retract_length: 3 retract_speed: 30 unretract_extra_length: 0 unretract_speed: 20 [gcode_arcs] resolution: 1.0 [bltouch] sensor_pin: ^PC4 control_pin: PA4 x_offset: 115 y_offset: 115 z_offset: 4.78 speed: 5 samples: 2 sample_retract_dist: 2.0 samples_result: average samples_tolerance: 0.100 samples_tolerance_retries: 1 [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 115,115 mesh_max: 290, 290 probe_count: 5,5 mesh_pps: 3,3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps: 2,3 move_check_distance: 5 split_delta_z: .025 [safe_z_home] home_xy_position: 115,115 speed: 60.0 z_hop: 10.0 z_hop_speed: 10.0 [gcode_macro G29] gcode: G28 G1 Z10 F600 BED_MESH_CALIBRATE BED_MESH_PROFILE save=ender5 #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# -0.338125, -0.477500, -0.512500, -0.496875, -0.396875 #*# -0.261875, -0.384375, -0.393750, -0.365000, -0.275000 #*# -0.141250, -0.292500, -0.280625, -0.221250, -0.140625 #*# -0.100625, -0.205625, -0.183750, -0.098125, -0.013750 #*# -0.071875, -0.130000, -0.098125, -0.002500, 0.184375 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 3 #*# algo = bicubic #*# tension = 0.2 #*# min_x = 115.0 #*# max_x = 290.0 #*# min_y = 115.0 #*# max_y = 290.0 #*# #*# [bed_mesh ender5] #*# version = 1 #*# points = #*# -0.338125, -0.477500, -0.512500, -0.496875, -0.396875 #*# -0.261875, -0.384375, -0.393750, -0.365000, -0.275000 #*# -0.141250, -0.292500, -0.280625, -0.221250, -0.140625 #*# -0.100625, -0.205625, -0.183750, -0.098125, -0.013750 #*# -0.071875, -0.130000, -0.098125, -0.002500, 0.184375 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 3 #*# algo = bicubic #*# tension = 0.2 #*# min_x = 115.0 #*# max_x = 290.0 #*# min_y = 115.0 #*# max_y = 290.0 Modifié (le) Janvier 9, 2021 par Ellionas
fran6p Posté(e) Janvier 9, 2021 Auteur Posté(e) Janvier 9, 2021 @Ellionas Bizarre tout de même ton fichier Voici le fichier «monolithique» de ma CR10-V2 (manque les macros) : Citation # This file contains pin mappings for the 2020 Creality CR10-V2. To use # this config, the firmware should be compiled for the AVR atmega2560. # See the example.cfg file for a description of available parameters. [include macros.cfg] [stepper_x] step_pin: ar54 dir_pin: ar55 enable_pin: !ar38 step_distance: .0125 endstop_pin: ^ar3 position_endstop: 0 position_max: 310 homing_speed: 50 [stepper_y] step_pin: ar60 dir_pin: ar61 enable_pin: !ar56 step_distance: .0125 endstop_pin: ^ar14 position_endstop: 0 position_max: 310 homing_speed: 50 [stepper_z] step_pin: ar46 dir_pin: !ar48 enable_pin: !ar62 step_distance: .0025 #endstop_pin: ^ar18 #position_endstop: 0 endstop_pin: probe:z_virtual_endstop position_max: 400 position_min: -2.5 [extruder] step_pin: ar26 dir_pin: ar28 enable_pin: !ar24 # BMG sans reduction (140 pas => 0.00714285) # Calibration extrudeur: 138.95 pas step_distance: 0.00719666 nozzle_diameter: 0.400 filament_diameter: 1.750 # permettre chrgt / dechrgt filament max_extrude_only_distance: 540.0 max_extrude_only_velocity: 120 max_extrude_only_accel: 3000 pressure_advance: 0.67 #pressure_advance_lookahead_time: 0.040 pressure_advance_smooth_time: 0.040 heater_pin: ar10 sensor_type: EPCOS 100K B57560G104F sensor_pin: analog13 #control: pid #pid_Kp: 19.47 #pid_Ki: 1.59 #pid_Kd: 59.40 min_extrude_temp: 170 min_temp: 0 max_temp: 250 [heater_bed] heater_pin: ar8 #sensor_type: ATC Semitec 104GT-2 sensor_type: EPCOS 100K B57560G104F sensor_pin: analog14 #control: pid #pid_Kp: 690.34 #pid_Ki: 111.47 #pid_Kd: 1068.83 min_temp: 0 max_temp: 110 [fan] pin: ar9 [mcu] serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 #serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3:1.0-port0 #serial: /dev/ttyUSB0 pin_map: arduino [printer] kinematics: cartesian max_velocity: 500 max_accel: 2500 #max_accel: 7000 #max_accel_to_decel: 7000 max_z_velocity: 15 max_z_accel: 100 square_corner_velocity: 5 [display] lcd_type: st7920 cs_pin: ar16 sclk_pin: ar23 sid_pin: ar17 encoder_pins: ^ar33, ^ar31 click_pin: ^!ar35 [bltouch] # CR10V2, connexion sur ZMAXPIN (19) sensor_pin: ^ar19 control_pin: ar11 pin_move_time: 0.680 x_offset: 47 y_offset: 0 # Increase Z_Offset to lower nozzle closer to bed. PLA 1.55 #z_offset: 1.55 speed: 60 samples: 2 #sample_retract_dist: 2 #samples_result: average #samples_tolerance: 0.100 #samples_tolerance_retries: 0 [safe_z_home] home_xy_position: 150,150 speed: 60.0 z_hop: 10.0 z_hop_speed: 10.0 [bed_mesh] speed: 100 probe_count: 5,5 mesh_min: 57,10 mesh_max: 290,290 horizontal_move_z: 5 mesh_pps: 2,2 #algorithm: lagrange #fade_start: 1 #fade_end: 10 #fade_target: 0 [filament_switch_sensor my_sensor] pause_on_runout: True runout_gcode: M600 switch_pin: ^ar2 [pause_resume] [virtual_sdcard] path: ~/.octoprint/uploads/ [firmware_retraction] retract_length: 2.6 retract_speed: 25 unretract_extra_length: 0 unretract_speed: 20 # Support for gcode arc (G2/G3) commands. [gcode_arcs] resolution: 1.0 #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [extruder] #*# control = pid #*# pid_kp = 25.640 #*# pid_ki = 1.554 #*# pid_kd = 105.766 #*# #*# [heater_bed] #*# control = pid #*# pid_kp = 70.936 #*# pid_ki = 0.967 #*# pid_kd = 1300.785 #*# #*# [bltouch] #*# z_offset = 1.512 #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# 0.075000, 0.042500, 0.022500, -0.035000, -0.050000 #*# 0.022500, -0.017500, 0.005000, -0.007500, 0.017500 #*# 0.005000, -0.045000, -0.017500, -0.030000, -0.010000 #*# 0.022500, -0.020000, -0.005000, -0.025000, -0.017500 #*# 0.012500, -0.042500, -0.050000, -0.070000, -0.067500 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 2 #*# algo = lagrange #*# tension = 0.2 #*# min_x = 57.0000000001 #*# max_x = 290.0 #*# min_y = 10.0000000001 #*# max_y = 290.0 #*# #*# [bed_mesh cr10v2] #*# version = 1 #*# points = #*# 0.075000, 0.042500, 0.022500, -0.035000, -0.050000 #*# 0.022500, -0.017500, 0.005000, -0.007500, 0.017500 #*# 0.005000, -0.045000, -0.017500, -0.030000, -0.010000 #*# 0.022500, -0.020000, -0.005000, -0.025000, -0.017500 #*# 0.012500, -0.042500, -0.050000, -0.070000, -0.067500 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 2 #*# algo = lagrange #*# tension = 0.2 #*# min_x = 57.0000000001 #*# max_x = 290.0 #*# min_y = 10.0000000001 #*# max_y = 290.0 Tes valeurs dans Bltouch me semblent erronées à moins que ton BLT soit situé à droite de la buse à 115 et devant à 115. x et y_offset doivent correspondre au décalage de positions du pointeau du BLT avec la pointe de la buse en X et Y. Ton «bed_mesh» lui aussi ne me parait pas bon (x|y|z_offset) Les documentations du Github de Klipper sont exhaustives et complètes mais en anglais. Pour paramétrer correctement l'imprimante, le meiux est de suivre toute la documentation et les étapes de overview.md et particulièrement celles générales de bed_level.md puis celle plus particulière au bltouch sans oublier celle de probe_calibrate Tu actives la rétraction firmware, why not mais es-tu sûr de l'avoir aussi activé dans ton trancheur ? Je joins mon fichier de macros si ça peut t'intéresser : Révélation # Adds print macros such as start print and end print. # in cura, as start gcode you can define "START_PRINT" and end gcode "END_PRINT" ###################################################################### # Start Print and End Print ###################################################################### # Replace the slicer's custom start and end g-code scripts with # START_PRINT and END_PRINT. [gcode_macro START_PRINT] variable_T_BED: 60 variable_T_EXTRUDER: 200 gcode: M117 Homing # Use absolute coordinates G90 # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=0.0 # Home the printer G28 # Use the bed mesh #G29 BED_MESH_PROFILE LOAD=cr10v2 # Move the nozzle near the bed G1 X15 Y20 Z5 F6000 M117 Waiting for temperature # Start bed heating and continue M140 S{T_BED} {% if printer.heater_bed.temperature < params.T_BED|float*0.85 %} M190 S{params.T_BED|float*0.85} # wait till 0.85 of bed temp is reached, then continue {% endif %} M140 S{T_BED} M104 S170 M190 S{T_BED} M109 S{T_EXTRUDER} # Prime line PURGE M117 Printing... [gcode_macro END_PRINT] gcode: M117 Done printing # move z up G91 G1 E-2 Z+10 F3000 # absolute xy G90 G1 X5 Y295 F2000 #disable hotend and heated bed M104 S0 M140 S0 # disable steppers M84 BED_MESH_CLEAR # prime the nozzle [gcode_macro PURGE] gcode: M117 Prime Line G92 E0 ;Reset Extruder # move z axis G1 Z2.0 F3000 ;Move Z Axis up # move to prime position G1 X2 Y30 Z0.28 F5000.0 ;Move to start position G1 X2 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line G1 X3 Y200.0 Z0.28 F5000.0 ;Move to side a little G1 X3 Y50 Z0.28 F1500.0 E30 ;Draw the second line G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up # G29 => (1) home all (2) get bed mesh (3) move nozzle to corner so it doesnt ooze on the bed while heating up. [gcode_macro G29] gcode: G28 BED_MESH_CALIBRATE G0 X0 Y0 Z10 F6000 BED_MESH_PROFILE save=cr10v2 # Park toolhead [gcode_macro M125] gcode: SAVE_GCODE_STATE NAME=parking M117 Parking toolhead G91 G1 Z10 F600 # move up 10 mm G90 G1 X150 Y0 F4000 # move to park position RESTORE_GCODE_STATE NAME=parking # LOW_TEMP_CHECK checks if there is a setpoint for the extruder. Untested! # - If this setpoint is reached, continue. # - If not, heat to setpoint. # - If no setpoint, heat to parameter T (default@200) [gcode_macro LOW_TEMP_CHECK T] default_parameter_T: 200 gcode: {% if printer.extruder.target != 0 %} # if there is a setpoint for extruder {% if printer.extruder.temperature < printer.extruder.target %} # if not reached, heat M118 Heating from {printer.extruder.temperature} to {printer.extruder.target}. M109 S{printer.extruder.target|float} {% endif %} {% else %} # if no setpoint for extruder {% if printer.extruder.target < T %} # heat to T. M118 No setpoint, heating to {T}. M109 S{T} {% endif %} {% endif %} # load filament [gcode_macro M701] gcode: SAVE_GCODE_STATE NAME=loading_filament M117 Loading Filament M83 G92 E0.0 LOW_TEMP_CHECK G1 E200 F6000 # length of bowden tube till cold-end (~430mm) Flying Xtruder with BMG 3:1 (200mm) G1 E10 F200 # some extra to prime the nozzle --> slower G92 E0.0 RESTORE_GCODE_STATE NAME=loading_filament # unload filament [gcode_macro M702] gcode: SAVE_GCODE_STATE NAME=unloading_filament M125 # park M117 Unloading Filament LOW_TEMP_CHECK G91 # set relative G1 E10 F100 G92 E0.0 G1 E-200 F6000 # the E is the length of the bowden tube (430mm) or for flying Xtruder with BMG 3:1 (200mm) G92 E0.0 RESTORE_GCODE_STATE NAME=unloading_filament # filament change [gcode_macro M600] gcode: M117 Filament Change M118 Filament Change SAVE_GCODE_STATE NAME=filament_change PAUSE LOW_TEMP_CHECK G91 # relative G1 E-1 F300 # retract 1 M125 # park M702 # unload M117 New filament M118 New filament COUNTDOWN TIME=25 MSG="Switch" M701 COUNTDOWN TIME=10 MSG="Clean" RESUME M117 Resuming M118 Resuming RESTORE_GCODE_STATE NAME=filament_change M117 Printing.. M118 Printing.. [gcode_macro COUNTDOWN] default_parameter_MSG: "Time: " default_parameter_TIME: 10 gcode: # countdown {% for s in range(TIME|int, 0, -1) %} # dwell 1 second G4 P1000 # echo M117 {params.MSG} {s}s M118 {params.MSG} {s}s {% endfor %} # M300 : Play tone. Beeper support, as commonly found on usual LCD # displays (i.e. RepRapDiscount 2004 Smart Controller, RepRapDiscount # 12864 Full Graphic). This defines a custom I/O pin and a custom # GCODE macro. Usage: # M300 [P<ms>] [S<Hz>] # P is the tone duration, S the tone frequency. # The frequency won't be pitch perfect. [output_pin BEEPER_pin] pin: ar37 # ar37 is the default RAMPS/MKS pin. pwm: True # A piezo beeper needs a PWM signal, a DC buzzer doesn't. value: 0 # Silent at power on, set to 1 if active low. shutdown_value: 0 # Disable at emergency shutdown (no PWM would be available anyway). cycle_time: 0.001 # PWM frequency : 0.001 = 1ms will give a base tone of 1kHz scale: 1000 # PWM parameter will be in the range of (0-1000 Hz). # Although not pitch perfect. [gcode_macro M300] default_parameter_S: 1000 # Use a default 1kHz tone if S is omitted. default_parameter_P: 100 # Use a 10ms duration is P is omitted. gcode: SET_PIN PIN=BEEPER_pin VALUE={S} G4 P{P} SET_PIN PIN=BEEPER_pin VALUE=0 Pour ton problème de décalage lors de l'impression, les paramètres de ta section «printer» ne me semblent pas en être la cause. Peut-être un problème de vitesse d'impression dans le trancheur ou matériel (tension courroie, roue d'entrainement, Vréf moteur, …). 1
Ellionas Posté(e) Janvier 9, 2021 Posté(e) Janvier 9, 2021 (modifié) Il y a 5 heures, fran6p a dit : @Ellionas Bizarre tout de même ton fichier Voici le fichier «monolithique» de ma CR10-V2 (manque les macros) : Tes valeurs dans Bltouch me semblent erronées à moins que ton BLT soit situé à droite de la buse à 115 et devant à 115. x et y_offset doivent correspondre au décalage de positions du pointeau du BLT avec la pointe de la buse en X et Y. Ton «bed_mesh» lui aussi ne me parait pas bon (x|y|z_offset) Les documentations du Github de Klipper sont exhaustives et complètes mais en anglais. Pour paramétrer correctement l'imprimante, le meiux est de suivre toute la documentation et les étapes de overview.md et particulièrement celles générales de bed_level.md puis celle plus particulière au bltouch sans oublier celle de probe_calibrate Tu actives la rétraction firmware, why not mais es-tu sûr de l'avoir aussi activé dans ton trancheur ? Je joins mon fichier de macros si ça peut t'intéresser : Révéler le texte masqué # Adds print macros such as start print and end print. # in cura, as start gcode you can define "START_PRINT" and end gcode "END_PRINT" ###################################################################### # Start Print and End Print ###################################################################### # Replace the slicer's custom start and end g-code scripts with # START_PRINT and END_PRINT. [gcode_macro START_PRINT] variable_T_BED: 60 variable_T_EXTRUDER: 200 gcode: M117 Homing # Use absolute coordinates G90 # Reset the G-Code Z offset (adjust Z offset if needed) SET_GCODE_OFFSET Z=0.0 # Home the printer G28 # Use the bed mesh #G29 BED_MESH_PROFILE LOAD=cr10v2 # Move the nozzle near the bed G1 X15 Y20 Z5 F6000 M117 Waiting for temperature # Start bed heating and continue M140 S{T_BED} {% if printer.heater_bed.temperature < params.T_BED|float*0.85 %} M190 S{params.T_BED|float*0.85} # wait till 0.85 of bed temp is reached, then continue {% endif %} M140 S{T_BED} M104 S170 M190 S{T_BED} M109 S{T_EXTRUDER} # Prime line PURGE M117 Printing... [gcode_macro END_PRINT] gcode: M117 Done printing # move z up G91 G1 E-2 Z+10 F3000 # absolute xy G90 G1 X5 Y295 F2000 #disable hotend and heated bed M104 S0 M140 S0 # disable steppers M84 BED_MESH_CLEAR # prime the nozzle [gcode_macro PURGE] gcode: M117 Prime Line G92 E0 ;Reset Extruder # move z axis G1 Z2.0 F3000 ;Move Z Axis up # move to prime position G1 X2 Y30 Z0.28 F5000.0 ;Move to start position G1 X2 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line G1 X3 Y200.0 Z0.28 F5000.0 ;Move to side a little G1 X3 Y50 Z0.28 F1500.0 E30 ;Draw the second line G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up # G29 => (1) home all (2) get bed mesh (3) move nozzle to corner so it doesnt ooze on the bed while heating up. [gcode_macro G29] gcode: G28 BED_MESH_CALIBRATE G0 X0 Y0 Z10 F6000 BED_MESH_PROFILE save=cr10v2 # Park toolhead [gcode_macro M125] gcode: SAVE_GCODE_STATE NAME=parking M117 Parking toolhead G91 G1 Z10 F600 # move up 10 mm G90 G1 X150 Y0 F4000 # move to park position RESTORE_GCODE_STATE NAME=parking # LOW_TEMP_CHECK checks if there is a setpoint for the extruder. Untested! # - If this setpoint is reached, continue. # - If not, heat to setpoint. # - If no setpoint, heat to parameter T (default@200) [gcode_macro LOW_TEMP_CHECK T] default_parameter_T: 200 gcode: {% if printer.extruder.target != 0 %} # if there is a setpoint for extruder {% if printer.extruder.temperature < printer.extruder.target %} # if not reached, heat M118 Heating from {printer.extruder.temperature} to {printer.extruder.target}. M109 S{printer.extruder.target|float} {% endif %} {% else %} # if no setpoint for extruder {% if printer.extruder.target < T %} # heat to T. M118 No setpoint, heating to {T}. M109 S{T} {% endif %} {% endif %} # load filament [gcode_macro M701] gcode: SAVE_GCODE_STATE NAME=loading_filament M117 Loading Filament M83 G92 E0.0 LOW_TEMP_CHECK G1 E200 F6000 # length of bowden tube till cold-end (~430mm) Flying Xtruder with BMG 3:1 (200mm) G1 E10 F200 # some extra to prime the nozzle --> slower G92 E0.0 RESTORE_GCODE_STATE NAME=loading_filament # unload filament [gcode_macro M702] gcode: SAVE_GCODE_STATE NAME=unloading_filament M125 # park M117 Unloading Filament LOW_TEMP_CHECK G91 # set relative G1 E10 F100 G92 E0.0 G1 E-200 F6000 # the E is the length of the bowden tube (430mm) or for flying Xtruder with BMG 3:1 (200mm) G92 E0.0 RESTORE_GCODE_STATE NAME=unloading_filament # filament change [gcode_macro M600] gcode: M117 Filament Change M118 Filament Change SAVE_GCODE_STATE NAME=filament_change PAUSE LOW_TEMP_CHECK G91 # relative G1 E-1 F300 # retract 1 M125 # park M702 # unload M117 New filament M118 New filament COUNTDOWN TIME=25 MSG="Switch" M701 COUNTDOWN TIME=10 MSG="Clean" RESUME M117 Resuming M118 Resuming RESTORE_GCODE_STATE NAME=filament_change M117 Printing.. M118 Printing.. [gcode_macro COUNTDOWN] default_parameter_MSG: "Time: " default_parameter_TIME: 10 gcode: # countdown {% for s in range(TIME|int, 0, -1) %} # dwell 1 second G4 P1000 # echo M117 {params.MSG} {s}s M118 {params.MSG} {s}s {% endfor %} # M300 : Play tone. Beeper support, as commonly found on usual LCD # displays (i.e. RepRapDiscount 2004 Smart Controller, RepRapDiscount # 12864 Full Graphic). This defines a custom I/O pin and a custom # GCODE macro. Usage: # M300 [P<ms>] [S<Hz>] # P is the tone duration, S the tone frequency. # The frequency won't be pitch perfect. [output_pin BEEPER_pin] pin: ar37 # ar37 is the default RAMPS/MKS pin. pwm: True # A piezo beeper needs a PWM signal, a DC buzzer doesn't. value: 0 # Silent at power on, set to 1 if active low. shutdown_value: 0 # Disable at emergency shutdown (no PWM would be available anyway). cycle_time: 0.001 # PWM frequency : 0.001 = 1ms will give a base tone of 1kHz scale: 1000 # PWM parameter will be in the range of (0-1000 Hz). # Although not pitch perfect. [gcode_macro M300] default_parameter_S: 1000 # Use a default 1kHz tone if S is omitted. default_parameter_P: 100 # Use a 10ms duration is P is omitted. gcode: SET_PIN PIN=BEEPER_pin VALUE={S} G4 P{P} SET_PIN PIN=BEEPER_pin VALUE=0 Pour ton problème de décalage lors de l'impression, les paramètres de ta section «printer» ne me semblent pas en être la cause. Peut-être un problème de vitesse d'impression dans le trancheur ou matériel (tension courroie, roue d'entrainement, Vréf moteur, …). Je me doute que les valeurs sont bizarres... Cependant, si j'en mets d'autre, je me retrouve soit avec un palpage qui s'effectue que sur une partie du bed, soit un palpage qui sort du bed... Je vais essayer de recommencer la procédure. EDIT 1 : Le bltouch.md c'est fait, et c'est good. On passe à la suite. EDIT 2 : x et y offset, c'est fait. Valeur : x = 43 et y = 6. EDIT 3 : Le z offset, c'est fait. Il m'indique : Recv: // Z position: -4.917 --> -4.907 <-- -4.897 Recv: ok [...] Send: accept Recv: // bltouch: z_offset: 4.791 Recv: // The SAVE_CONFIG command will update the printer config file Recv: // with the above and restart the printer. Recv: ok [...] Send: save_config Cependant, j'ai dû quand même modifier le position_min: de [stepper_z] à -5, sinon impossible de remonter assez avec testz. J'ai l'impression que pour mon imprimante, le z 0 est à +5-7 sur z... EDIT 5 : Bon, le bed_mesh et le palpage sont finis. Voici le code complet : # This file contains common pin mappings for the 2019 Creality # Ender 5. To use this config, the firmware should be compiled for the # AVR atmega1284p. # Note, a number of Melzi boards are shipped with a bootloader that # requires the following command to flash the board: # avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex # If the above command does not work and "make flash" does not work # then one may need to flash a bootloader to the board - see the # Klipper docs/Bootloaders.md file for more information. # See the example.cfg file for a description of available parameters. [stepper_x] step_pin: PD7 dir_pin: PC5 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC2 position_endstop: 0 position_max: 230 homing_speed: 30 [stepper_z] step_pin: PB3 dir_pin: !PB2 enable_pin: !PA5 step_distance: .0012500 # Use .001250 for Ender5 versions after late 2019 endstop_pin: probe:z_virtual_endstop ;position_endstop: 0.0 position_min: -5 position_max: 290 [stepper_y] step_pin: PC6 dir_pin: PC7 enable_pin: !PD6 step_distance: .012500 endstop_pin: ^PC3 position_endstop: 0 position_max: 230 homing_speed: 30 [extruder] max_extrude_only_distance: 100.0 step_pin: PB1 dir_pin: !PB0 enable_pin: !PD6 step_distance: 0.010526 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PD5 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA7 control: pid # tuned for stock hardware with 200 degree Celsius target pid_Kp: 21.527 pid_Ki: 1.063 pid_Kd: 108.982 min_temp: 0 max_temp: 285 [heater_bed] heater_pin: PD4 sensor_type: EPCOS 100K B57560G104F sensor_pin: PA6 control: pid # tuned for stock hardware with 50 degree Celsius target pid_Kp: 54.027 pid_Ki: 0.770 pid_Kd: 948.182 min_temp: 0 max_temp: 130 [fan] pin: PB4 [mcu] serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 [printer] kinematics: cartesian max_velocity: 300 max_accel: 3000 max_z_velocity: 5 max_z_accel: 100 [display] lcd_type: st7920 cs_pin: PA3 sclk_pin: PA1 sid_pin: PC1 encoder_pins: ^PD2, ^PD3 click_pin: ^!PC0 [gcode_arcs] resolution: 1.0 [bltouch] sensor_pin: ^PC4 control_pin: PA4 x_offset: 43 y_offset: 6 z_offset: 0 speed: 5 samples: 2 sample_retract_dist: 2 samples_result: average samples_tolerance: 0.100 samples_tolerance_retries: 1 [safe_z_home] home_xy_position: 115,115 speed: 50 z_hop: 5 z_hop_speed: 5 [bed_mesh] speed: 100 probe_count: 5,5 mesh_min: 43,6 mesh_max: 210,210 horizontal_move_z: 5 mesh_pps: 2,3 algorithm: bicubic bicubic_tension: 0.2 #fade_start: 1 #fade_end: 10 #fade_target: 0 horizontal_move_z: 5 [gcode_macro G29] gcode: G28 BED_MESH_CALIBRATE G0 X0 Y0 Z10 F6000 BED_MESH_PROFILE save=ender5 #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# #*# [bed_mesh default] #*# version = 1 #*# points = #*# -0.250625, -0.374375, -0.413125, -0.440625, -0.374375 #*# -0.155000, -0.265000, -0.323125, -0.280000, -0.243750 #*# -0.065000, -0.108750, -0.190000, -0.147500, -0.090000 #*# -0.014375, -0.084375, -0.073750, -0.009375, 0.081250 #*# 0.069375, 0.016875, 0.041875, 0.105625, 0.245000 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 3 #*# algo = bicubic #*# tension = 0.2 #*# min_x = 43.0 #*# max_x = 210.0 #*# min_y = 6.00000000004 #*# max_y = 210.0 #*# #*# [bed_mesh ender5] #*# version = 1 #*# points = #*# -0.250625, -0.374375, -0.413125, -0.440625, -0.374375 #*# -0.155000, -0.265000, -0.323125, -0.280000, -0.243750 #*# -0.065000, -0.108750, -0.190000, -0.147500, -0.090000 #*# -0.014375, -0.084375, -0.073750, -0.009375, 0.081250 #*# 0.069375, 0.016875, 0.041875, 0.105625, 0.245000 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 3 #*# algo = bicubic #*# tension = 0.2 #*# min_x = 43.0 #*# max_x = 210.0 #*# min_y = 6.00000000004 #*# max_y = 210.0 Modifié (le) Janvier 9, 2021 par Ellionas
fran6p Posté(e) Janvier 11, 2021 Auteur Posté(e) Janvier 11, 2021 Si ton Zoffset avait été enregistré, il serait passé dans la section en fin du fichier et dans la section Bltouch, sa ligne serait précédée de # or il est à 0. Tu n'aurais pas oublié une étape de la documentation ? Bizarre à nouveau que ton offset soit si grand (presque 5 mm). Comment est monté le BLT sur ton imprimante? Une photo? D'après la documentation de Antclabs, le Bltouch doit respecter un certain nombre de préconisations :
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