
V3DP
Membres-
Compteur de contenus
396 -
Inscrit(e) le
-
Dernière visite
Tout ce qui a été posté par V3DP
-
Bonjour à tous. Je sèche un peu sur un problème de qualité d'impression sur une de mes X Max 3. Il y a comme un banding, mais incliné, touchant plusieurs couches. La déformation est nettement perceptilble et pour la mise en peinture ça va être coton. C'est une impression en PLA (r PLA de FormFutura) en 100 microns. J'utilise ce matériau depuis de nombreuses années et c'est la première fois que j'ai ce phénomène. La machine a été tunée (tension des courroies, input shaping, shake n' tune) et a produit des pièces de haute qualité à 60 microns avec le matériau de fin Avril au 10 mai. Mécaniquement la machine a l'air en bon état et a produit des pièces pour ce modèle sans défauts, mais avec une autre bobine du même filament. C'est peut être un souci lié à la bobine en question avec en plus des difficultés d'extrusion (heatcreep et blocage de la tête au final). J'ai changé la hotend complète et refait le PID, vérifié les refroidissements .... Température plateau 60°C, hotend à 235°C pour une MVS de plus de 20 mm3/s, machine ouverte devant et au dessus. Je pense à de la vibration, vu que la piste température d'extrusion est surtout avec un banding bien horizontal. Merci pour vos conseils. J'oubliais, les vitesses sont toutes en dehors de la plage critique entre 70 et 110 m/min et les périmètres ne sont pas ralentis sur les overhangs. Slicing avec Orca 2.3
-
@pommeverte @fran6p Merci pour votre aide et les pistes. J'ai trouvé le problème.... donc on peut faire propre en utilisant les méthodes fournies par Klipper. En fait la valeur renvoyée par printer['output_pin partfan'].value est un décimal entre 0 et 1. Et la commande M106 attend une valeur entre 0 et 255, qui peut être décimale également. Donc en faisant une petite multiplication ça fonctionne. Voici les deux macros fonctionnelles [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} {% set partfan_speed = printer["output_pin partfan"].value %} {% set filterfan_speed = printer["output_pin filterfan"].value %} {% set sidefan_speed = printer["output_pin sidefan"].value %} ##### end of definitions ##### SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE={temp} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_restore VALUE={restore} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_partfan_speed VALUE={partfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_filterfan_speed VALUE={filterfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_sidefan_speed VALUE={sidefan_speed} # set a new idle_timeout value {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=True M104 S0 M106 S0 M106 P2 S0 M106 P3 S0 SFS_DISABLE PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description: Resume the actual running print rename_existing: RESUME_BASE variable_last_extruder_temp: 0 variable_last_extruder_restore: False variable_last_partfan_speed: 0 variable_last_filterfan_speed: 0 variable_last_sidefan_speed: 0 variable_restore_idle_timeout: 0 variable_idle_state: False gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" # no runout else True if not printer[client.runout_sensor].enabled # sensor is disabled else printer[client.runout_sensor].filament_detected %} # sensor status {% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder {% set do_resume = False %} {% set prompt_txt = [] %} ##### end of definitions ##### #### Printer comming from timeout idle state #### {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_restore %} # we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp) }' M109 S{last_extruder_temp} M106 S{last_partfan_speed * 255} M106 P2 S{last_sidefan_speed * 255} M106 P3 S{last_filterfan_speed * 255} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} #### Printer comming out of regular PAUSE state #### {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time {client.user_resume_macro|default("")} _CLIENT_EXTRUDE SFS_ENABLE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} ##### Generate User Information box in case of abort ##### {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} Merci encore pour l'aide
-
Merci. J'ai trouvé aussi ça pendant qu'on échangeait. Je n'ai plus de message d'erreur sur mes macros. Pour autant ça ne fonctionne pas lors du RESUME. Je pense à un problème de format de la valeur obtenue. Pas sur .... le sujet avance proprement pour l'instant, mais il reste ce dernier point à traiter
-
Ben non, car c'est la macro qui fonctionne pour FreeDi, donc avec des sections output_pin et non pas fan_generic...
-
Test fait, si on définit le ventilateur auxiliaire en fan_generic, cela ne fonctionne plus avec l'écran flashé FreeDi La macro M106 a bien été redéfinie pour gérer la notion d'outil (Px) pour fonctionner avec FreeDi (c'est bien décrit dans son GitHub) @pommeverte Merci pour l'idée. A défaut d'être élégante, j'ai peur que ça ne marche pas si simplement que ça : si on passe une variable (3 en fait) pour définir le dernier état des ventilateurs au niveau de la macro M106, comme la macro PAUSE va appeler la macro M106 pour arrêter les ventilos, les variables vont être remises à 0. Une idée serait de sauvegarder ces valeurs dans une nouvelle variable juste avant le changement d'état des ventilateurs par la macro PAUSE et passer ces variables à la macro RESUME. En fait ca reviendrait à faire ce que Klipper fait théoriquement nativement, sauf que la propriété native .value pour l'objet output_pin ne renvoie pas l'attendu. Si je ne trouve pas comment fonctionner avec la mécanique native de Klipper c'est ce que je ferais.
-
Merci @fran6p Oui, c'est plus simple dans ce cas, car la propriété speed est décrite. Un printer.fan.speed remonte la valeur Par contre je ne sais pas si cela continuerait à fonctionner avec l'écran d'origine flashé avec FreeDi. J'ai suivi le GitHub de Phil1988 pour la configuration du printer.cfg pour que ça fonctionne avec l'écran flashé
-
Bonjour à tous J'ai libéré mes X Max 3 et tourne sur Klipper 0.12 actuellement J'essaye d'améliorer mes macros PAUSE RESUME (déjà non standard) pour couper les ventilateurs lors de la mise en pause et les redémarrer à la vitesse définie lors de l'arrêt à la reprise. Donc passage par une variable définie lors de la macro PAUSE et récupération lors de la macro RESUME, comme c'est déjà le cas pour la température de la buse. Voici la macro PAUSE [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} {% set partfan_speed = printer.partfan if printer.partfan != '' else 0 %} {% set filterfan_speed = printer.filterfan if printer.filterfan != '' else 0 %} {% set sidefan_speed = printer.sidefan if printer.sidefan != '' else 0 %} ##### end of definitions ##### SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE={temp} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_restore VALUE={restore} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_partfan_speed VALUE={partfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_filterfan_speed VALUE={filterfan_speed} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_sidefan_speed VALUE={sidefan_speed} # set a new idle_timeout value {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=True M104 S0 M106 S0 M106 P2 S0 M106 P3 S0 SFS_DISABLE PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} Et la partie de la macro RESUME [gcode_macro RESUME] description: Resume the actual running print rename_existing: RESUME_BASE variable_last_extruder_temp: 0 variable_last_extruder_restore: False variable_last_partfan_speed: 0 variable_last_filterfan_speed: 0 variable_last_sidefan_speed: 0 variable_restore_idle_timeout: 0 variable_idle_state: False gcode: ##### get user parameters or use default ##### {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" # no runout else True if not printer[client.runout_sensor].enabled # sensor is disabled else printer[client.runout_sensor].filament_detected %} # sensor status {% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder {% set do_resume = False %} {% set prompt_txt = [] %} ##### end of definitions ##### #### Printer comming from timeout idle state #### {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_restore %} # we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp) }' M109 S{last_extruder_temp} M106 S{last_partfan_speed} M106 P2 S{last_sidefan_speed} M106 P3 S{last_filterfan_speed} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} En lançant la macro PAUSE, j'obtiens une erreur lors de l'évaluation de la variable partant_speed !! Unable to parse '' as a literal: invalid syntax (, line 0) Donc à priori c'est que la variable qui doit être un décimal n'est pas du bon format. Si je spécifie que c'est la valeur de objet set partfan_speed = printer.partfan.value, j'obtiens une erreur bloquante lors du démarrage de Klipper !! Error evaluating 'gcode_macro PAUSE:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'partfan' Pourtant dans le guide de référence des états output_pin¶ Les informations suivantes sont disponibles dans les objets output_pin nom_de_la_sortie : value : la "valeur" de la broche, telle que définie par une commande SET_PIN. Et le printer.cfg définit les ventilateurs de la X Max 3 comme des output_pin et non pas des fan. J'ai essayé avec la syntaxe complète : printer[printer.partfan].value sans succès. Impossible de récupérer la valeur numérique de la sortie du ventilateur. Si quelqu'un a une idée ....
-
J'ai fait la même chose il y a assez longtemps, même si je n'utilise pas très souvent les ventilateurs de coté (beaucoup de PETG ou d'ABS / ASA) j'ai regardé il y a peu lorsque j'ai libéré ma plus vieille X Max, pas de soucis. Je pense aussi que le problème vient du serrage des cosses. Effectivement des Wago seraient une bonne option pour reprendre l'alimentation, avec des câbles mono brins. Avec du multibrins il faut étamer les câbles avant, tout comme pour monter des cosses si on veut être sur du sertissage. Autre option, aller rechercher le 24V directement sur l'alimentation et bien serrer les cosses. Pour le MOSFET, j'ai pris la même référénce pour monter mes ventialeurs additionnels.
-
Perso j'ai mis un blower coté gauche de mes X Max pour palier le déséquilibre qui se voyait plateau chargé. J'ai pris un ventilo équivalent sur Ali... pas cher et j'en ai un de rechange. De fait je ne tourne généralement qu'à 50% pour du PLA ou du TPU uniquement. Bon elles ont une utilisation pro, mais beaucoup d'ABS, ASA ou de PETG, donc finalement ils ne servent pas tant que cela. Je suis preneur par contre d'une bonne réf pour le ventilateur de pièce de la tête. J'envisage de virer les capots de celle ci pour gagner en température sur le MCU, TMC (avec un ventilateur plus puissant et mieux positionné) et ne plus avoir le ventilateur qui souffle (à défaut de vraiment refroidir) sur l'extrudeur modifié BondTech.
-
Je viens de libérer ma deuxième X Max 3. Pas sans mal et pas tout à fait comme prévu. J'avais prévu de passer par un clone de l'eMMC de la première, de flasher les MCU, de flasher l'écran avec la procédure FreeDi et de mettre à jour le printer.cfg (adresses des MCU, paramètres de PiD). Au boot après mise en place de l'eMMC, l'écran a été flashé avec le FW FreeDi et la machine est restée plantée sans accès SSH ou web. A voir il y a un souci avec l'écran dans ce cas et certains services (ceux de FreeDi ?) ne démarrent pas et bloquent le boot. L'écran boote et reste en attente de connexion à Klipper. Donc reconstruction de l'image suivant le tutoriel de @fran6p et reprise des fichiers de configuration de la première machine après avoir mis à jour le printer.cfg avec les paramètres de la deuxième machine. Pour FreeDi, pas de soucis, il a reflashé l'écran malgré la première tentative. Pour le flashage de la carte mère, j'ai essayé HID Flash, sans plus de succès que sur la première machine. Donc passage par la case microSD. Pour le flashage de la tête, à nouveau des soucis avec Katapult, impossible de flasher la carte avec le bootloader, malgré de nombreux essais (avec arrêt de Klipper, sans, passage en BootSel avec un boot - reset, ....). Donc flashage en direct de la tête sans bootloader et plus de soucis. Un reboot pour la reconnection de l'écran (qui veut bien se faire une fois toutes les MCU à jour), puis les calibrations du Z offset, Input shaping et mesh bed leveling. Elle est à nouveau prête à imprimer ! Le flashage de Katapult est toujours aussi aléatoire. Faut-il effacer la mémoire du RP2040 avant de flasher le bootloader ?
-
@fran6p J'ai reçu la carte mère Qidi pour X Max 3 : une X_6 V1.0. Effectivement les drivers sont soudés Le bon coté dans mon cas, c'est que le changement est assez rapide : remplacement physique, changement de l'eMMC et flashage des MCU et c'est reparti. Bref dans la demie journée c'est reparti.
-
Vu que la résistance est englobée dans la céramique entourée par la chaussette. Après stabilisation à 325°C, la face interne de la chaussette va être très proche de 325°C.
-
Les chaussettes silicone, c'est très moyen à haute température. D'habitude elles durcissent et craquent. Elles ont tendance à attirer toutes les saletés proche de la buse et faut changer régulièrement les chaussettes. Ce qui fond ce n'est pas des résidus de ton filament qui se sont agglutinés au bord de la chaussette ?
-
Quelle marque le filament qui était mal bobiné ? Normalement du PETG à 60°C ne va pas se déformer lors du séchage, mais à 65°C ca commence. Si le sécheur n'est pas précis au niveau température et si la bobine n'était pas parfaite, ça aggrave le problème surtout avec 24h de séchage. Généralement on sèche 6 ou 8 heures dans un premier temps, et seulement si ca ne suffit pas on recommence un nouveau cycle.
-
Ils veulent voir si la hauteur de la sonde par rapport à la hauteur de la buse est bonne. Les capteurs ont une limite de detection et si la distance de la pièce à capter est trop importante, ils ne se déclenchent pas. Si ta buse est trop basse par rapport au capteur, elle va toucher le plateau avant que le capteur ne soit capable de le détecter. C'est possible si la buse n'est pas correctement vissée dans la hotend. Par exemple si il reste du plastique dans les filetages ou en bout de la partie chauffante. Bon souvent ça fuit dans ces cas là. @Jc2101 quand je parlais des fiches des connecteurs, il s'agit des petites fiches métalliques qui font contact. Et passer un coup de nettoyant contact ou alcool isopropylique ne mange pas de pain et permettrait de réduire les hypothèses. ET de l'extrudeur pour la partie coupe filament à voir. Il faudrait demander @pjtlivjy qui a bien analysé sa Plus 4 en pension chez lui.
-
Ca y est ! Tout marche comme je veux maintenant ! Les dernières macros qui ne marchaient pas bien sont revues : load et unload gèrent la mise en chauffe et l'arrêt ou la remise à la température initiale pause et resume gèrent l'arrêt et la remise en chauffe de la hotend Je revois le script d'install de HID Flasher pour éviter d'ouvrir le compartiment de la carte pour flasher et j'essaye sur ma première X Max 3 qui n'est pas encore libérée. Si ça marche, tout pourra être mis à jour (avec la tête sous Katapult) depuis l'ordinateur.
-
@Jc2101 Sur cette photo, on dirait que le connecteur n'est pas enfoncé à fond, alors que sur les autres, ça a l'air bon. Tu as regardé si toutes les fiches du connecteur sont bien emboitées dans le boitier plastique du connecteur ? Des fois il arrive que la fiche ne soit pas enfoncée à fond et quand on branche le connecteur, le contact n'est pas bon. Pareil tous les cables tiennent bien sur les fiches du connecteur ? Parfois un petit coup de KF Contact ou équivalent dans les deux prises permet de rétablir le contact si il y avait eu de l'huile ou de la graisse. Une seringue avec le l'alcool isopropylique à 99% marche aussi.
-
Bonjour à tous D'habitude je suis plutôt sur le forum Qidi, mais pour une fois j'ai des soucis avec une Ultimaker 3 Je cherche à remplacer la caméra qui m'a lâché par une caméra standard chinoise J'ai acheté un module de camera HD OV2659 2MP 120° usb avec une résolution de 1600 * 1200, comme celle d'origine https://fr.aliexpress.com/item/1005007849148293.html?spm=a2g0o.order_list.order_list_main.5.4b245e5bfYBoof&gatewayAdapt=glo2fra Mêmes dimensions, juste les trous de fixation qui ne sont pas tous exactement à la même place. Bon un peu de scan et de CAO pour modifier le couvercle d'origine et l'imprimer La raison, c'est qu'Ultimaker vend cher une camera complète pour réparer une vielle machine. J'ai eu des erreurs de chargement dans la log, le mjpeg-streamer ne chargeait pas. J'ai changé la résolution dans le mjpeg-streamer service de SVGA à SXGA. Maintenant le service est up and running. Mais ca ne marche toujours pas, le driver gpio_pca953x est rechargé plusieurs fois lors du boot, sans succès. Je pense que le module CMOS OV2659 a besoin d'un driver différent. Quel driver utiliser ? Comment le configurer ? Autres pistes ? Merci d'avance.
-
@Jc2101 Si la hotend chauffe, c'est qu'à priori le cable qui alimente et gère les données pour la carte de la tête est bien branché et fonctionne. Le problème est peut-être sur la carte de la tête en elle même, mais ne touche pas toutes les sorties.
-
@Jc2101 Question bête, mais tu as vérifié que les ventilos de la tête et le chauffage de la buse fonctionnent. Histoire de vérifier qu'il n'y a pas un souci dans le cable qui va de la carte mère à la tête ? Par exemple la prise mal branchée coté tête. C'est peut-être un défaut sur cette carte.
-
@Strrato Dans ce cas, il faut déposer l'ensemble extrudeur + hotend et ensuite séparer la hotend. Il ne faut pas dévisser le ventilateur du radiateur de la hotend. Il y a les 2 vis fléchées qui tiennent l'extrudeur
-
@fran6p bon courage pour demain ! J'aime bien bidouiller, mais la réalité est que le temps disponible est rare. Donc je suis pragmatique.Dans mon cas à 40€, ca ne vaut pas les heures de passées pour faire le changement. Je vérifierais pour les drivers en recevant la carte.
-
@fran6p J'ai essayé de flasher le MCU de la carte mère avec l'utilitaire HID-Flash de FreeDi / Qidi. Donc compilation du FW comme sur ton GitHub, avec un offset du boot loader de 32 ko, re-nommage du fichier compilé en X_4.bin. Reprise manuelle du script d'installation de FreeDi pour la partie en question mks@mkspi:~$ sudo cp /home/mks/FreeDi/helpers/AutoFlasher.service /etc/systemd/system/AutoFlasher.service [sudo] Mot de passe de mks : mks@mkspi:~$ sudo sed -i "s/{{USER}}/mks/g" /etc/systemd/system/AutoFlasher.service mks@mkspi:~$ chmod +x /home/$USER_NAME/FreeDi/helpers/klipper_auto_flasher.sh chmod: impossible d'accéder à '/home//FreeDi/helpers/klipper_auto_flasher.sh': Aucun fichier ou dossier de ce type mks@mkspi:~$ chmod +x /home/mks/FreeDi/helpers/klipper_auto_flasher.sh mks@mkspi:~$ sudo systemctl enable AutoFlasher.service mks@mkspi:~$ chmod +x /home/mks/FreeDi/mainboard_and_toolhead_firmwares/hid-flash mks@mkspi:~$ sudo systemctl daemon-reload mks@mkspi:~$ sudo service klipper stop Ensuite flashage via HiD-flash mks@mkspi:~$ /home/mks/FreeDi/mainboard_and_toolhead_firmwares/hid-flash /home/mks/klipper/out/X_4.bin ttyS0 La connexion se fait bien sur le device ttyS0, mais on part en timeout, le STM32 n'est pas prêt à recevoir +-----------------------------------------------------------------------+ | HID-Flash v2.2.1 - STM32 HID Bootloader Flash Tool | | (c) 2018 - Bruno Freitas http://www.brunofreitas.com | | (c) 2018-2019 - Vassilis Serasidis https://www.serasidis.gr | | Customized for STM32duino ecosystem https://www.stm32duino.com | +-----------------------------------------------------------------------+ > Trying to open the [ttyS0]... > Open the [ttyS0] successfully > Sending <reset pages> command... rcv 2 data:?? rcv 2 data:$ rcv 2 data: rcv 2 data: rcv 2 data:? rcv 2 data: rcv 2 data:1 rcv 2 data:m$ rcv 2 data: > Error, no ok receive, timeout and exit!!! > Finish Le service AutoFlasher est bien actif. Est-ce que le Bootloader HID n'a pas été supprimé lors de l'upgrade de Klipper via le flashage par la carte micro SD ? Est-ce que le STM32 devrait être mis en mode DFU ????
-
Je n'ai pas de Q1 Pro, juste un client qui en a une. Sur mes X Max 3, dévisser les 2 vis sur l'extrudeur suffit. C'est peut-être un des câbles qui empêchent de sortir la hotend par le bas ?