dualite2 Posté(e) Novembre 3 Posté(e) Novembre 3 Bonjour, J'ai passé sous Klipper une mini rambo 1.3a (ancienne board d'une Prusa Mk2). Ci-dessous un petit log de cette "aventure", en espérant que les liens puissent aider d'autres personnes à faire les même manipulations. Si vous souhaitez passer l'historique, sautez directement le paragraphe qui suit. La migration du firmware Prusa vers Klipper a été complexe pour les raisons suivantes : les connecteurs du lit ont "brulé" (le lit consommant 10A c'est un soucis fréquent avec ces connecteurs Molex) ils ont donc été remplacé par des connecteurs vissés l'existence d'une configuration générique dans Klipper correspondant à cette carte a permis de rapidement pousser un firmware "fonctionnel" dessus le firmware en question a fonctionné le temps que j'effectue quelques modifications via Mainsail avant de débrancher la carte et de la rebrancher dans son boitier. A partir de là, ça s'est gâté : une fois rebranché, plus aucune LED ne s'est allumées. Après vérification des tensions en entrée (12V), des fusibles, une vérification visuelle et à la caméra thermique aucune piste sur le pourquoi par méconnaissance j'ai estimé que le fonctionnement des LED sur la carte été lié au firmware donc ... retour sur le bureau pour pousser à nouveau le firmware la tentative en question c'est soldé par un échec avec le fameux message "timeout" de avrdude, en gros impossible de reflasher Klipper Plus ou moins convaincu que j'ai détruit le bootloader j'en déduis qu'il faut reprogrammer l'Atmega 2560 par le connecteur ICSP Après recherche j'ai 2 options : acheter le programmateur Atmel ICE à 100€ OU utiliser une autre carte Arduino en temps que programmateur. Donc je décide de claquer 100€ (non je déconne! ) Je commande un clone compatible Arduino Uno (15€) que je câble sur le connecteur en question et j'effectue la manipulation. Pour le coup tout se passe bien, les LED de la carte sont allumées et le bootloader est réinstallé. Je débranche tout ce mic mac pour repasser à l'upload du firmware Klipper et là, rebelote erreur AvrDude "timeout" Et d'un coup je dé-clique les LED ne sont plus allumées pendant cette tentative... le connecteur ICSP à 2 pattes d'alimentation 5V/0... Se pourrait-il que le régulateur "5V" de la board soit HS et que l'Uno ait alimenté le microprocesseur 2560 ? Donc je rebranche uniquement ces 2 pin en collant du 5v dessus et cette fois les LED sont allumées, le flash de Klipper est ok En bref ce n'était pas un soucis de firmware ou de bootloader. Reste à savoir comment le régulateur s'est suicidé pendant le déplacement de la carte (oui mais en fait non on s'en fou!). Donc... je bidouille une alimentation 5V en découpant un vieux câble USB pourvu d'une connectique disparu en dépiautant le connecteur et je serti ça à l'autre bout des fils branché sur l'ICSP. J'ajoute quelque section de gaine thermodurcissable que je fume chauffe pour renforcer l'ensemble et ... franchement Voilà! Si vous êtes arrivé ici ben... vous avez plus de courage que moi, à qui il a fallu 1 semaine pour en venir là (et une demi journée de plus pour écrire ce post ) Le soucis du jour est que le thermistor du lit indique 49°C, dans une pièce où il fait 21.5°C. Voilà une petite liste de ce que j'ai essayé/vérifié : test de 3 thermistor différents sur 3 ports différent qui indique des température similaire (à 0.1°C prés) vérification du type de transistor fournis avec ce type de lit dans la configuration du firmware Marlin de Prusa (lit mk42 et mk52) un EPCOS 100K. test de tous les types de thermistor possible dans Klipper sans obtenir de valeur raisonnablement proche (+/- 10°C) de la température ambiante mesure de la résistance interne du thermistor qui fait 115k OHM à 21.5°C ; la fiche technique du EPCOS 100K 8304 (page 5 dernière colonne) semble confirmer que c'est la bonne valeur vérification des résistances "pullup" de chacun des connecteurs sur la carte faisait bien 4.7k Ohm J'espère (en croisant sérieusement les doigts) que j'ai fait l'impasse sur un gros détail de configuration qui explique TOUT . Bref, n'hésitez pas à participer à l'écriture de la suite .
coucou Posté(e) Novembre 6 Posté(e) Novembre 6 Je n'ai absolument pas les compétences pour t'aider mais quelques termes me font penser à ce sujet extrêment bien documenté
dualite2 Posté(e) Novembre 6 Auteur Posté(e) Novembre 6 (modifié) Merci pour la piste. Malheureusement ça ne devrait pas pouvoir m'aider. Cela dit c'est très impressionnant comme projet. Modifié (le) Novembre 7 par dualite2
Badid Posté(e) Novembre 7 Posté(e) Novembre 7 (modifié) Si tu as croisé les entrées et les sondes avec le même résultat, si tu as contrôlé les résistances ... Tu peux écarter le problème hardware. C'est donc au niveau du firmware ... Les sondes sont reconnues mais n'ont pas les bonnes valeurs ... problème de référence ... As tu un "Pull-Up" (^) sur ton entrée ? Modifié (le) Novembre 7 par Badid
dualite2 Posté(e) Novembre 7 Auteur Posté(e) Novembre 7 (modifié) Non et le concept de Pull-up / Pull-Down m'était totalement étranger jusqu’à ce que tu en parles donc merci d'attirer mon attention sur ce point . J'ai regardé le schéma suivant et les 3 thermistors (colonne de droite THERM0/1/2) sont déjà positionnés entre le VCC et la masse. Dés lors ai-je raison de penser que spécifier ce Pull-Up manuellement n'est pas utile ? D'un autre côté, le 5V (VCC) sur le schéma est supposé être fourni par le régulateur intégré 5v HS . Je vais mesurer tout cela au multimètre, pour vérifier ce point. Peut-être que forcer un Pull-Up est nécessaire à cause de ce défaut (histoire de fournir notre VCC). j'ai vérifié j'ai bien 4.74V donc l'alim HS n'a pas d'impact . Modifié (le) Novembre 7 par dualite2
Badid Posté(e) Novembre 7 Posté(e) Novembre 7 (modifié) Il y a 3 heures, dualite2 a dit : Dés lors ai-je raison de penser que spécifier ce Pull-Up manuellement n'est pas utile ? C'est l'idée. Mais si dans ta config klipper tu n'as pas de Pull-Up sur ton "sensor_pin:" (ce qui semble être le cas) ... ??? Modifié (le) Novembre 7 par Badid
dualite2 Posté(e) Novembre 7 Auteur Posté(e) Novembre 7 Ce que j'utilise pour le heater_bed actuellement : [heater_bed] heater_pin: PG5 sensor_type: EPCOS 100K B57560G104F sensor_pin: PF2 ... Si je remplace par cela : sensor_pin: ^PF2 -> Invalid pin description '^PF2' Cela dit... je ne suis pas sûr que l'on puisse spécifier PullUp sur un pin du DAC (le pin mapping du 2560) J'ai certain ^ OU ! dans la conf mais uniquement sur des pins endstop / stepper qui sauf erreur sont des pins digital. Une autre piste est la compensation du décalage par la valeur de la résistance de PullUp. Si pullup_resistor: 4700 n'a pas d'impact (défaut), 15000 me permet de retrouver mes 20°C ambiant . Mais c'est probablement un hack dégueux d'autant que rien ne prouve que le décalage va rester fixe avec l'augmentation de la température du lit. Il faut que je vérifie cela avec une caméra thermique lorsque je chauffe le lit.
Badid Posté(e) Novembre 7 Posté(e) Novembre 7 (modifié) Oupss, au temps pour moi ... cela paraissait tellement évident ... une histoire de résistance ... Je ne sais pas si toucher au pullup_resistor est une pratique courante ... ? Et, pourquoi une autre valeur que 4700 (cf schema) ? Je suis curieux de connaitre l'explication Modifié (le) Novembre 7 par Badid
dualite2 Posté(e) vendredi à 19:08 Auteur Posté(e) vendredi à 19:08 Normalement, je devrais juste indiquer la valeur "réelle" de la résistance (schémas et mesures au multimètre confirment 4.7k Ohm). Mais ... j'ai toujours mon décalage de température que je ne peux pas expliquer . Mon hypothèse est la suivante : La thermistor est utilisé dans un diviseur de tension puisque l'on convertit ensuite la tension à ses bornes en numérique pour estimer sa résistance. Comme je ne peux pas modifier la valeur de la thermistance pour "décaler" la température, je devrais pouvoir modifier l'autre "côté" de l'équation pour corriger la dérive. Un exemple de montage type qui illustre le fonctionnement ET la relation entre les 2 résistances. C'est rapide, c'est sale et c'est probablement loin d'être idéal mais... ca reste possible et ... je suis sérieusement à court d'idées. Je continue à penser que j'ai dû faire une bêtise . Mais plus ça va et... tout est vérifié donc je ne vois plus trop ce qui peut influer sur le résultat. Je suis en train de repenser à la citation suivante : "Si vous éliminez l'impossible, tout ce qui reste, aussi improbable soit-il, doit être la vérité." Bref... à part refaire le même montage sans utiliser le 2560 de la mini-rambo et comparer tous les résultats pour trouver quelle est la cause je ne vois pas .
Badid Posté(e) samedi à 12:02 Posté(e) samedi à 12:02 je ne suis plus à une connerie près ... Et si, en fin de compte, le problème était hardware ... ? Les résistances sont bonnes, mais quid de la tension ? Ton 5V en particulier (qui est à 4.74 ...) ... ? Juste une idée en vrac ...
dualite2 Posté(e) samedi à 14:38 Auteur Posté(e) samedi à 14:38 Yep, je pense de plus en plus que c'est hardware au final. Hier j'ai fait quelques tests de chauffe du lit. Sans modifier la valeur pullup_resistor voici les températures moyennes obtenues sur le lit, une fois stabilisé : Consigne 50°C => 41,5°C réels obtenus Consigne 80°C => 83,5°C réels obtenus Consigne 100°C => 104°C réels obtenus En bref, c'est correct dès lors que l'on est au-dessus de 60°C (et non pas de TPU ni PLA ). Avec le pullup_resistor à 14500 pour recaler à 20°C, on obtient 76,5°C avec une consigne de 50°C. Donc oui, recaler le début via le pullup_resistor est une très très mauvaise idée . Bref... le décalage est uniquement au début... Donc il faut comme tu dis que je vérifie les 4.74V, cette petite différence est peut-être la source de mes tracas.
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