BO105cbs Posté(e) Septembre 7, 2024 Posté(e) Septembre 7, 2024 Bonjour à tous. Utilisateur d'une Creality Ender 3-S1 fonctionnant sous Marlin 2.0.8, j'ai une magnifique barre sur l'écran m'indiquant la progression de l'impression et une autre ligne soit disant m'informant de la durée totale de cette dernière et du temps restant. Alors je ne suis pas un AS du Marlin, mais toutefois je sais le compiler; le 'bricoler" ayant paramétré mon imprimante à ma "main" et voilà que je me focalise sur ce temps d'impression, dont les ordres GCode gérant ces fonctions sont si je m'abuse les M31, 73, 75, 76, 77. L'étude du GCode d'un fichier STL ordinaire, fait apparaître des lignes informatives à cause du ";" TIME suivie d'une valeur en seconde identique à ce que Cura m'a donné, puis presque tout à la fin du même fichier TIME_ELAPSED suivie d'une valeur identique à la première. Et j'ai bien du mal à trouver comment Marlin lit le STL et en tire les durées d'impression qu'il peut joyeusement afficher sur l'écran de la machine. Car j'aimerai que ces affichages soient en relations avec les durées affichées dans Cura. Merci d'avances pour vos explications où ruses et astuces à ce sujet
PPAC Posté(e) Septembre 7, 2024 Posté(e) Septembre 7, 2024 Salutation ! Je dirais que normalement le firmware marlin ne perd pas de temps et de ressources à lire les commentaires. ( Par exemple si l'on recherche la chaine "TIME_ELAPSED" dans le code source d'un firmware marlin https://github.com/search?q=repo%3AMarlinFirmware%2FMarlin TIME_ELAPSED&type=code rien ne laisse penser qu'il soit utilisé dans les parties qui "parse" (lecture et interprétation) les lignes d'instructions d'un fichier d'impression) Donc il ne doit lire qu'éventuellement le "; TIME=". Mais avec un écran ayant son propre microcontrôleur ou sur OctoPrint ou un Klipper là éventuellement l'ensemble des commentaires peuvent être traités, car tourner sur un truc plus puissant en mémoire et vitesse de calculs. Et peuvent avoir des librairies pour mouliner tout cela, car non contraint par une taille mémoire d'un microcontrôleur ayant peu de ressources et devant répondre sans trop de délais pour contrôler les mouvements de manière coordonnée et sans micro-pauses) Il y a 5 heures, BO105cbs a dit : Car j'aimerai que ces affichages soient en relations avec les durées affichées dans Cura. Il me semble qu'il y a un plugin et/ou un script de post-traitement pour cela dans Ultimaker Cura ( qui en fait, insert des M117 avec comme message le pourcentage d'avancement tout le long de l'impression ... (Mais donc si on change le "feedrate percentage" M220: Set Feedrate Percentage forcement, ils seront faux s'ils affichent des durées, car ses messages de durées seront stockés en dure dans le fichier g-code... )
BO105cbs Posté(e) Septembre 7, 2024 Auteur Posté(e) Septembre 7, 2024 il y a 56 minutes, PPAC a dit : Il me semble qu'il y a un plugin et/ou un script de post-traitement pour cela dans Ultimaker Cura Vi. Justement il y a une impression qui tourne sur la S1. Juste avant j'ai faire un fichier gcode tout simple pour vérifier le comportement de ce script. Alors à la fin de chaque étape, il place à la fin de cette dernière un M177 affichant une durée. Comment il fait je ne sait pas mais le temps qui s'affiche est la durée restante d'impression. pour les étapes qui suivent. De série, sur l'écran de la S1, il y a deux indications de temps d'impression le PRINTING TIME et le REMAIN, Soit la durée d'impression depuis le début pour la pièce et le temps restant. Là le fameux script affiche dans la bande réservée au message. Oui ma machine me parle, enfin elle m'écrit , bref l'objet à 71 étapes, tout au début donc l'étape 1/71 le temps affiché qui est donc le global est le même que celui que Cura m'a fourni. A un moment, mon impression est 33% d'avance sur le baregraph Le TIME est de 1 heure et le REMAIN est de 2 heures Le script me dit : (11/71) 2h41mn et des secondes... Ce que j'aimerai, souhaiterai, comme un voeux pieu, sans que cela soit la conquête du Graal c'est ce que me donne le script actuel, Marlin me le fournisse et au bon endroit. J'ai cherché sur le web, comment le M75 fonctionne, j'ai trouvé ça et là,; qu'il débuterai avec la chauffe de quoi ? Mystère. Bref le M75-M78.cpp fait référence à un print_job_timer que je ne trouve nulle part ailleurs....
pommeverte Posté(e) Septembre 10, 2024 Posté(e) Septembre 10, 2024 Salut, De ce que je comprends des sources, le calcul serait donné en partie dans le fichier Marlin\src\sd\cardreader.h #if HAS_PRINT_PROGRESS_PERMYRIAD static uint16_t permyriadDone() { if (flag.sdprintdone) return 10000; if (isFileOpen() && filesize) return sdpos / ((filesize + 9999) / 10000); return 0; } #endif static uint8_t percentDone() { if (flag.sdprintdone) return 100; if (isFileOpen() && filesize) return sdpos / ((filesize + 99) / 100); return 0; } appelé dans le fichier Marlin\src\lcd\marlinui.cpp MarlinUI::progress_t MarlinUI::_get_progress() { return ( TERN0(SET_PROGRESS_PERCENT, (progress_override & PROGRESS_MASK)) #if ENABLED(SDSUPPORT) ?: TERN(HAS_PRINT_PROGRESS_PERMYRIAD, card.permyriadDone(), card.percentDone()) #endif ); } avec le calcul du temps restant placé dans Marlin\src\lcd\marlinui.h static uint32_t _calculated_remaining_time() { const duration_t elapsed = print_job_timer.duration(); const progress_t progress = _get_progress(); return progress ? elapsed.value * (100 * (PROGRESS_SCALE) - progress) / progress : 0; } L'estimation du temps d'impression se ferait donc à la serpe, d'après la taille du fichier Gcode pondéré par le temps écoulé 1
BO105cbs Posté(e) Septembre 12, 2024 Auteur Posté(e) Septembre 12, 2024 Merci de ces informations @pommeverte, mais cela ne concerne t'il pas la fameuse barre de progrès. J'avoue que je cherche toujours c'est assez long, du fait surtout que je connais pas tellement la structure du programme Marlin et de ses sous modules avec leur classement.
pommeverte Posté(e) Septembre 12, 2024 Posté(e) Septembre 12, 2024 (modifié) Salut, Il y a 9 heures, BO105cbs a dit : cela ne concerne t'il pas la fameuse barre de progrès oui, c'est utilisé pour gérer l'affichage de la barre de progression mais pas que Rappel: le temps total = 100 x elapsed.value (=temps écoulé) / progress (=pourcentage effectué) Modifié (le) Septembre 12, 2024 par pommeverte
BO105cbs Posté(e) Septembre 13, 2024 Auteur Posté(e) Septembre 13, 2024 Il y a 11 heures, pommeverte a dit : oui, c'est utilisé pour gérer l'affichage de la barre de progression mais pas que Mouaip ! J'ai aussi chercher hier un peu partout dans le Marlin, dans ceux de ta réponse y compris aussi dans les gCode concerné par le "Temps" sans vraiment trouver la logique, sûrement à cause d'un manque de connaissance de ma part. Pourtant je fais des efforts (pas violent bien sur ) pour comprendre le langage et ses méandres.... Toujours est il que j'utilise le plugin de Cura, qui fonctionne parfaitement, enfin largement plus précis, étonné que le Marlin ne puisse en faire autant, ou à minima aurait une fonctionnalité permettant de récupérer cette information (en cas d'existence, car je ne sais pas si tous les "slicers" offrent la même chose) le Marlin ne "tranchants pas.... Maintenant, je cherche dans le système complexe des menus, comment supprimer l'affichage des informations enfin plutôt de la ligne fournies par Marlin. Bon évidemment, sans te commander si tu savais ou cela se trouve, se situe, etc.... j'ai bien des idées à force mais forcément les bonnes, Enfin merci de tes réponses.
pommeverte Posté(e) Septembre 13, 2024 Posté(e) Septembre 13, 2024 Salut, Il y a 4 heures, BO105cbs a dit : Maintenant, je cherche dans le système complexe des menus, comment supprimer l'affichage des informations enfin plutôt de la ligne fournies par Marlin je n'ai pas très bien compris la question. D'autant plus que tu dis: Il y a 4 heures, BO105cbs a dit : Toujours est il que j'utilise le plugin de Cura, qui fonctionne parfaitement Est-ce que tu as une photo de l'écran pour comprendre de quelles informations tu parles? De quelle version de Marlin es-tu parti? Marlin officiel ou mriscoc? Est-ce que tu peux fournir tes fichiers configuration.h et configuration_adv.h?
fran6p Posté(e) Septembre 13, 2024 Posté(e) Septembre 13, 2024 Les trancheurs ne peuvent fournir que des temps approximatifs (une fois l'impression débutée, donc une fois les chauffes réalisées), plus ou moins exacts quand les informations d'accélérations, vitesses sont identiques entre trancheur et firmware. Le seul réel moyen d'obtenir la durée d'impression proche de la réalité est l'analyse a posteriori du fichier gcode tranché. Les utilisateurs de Klipper peuvent ajouter un « greffon » qui se charge d'obtenir ces durées : klipper estimator (nécessite tout de même un paramétrage pour qu'il soit vraiment efficace). Pour Marlin, que je n'utilise quasiment plus, je ne sais s'il existe un projet semblable. 1
BO105cbs Posté(e) Septembre 13, 2024 Auteur Posté(e) Septembre 13, 2024 (modifié) @pommeverte Bonjour, Oui j'utilise la base MRisCoc, arrangé à un peu à ma sauce (J'ai désactivé pas mal de bricoles et commentaires, y compris dans son /Proui) , concernant l'écran les affichages sont ceux d'origine, avec l'apparation de nombreuses autres lignes dans les menus en fait ce que Marlin offre et que Creality bride. Bref le firmware change deux choses enfin trois pour l'écran les icônes plus sympa, la police de caractères plus lisible à mon sens et dans une ligne ou les M117 s'affichent normalement, il a placé des sortes de raccourcis, que j'ai viré, enfin j'ai plutôt désactivé ces fonctionnalités qui ne me servent pas à la finale. Fichiers en pièce jointe. La base Marlin en 2.0.8 bugfix si je ne me trompe pas, en gros il fonctionne parfaitement. Ecran d'origine de la S1 (ce n'est pas la mienne, mais il était comme ça, seul les icônes ont changés et c'est en Français....) A droite mon écran, enfin celui de @fran6p , l'impression démarrée il est comme ce lui de gauche, mais en Français.. (Sans les accents, je n'arrive pas à les mettre... pourtant ils existent dans le fichier font.ttf) La barre ou est noté Creality ENDER 3S1 reste et c'est la que s'affiche les messages et notamment les M177 du plug-in Cura. (Heu 5.1 c'est la dernière version de mes firmware, c'est pour me repérer, là je travaille sur la 5.2, avec la dernière version du Marlin, dont les compils échouent à chaque fois, pour des raisons inconnues encore, c'est juste pour le fun, car ma version 5.1 me va...) En fait je veux désactiver l'affichage de PRINT TIME et REMAIN avec leur valeur en dessous. @fran6p Il y a 5 heures, fran6p a dit : Les trancheurs ne peuvent fournir que des temps approximatifs Vi. Mais je me suis toujours basé sur ce que Cura me disait, en gros de toute façon il y a très peu de différence entre la réalité et ce que Cura à prévu au départ, quelques minutes, alors qu'avec le poisson, j'ai eu sur une grosse impression une bonne surprise au début, la S1 m'affichait une durée plaisante (-55 mn) et à la finale...... Bref, le plug in de Cura, je ne sais comment il fait, mais récupère les infos du tranchage, t'affiches au départ la durée totale, et ensuite la durée restante, tout en t'indiquant la phase de travail (X/XX) correspondant en fait au découpage Curatesque du fichier STL. Ca correspond presque avec la barre de progrès. Je n'ai fait que trois impressions (15 mn, 2h30 et 3h50) plug-in activé sans noter de différences notables entre ce que j'ai relevé (Avec mon chronographe, un truc rond que l'on porte au poignet et qui n'a pas besoin d'être rechargé pour donner l'heure ) depuis le traçage ou la première opération qui est soit la jupe soit la bordure, le décompte commence là pour lui. Chauffe et ligne de purge ne sont pas pris en compte. Il y a 5 heures, fran6p a dit : Pour Marlin, que je n'utilise quasiment plus, je ne sais s'il existe un projet semblable. Bah, j'ai cherché, vu, lu sur des Github, des redit pas mal de choses au sujet des temps d'impressions, mais rien de concluant ou d'approchant ce que je souhaite, et l'étude du Marlin (si j'ose ) s'avère complexe, pourtant dans une vie antérieure, les joies de la programmation ne m'était pas inconnus, j'ai même peut être encore une K7 de mon Commodore 64 . Donc le poisson j'en comprends la structure, le langage par contre.... Si les ordres ne me sont pas inconnus (Quoique parfois ils auraient faire plus simple, sans compter des fonctions ou des "ordres" qui sortent un peu de mes compétences..ésotérisme ? ), leur arrangement.. Me prennent un peu la tête Bon, rassure toi, je ne t'en veux pas de ne plus utiliser le Marlin Personne n'est parfait Encore Merci de m'aider dans ma quête du temps... Configuration.h Configuration_adv.h Modifié (le) Septembre 13, 2024 par BO105cbs
pommeverte Posté(e) Septembre 13, 2024 Posté(e) Septembre 13, 2024 (modifié) Je dirais que les valeurs du temps: écoulé est mis à jour à la ligne suivante du fichier Marlin\src\lcd\e3v2\proui\dwin.cpp DWINUI::drawString(hmiData.colorText, hmiData.colorBackground, 47, 192, buf); restant est mis à jour à la ligne suivante du fichier Marlin\src\lcd\e3v2\proui\dwin.cpp DWINUI::drawString(hmiData.colorText, hmiData.colorBackground, 181, 192, buf); les titres (labels Printing time et remaining) sont créés dans le même fichier, ici: DWINUI::drawString( 46, 173, GET_TEXT_F(MSG_INFO_PRINT_TIME)); DWINUI::drawString(181, 173, GET_TEXT_F(MSG_REMAINING_TIME)); Modifié (le) Septembre 13, 2024 par pommeverte
BO105cbs Posté(e) Septembre 14, 2024 Auteur Posté(e) Septembre 14, 2024 Merci, il me suffit donc de "décommenter" ou "désactiver" ces lignes à la finale.
pommeverte Posté(e) Septembre 14, 2024 Posté(e) Septembre 14, 2024 Salut, Si tu commentes ces lignes, ce sera plus efficace
BO105cbs Posté(e) Septembre 14, 2024 Auteur Posté(e) Septembre 14, 2024 (modifié) Il y a 6 heures, pommeverte a dit : Si tu commentes ces lignes, ce sera plus efficace Heu avant de faire une connerie que veux tu dire par commentes ? J'ai compris le principe, j'ai trouvé aussi les lignes et d'autres ailleurs traitant du même sujet, car le fait de commenter celles que tu m'a indiqué ne suffisait pas. Maintenant c'est OK, je n'ai plus les deux lignes. Bon, je refais tous les calibrages machine avant de poursuivre mon impression qui patientait sagement. Encore un grand Merci @pommeverte Modifié (le) Septembre 14, 2024 par BO105cbs 1
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