Voir le temps restant pour mon impression 3D

Bonjour,

Aujourd'hui, nous allons toucher à l'impression 3D et plus particulièrement au firmware Marlin.

Tout d'abord, je vous invite à lire cet article.

Tout le monde rêve de savoir d'un seul coup d'oeil dans combien de temps l'impression en cours sur son imprimante 3D sera terminée.

En fouillant un peu sur Internet, j'ai trouvé comment procéder.

Voici la vidéo qui m'a TOUT expliqué: https://youtu.be/1bD0YwJ7hlo

Mais comme elle est en anglais, je donne les explications en français dans cet article. Cette méthode a fonctionné sans problème pour mon Ender 3 Pro. Je ne l'ai pas testée sur d'autres imprimantes.

Attention !

Vous allez devoir modifier le firmware de votre imprimante. Si vous ne savez pas comment faire, je vous invite à chercher sur YouTube, il y a de très bon tutoriels. Je n'ai pas encore fait d'articles sur comment procéder. Cela pourrait arriver dans le futur. Ou pas...

Petit rappel de cet article que je vous ai demandé de lire: Les changements appliqués en dépit du bon sens pourrait rendre votre imprimante non opérationnelle. Vous procédez donc à ces changements à vos risques et périls et je ne pourrai en être tenu pour responsable.

Les modifications proposées ici supposent que le firmware est de base. Si vous avez un BLTouch et si votre carte-mère est en 8bit, il faudra peut-être faire de la place. A nouveau, je vous conseille un tour sur YouTube.

Phase 1: configurer Marlin

Dans Visual Studio Code, il faut ouvrir le fichier configuration_adv.h.

Dans un premier temps, nous allons activer l'affichage du signe % au-dessus de la barre de progression. C'est une étape nécessaire pour la suite. Commençons donc par chercher DOGM_SD_PERCENT. La ligne devrait être comme ceci (en vert):
//#define DOGM_SD_PERCENT
Il faut enlever les 2 / au début. La ligne prendra alors des couleurs:
#define DOGM_SD_PERCENT
Nous allons ensuite activer l'affichage du temps restant. Pour cela, toujours dans configuration_adv.h, nous allons chercher SHOW_REMAINING_TIME. Cette ligne est normalement aussi en commentaire:

//#define SHOW_REMAINING_TIME
On lui enlève donc les 2 /:

#define SHOW_REMAINING_TIME
Si nous compilons le firmware à cet instant, nous aurions l'information du temps restant qui s'afficherait sur l'écran en alternance avec le temps écoulé. Le temps restant est alors calculé par le firmware. Au début, le temps sera assez peu fiable, mais au fur et à mesure de l'impression, l'estimation s'améliorera. Le décalage vient de plusieurs paramètres. Le temps restant est calculé à partir du moment où vous appuyez sur le bouton START. Mais... Le plateau et la buse vont devoir chauffer et si vous avez un BLTouch, il faudra aussi le temps de prendre les mesures du plateau. Tout ce temps n'est pas pris en compte. Il faudra quelques minutes pour que l'affichage du temps restant commence à afficher des données auxquelles on pourra se fier.

C'est bien. Mais nous pouvons aller plus loin !

Par exemple, sur de longues impressions, voir 1%, 2%, 3% ... qui restent pendant des minutes ou des heures, n'est-ce pas un peu frustrant ? Et si nous ajoutions des décimales ?

Pour cela, nous allons chercher PRINT_PROGRESS_SHOW_DECIMALS. 

//#define PRINT_PROGRESS_SHOW_DECIMALS

Une fois encore, nous allons dé-commenter la ligne.

#define PRINT_PROGRESS_SHOW_DECIMALS
A partir de maintenant, les pourcentages pourront être sous la forme 12.84%. C'est mieux non ? On verra l'indicateur monter plus vite changer plus souvent !

Améliorons encore un peu les choses. Cherchons ROTATE_PROGRESS_DISPLAY. Encore une ligne en commentaire ! 

//#define ROTATE_PROGRESS_DISPLAY

que nous allons dé-commenter en lui enlevant ses /.

#define ROTATE_PROGRESS_DISPLAY
De cette façon, sur notre écran, les valeurs de temps écoulé, de temps restant et de pourcentage s'afficheront à tour de rôle. Cela permet d'avoir plus d'espace pour imprimer l'information sur notre écran. C'est particulièrement pratique pour des impressions durant plusieurs jours.

Une fois, la ligne commencera par la lettre "E" pour "Elapsed Time" ou en français, temps écoulé. Ensuite, elle commencera par "R" pour "Remaining Time", c'est-à-dire temps restant. Enfin, le pourcentage s'affichera. Et la boucle recommencera.

Nous avons presque tout ce qu'il faut. Presque car le temps restant est toujours celui calculé par le firmware. Il existe une commande M73 dans Marlin qui permet de passer à Marlin le pourcentage à afficher. Attention: cette modification nécessite que votre Slicer puisse calculer le temps restant. PrusaSlicer le permet, je ne sais pas pour les autres !

Commençons par configurer Marlin pour qu'il puisse comprendre les commandes M73. 

Toujours dans notre fichier configuration_adv.h, cherchons LCD_SET_PROGRESS_MANUALLY.
//#define LCD_SET_PROGRESS_MANUALLY

Il faut retirer les commentaires:

#define LCD_SET_PROGRESS_MANUALLY

Enfin, pour avoir quelque chose plus précis, cherchons USE_M73_PROGRESS_DISPLAY. Encore une fois la ligne est commentée.
//#define USE_M73_REMAINING_TIME
Et, encore une fois, nous l'activons: 
#define USE_M73_REMAINING_TIME
C'est bien, tout est prêt mais maintenant il faut... 

Phase 2 : configurer PrusaSlicer

Et cela se fait très rapidement. 

Commencez par activer le mode Expert.
Ensuite, il faut aller dans les paramètres de l'imprimante. Là, dans"Général", il faut cocher la ligne "Supports Remaining Time" (Oui, mon PrusaSlicer est en anglais, désolé...)  

Grâce à celà, le GCode généré reprendra des commandes M73 qui founiront à Marlin le pourcentage imprimé ET le temps restant.

Voilà... Si vous avez tout suivi et que vous avez poussé le firmware dans votre Ender 3, votre écran devrait afficher les infos désirées.


Commentaires

Posts les plus consultés de ce blog

Utiliser des itinéraires Google Maps sur un GPS Garmin ?

RaspBerry Pi: découverte