Publié le 11 avril 2023 - par

Installer OctoPi sur un Raspberry Pi 3B+ avec un écran tactile 5 pouces

Mon imprimante 3D ayant besoin d’une mise à niveau, j’ai décidé d’en profiter pour changer l’Octoprint qui l’équipe depuis quelques années. Je vous avais présenté cette première installation dans un article. Cette fois l’écran sera un modèle 5 pouces tactile dont je vous ai parlé précédemment. C’est un TFT qui a une résolution de 800×480, suffisante pour ce genre d’application.

Installer OctoPi

Le plus simple est d’installer l’image d’OctoPi disponible en ligne. Lancer Raspberry Pi Imager

Choisissez Other specific-purpose OS

puis 3D printing

Allez dans la rubrique OctoPi

Sélectionnez la version disponible, ici OctoPi (stable)

Adaptation

Vous pouvez paramétrer l’installation avec Raspbery Pi Imager en cliquant sur la roue dentée. Je mets les paramètres suivants :

  • Nom d’hôte : octopi.local
  • Activer SSH
  • Utiliser un mot de passe pour l’authentification
  • Définir nom d’utilisateur et mot de passe
  • Nom d’utilisateur : pi   (NE PAS LE CHANGER)
  • Mot de passe : octopi
  • Configurer le WiFi
  • SSID : votre_SSID
  • Mot de passe : votre_Pass_Phrase
  • Pays WiFi : FR
  • Définir les réglages locaux
  • Fuseau horaire : Europe/Paris
  • Type de clavier : FR

Sinon vous pouvez configurer manuellement dans /boot

Il existe déjà un fichier ssh  dans /boot. Pas besoin d’en créer un.

Pour le WiFi je colle un wpa_supplicant.conf dans /boot pour que le Raspberry Pi de connecte au WiFi de la Box Internet. Utilisez NotePad++ pour les modifs car WordPad peut créer des problèmes (caractères « parasites ».

country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid= »votre_SSID »
psk= »votre_Pass_Phrase »
key_mgmt=WPA-PSK
}

Créez la carte micro SD et mettez la en place, démarrez le Raspberry Pi.

Configuration d’OctoPi

Avec un écran DSI connecté ce n’est pas forcément facile de démarrer l’installation, je préfère connecter un clavier et un écran HDMI sur le Raspberry Pi 3B+ pour démarrer. Par la suite il est possible de prendre la main à distance avec PuTTY ou VNC.

Sur l’écran vous aurez cet affichage : l’adresse IP d’OctoPi est affichée en clair : 192.168.1.31

Vous pouvez vous connecter à OctoPi via un navigateur web sur un PC ou un Raspberry Pi en saisissant l’adresse IP dans la barre de navigation :

Le navigateur se connecte au serveur sur le Raspberry Pi

et le Wizard (utilitaire de configuration) se lance. Cliquez sur Next

Si vous n’avez pas de sauvegarde à restaurer (première installation) cliquez sur Next.

Saisissez les informations pour l’accès à OctoPi. attention on ne parle pas de l’accès au Raspberry Pi mais bien à l’application OctoPi. Cliquez sur Create Account puis sur Next.

Testez l’accès en cliquant sur Test host & port puis sur Test name resolution. Si ça fonctionne votre Raspberry Pi accède à l’Internet, tout va bien. J’ai laissé l’intervalle de test de connexion toutes les 15 minutes, vous pouvez le modifier si vous le souhaitez. Cliquez sur Enable Connectivity Check.
Cliquez ensuite sur Next.

Vous trouvez ensuite Enable Anonymous Usage Tracking, Enable Plugin Blacklist Processing, pour ma part j’autorise les deux. Faites selon votre choix.

Maintenant on configure l’imprimante 3D, renseignez le nom et le modèle.

Puis les caractéristiques de l’imprimante.

Les vitesses maximales sur les axes X, Y, Z et Extrudeur

On termine par le nombre d’extrudeurs et la taille de la buse. Si vous n’avez qu’un extrudeur, la Default extrusion Length n’a pas d’importance, laissez la valeur actuelle.

Voilà la config est faite, on peut passer à la suite, cliquez sur Next puis Finish et vous devriez voir l’écran d’OctoPrint :

Mise à jour du système

Vous pouvez faire ces manipulations à partir d’un clavier connecté au Raspberry Pi en regardant votre écran HDMI, ou vous connecter en SSH avec PuTTY. Voici comment procéder :

Entrez l’adresse du Raspberry Pi dans PuTTY comme ci-dessus. Tapez le nom de connexion et le mot de passe (celui que vous avez renseigné tout à l’heure).

Vous êtes connecté au Raspberry Pi en SSH.

Commencez par mettre le système à jour

Sur un Pi 3B+ en WiFI… il faut un peu de patience.

Connecter une caméra à OctoPi

La caméra que j’ai installée sur l’imprimante est une Logitech C270, elle permet le 720p à 30fps. Je l’ai un peu modifiée en ajoutant une molette pour régler la mise au point car sur une imprimante 3D les objets sont près de l’objectif et d’origine la caméra a une mis au point depuis environ 60cm à l’infini et là on est plus près.

 

Caméra Logitech C270 modifiée

 

Bon, quand on connecte la caméra pour voir le flux on obtient :

Il va falloir paramétrer OctoPi pour qu’il gère la caméra. On peut vérifier si la caméra est bien reconnue :

C’est bon, la caméra est bien vue.

Modifiez le fichier de configuration /boot/octopi.txt comme suit (enlever le # du début de ligne et modifiez la ligne) :

Si votre caméra a une résolution de 640×480 modifiez le texte en conséquence. Laissez la caméra connectée et Rebootez le Raspberry Pi pour prendre la modification en compte.

Bingo ! la caméra est reconnue et l’image apparait dans la fenêtre Control.

Un point de situation

A ce stade de l’installation, OctoPi est installé sur le Raspberry Pi 3 B+. On y accède en SSH à l’adresse 192.168.1.31 avec PuTTY et l’écran 5 pouces affiche les 4 framboises et attend le login.

Avec un navigateur on ouvre la page web du serveur OctoPi hébergé sur le Raspberry Pi, on accède aux différents menus et la caméra C270 est opérationnelle et renvoie bien le flux vidéo dans le fenêtre Control.

Ce qu’il reste à faire : L’écran 5 pouces du Raspberry est en mode texte car OctoPi est prévu pour travailler en serveur, avec une page web. Il va falloir installer le bureau graphique (Desktop) sur le Raspberry Pi, lancer un navigateur web et afficher la page OctoPi sur le petit écran de 5 pouces. On va aussi piloter un certain nombre de choses grâce à l’écran tactile. Il faut donc mettre tout cela en œuvre…

Installer le bureau graphique sur le Raspberry Pi

Les créateurs de l’image OctoPi ont prévu le coup et dans le dossier scripts vous trouverez un script d’installation du bureau :  install-desktop. Facile !

Appuyez sur une touche répondez yes pour que le bureau démarre au boot  et… c’est parti pour une dizaine de minutes d’installation avec un Pi 3B+, le temps de boire un café 😉 et après on reboot le Raspberry Pi :

Pas gentil le bureau ! il demande un login pour se connecter… Si on n’a pas de clavier (c’est souvent le cas quand OctoPi est sur une imprimante… ça ne le fait pas. On va arranger ça :

Connectez vous avec PuTTY en SSH et ouvrez raspi-config.

sudo raspi-config

Dans 1 System Options choisissez S5 Boot/Auto login puis B4 Desktop Auto Login. Comme cela le bureau se lancera sans demander de Login/Mot de passe. Le système reboot à nouveau mais cette fois ça doit s’ouvrir sans demander de mot de passe…

Parfait ! enfin… non, presque parfait ! Le curseur de la souris est affiché au centre de l’écran, mais j’ai beau m’énerver sur mon écran tactile le curseur  reste obstinément au même endroit… Pourtant lors des essais avec Buster ça fonctionnait. quelques recherches plus loin, il semble que Bullseye ne sache pas trop gérer le tactile avec le driver par défaut on va encore changer une config. Ouvrez /boot/config.txt avec nano et modifiez cette ligne comme ceci :

dtoverlay=vc4-kms-v3d  devient  dtoverlay=vc4-fkms-v3d (il suffit d’ajouter le « f« ). Enregistrez le fichier et rebootez. Sur mon écran le tactile est devenu actif. Si vous rencontrez des soucis avec cette partie, il faudra chercher par vous même car chaque cas est souvent spécifique…

Bon, maintenant que le curseur suit les mouvements du doigt sur l’écran, je dois vous dire que le curseur sur OctoPi ça ne me plait pas, et que je le fais disparaitre après un temps d’affichage (je sais, je suis ch…). Pour ça j’installe unclutter

sudo apt install unclutter

L’utilisation est transparente. Après redémarrage, le curseur disparaît automatiquement au bout de trois secondes.On peut aussi le paramétrer pour changer le temps (voyez man unclutter), par exemple unclutter -idle 5 fait disparaître le curseur après 5 secondes…

Et c’est pas tout avec ce curseur  : Si vous démarrez le Raspberry Pi SANS l’écran HDMI connecté, le curseur réagit bizarrement. Tant que vous balayez la moitié droite de l’écran, vous ne voyez pas de curseur. Il apparait lorsque vous touchez la moitié gauche de l’écran ! Bizarre ? Vous avez dit bizarre ?

En fait quand on ouvre VNC on se retrouve avec 2 bureaux : Celui de gauche est le bureau affiché sur l’écran LCD connecté au port DSI alors que celui de droite… est le bureau qui s’ouvre sur l’écran composite, vous savez la sortie vidéo qui est sur la prise jack 3,5mm où il y a aussi la sortie audio. Pourquoi ? sur le Pi 3B+ quand le HDMI n’est pas connecté, la sortie bascule automatiquement sur la sortie vidéo composite. On va donc désactiver ce bureau.

On voit bien ici dans Appearance Settings qu’il y a deux bureaux actifs !

La solution ? On va forcer la sortie HDMI, même si rien n’est connecté sur la prise HDMI. De ce fait au démarrage le système considère qu’il y a un moniteur HDMI connecté et n’ouvre qu’un bureau sur l’écran DSI.

Enlevez le # au début de cette ligne (décommentez la) et redémarrez. Il n’y a plus qu’un bureau ouvert et la souris fonctionne parfaitement sur toute la surface de l’écran.

Enlever l’économiseur d’écran

Normalement l’écran passe en veille et on peut désactiver cette action dans la menu Configuration du Raspberry Pi. Or dans la distribution OctoPi quand on va sur cette fenêtre, le bouton est grisé et on ne peut pas modifier ce paramètre…

Un ps -ef | grep xscreen   montre qu’on a un économiseur d’écran xscreensaver qui tourne. On va le désinstaller.

sudo apt-get remove xscreensaver

Cette commande désinstalle les paquets de xsceensaver. Rebootez et vous n’avez plus d’économiseur d’écran installé. Il reste juste celui de Raspberry Pi OS ci-dessous

Maintenant Screen Blanking est accessible, faites glisser le bouton vers la gauche pour le désactiver.

Le système vous demande si vous voulez redémarrer pour prendre la modification en compte. Répondez voui… L’extinction de l’écran au bout de 10 minutes est supprimée, l’écran va rester actif en permanence.

Installer Chromium pour afficher OctoPi

La distribution OctoPi sur laquelle nous avons installé le bureau n’embarque pas Chromium dont nous avons besoin pour afficher la page web d’OctoPi. Au point où on en est on ne va pas abandonner ! Installons Chromium !

sudo apt-get install chromium-browser

L’installation est relativement rapide. Redémarrez le système (oui, je sais, encore une fois !) et admirez :

Le navigateur est apparu dans la barre des tâches. Vous pouvez « cliquer » dessus pour l’ouvrir.

Passer le navigateur Chromium en mode Kiosk

Le mode Kiosk permet de figer l’utilisation de Chromium à une application (OctoPi). Il est impossible de fermer le navigateur. C’est comme si l’écran d’OctoPi était la seule utilisation possible du Raspberry Pi.

Commencez par faire une sauvegarde du fichier autostart :

Puis modifiez le fichier autostart d’origine :

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

A l’origine ce fichier contient :

On va lui ajouter ces lignes :

@point-rpi
@sed -i s/ »exited_cleanly »: false/ »exited_cleanly »: true/’~/.config/chromium/Default/Preferences
@/usr/bin/chromium-browser http://127.0.0.1 –noerrdialogs –incognito –start-maximized –kiosk –ash-host-window-bounds 800×480

Ce qui donne :

  • point-rpi fait pointer la souris sur la framboise du menu, en haut à gauche
  • La ligne sed élimine certains messages
  • La dernière ligne lance le navigateur avec les options nécessaires (lisez ceci pour en savoir plus). En mode Kiosk vous ne pouvez pas fermer le navigateur et il reste au dessus du bureau.

Sauvez le fichier modifié et… rebootez 😀

YESSS ! Le système démarre, le bureau s’affiche, le navigateur s’ouvre et après un moment d’attente (le serveur OctoPi est en train de démarrer) OctoPi s’affich…..e  euh… oui mais il demande de se connecter ! Gasp je ne veux pas de clavier à côté de mon imprimante, moi ! On va devoir virer cette demande de log in et connecter directement OctoPi.

Supprimer le login d’OctoPi

La réponse se trouve dans la documentation d’OctoPi. Dans le fichier /home/pi/.octoprint/config.yaml on va rajouter une rubrique d’accès au serveur n connectant l’utilisateur automatiquement.

On ajoute un bloc AccessControl

AccessControl:

addRemoteUsers: false
autologinAs: framboise314
autologinLocal: true
checkBasicAuthenticationPassword: true
localNetworks:
– 127.0.0.0/8
– 192.168.1.31/24
remoteUserHeader: REMOTE_USER
trustBasicAuthentication: false
trustRemoteUser: false
userManager: octoprint.access.users.FilebasedUserManager

Ce qui logue automatiquement l’utilisateur (framboise314) en local ou a l’adresse IP du RasPi (vous adapterez en fonction de votre cas.

Cette fois plus de fenêtre de login. L’UI (Interface utilisateur apparait sur l’écran en mode Kiosk.

Oups avec cet écran de 800×480 il semble que la fenêtre ne s’affiche pas convenablement et il faut « balader » l’UI pour accéder à tous les paramètres et aux icônes. Cet interface est bien quand vous vous connectez à votre serveur OctoPrint depuis un PC ou une tablette, par contre pour piloter l’imprimante 3D directement depuis l’écran c’est un peu la misère.

On a 3 possibilités d’interfaces :

TouchUI

Ce plugin transforme la mise en page d’OctoPrint pour l’adapter aux mobiles et aux écrans de petite taille. Il possède des boutons plus grands et une mise en page réactive jusqu’à la plus petite résolution possible. Il prend également en charge un clavier virtuel. L’interface n’apparait que sur l’écran local, si vous vous connectez à distance depuis un PC ou un Raspberry Pi, vous retrouvez l’interface classique d’OctoPrint.
Inconvénient : Ce plugin a été abandonné …Le mainteneur actuel de ce plugin semble l’avoir abandonné. Si vous souhaitez reprendre sa maintenance, merci de contacter ce lien
C’est le plugin que j’utilisais jusqu’à maintenant, je pense que je vais changer d’interface. De plus ce plugin utilise le navigateur (j’avais installé Chromium pour cela) et consomme de la ressource sur mon Pi 3B+. Les deux plugins suivants sont conçus comme des fenêtres X et diminuent la consommation de ressources.

OctoDash ou OctoScreen ?

OctoDash et OctoScreen sont deux plug-ins d’interface graphique compatibles avec les écrans tactiles.
Bien que ces deux programmes aient des objectifs similaires, ils présentent quelques différences dans la manière de les atteindre. En bref, OctoDash est l’option la plus récente, avec de nombreuses fonctions d’interface et de contrôle avancées, une multitude de plug-ins pris en charge et quelques options de personnalisation. OctoScreen a une conception plus simpliste et organisée, avec des outils pour configurer une connexion Wi-Fi et une compatibilité pour plusieurs buses d’impression.

Ces deux plugins ne sont en fait qu’une version restructurée de l’interface web originale avec de nombreuses commandes de base identiques. Lorsque vous cliquez sur un bouton (lorsque vous réglez la température de la buse par exemple) le bouton est simplement un masque pour envoyer la commande G-code correspondante à votre imprimante.

Il est important de mentionner qu‘OctoDash et OctoScreen sont des plug-ins OctoPrint non officiels. Cela signifie que vous ne pouvez pas les télécharger et les charger sur votre serveur OctoPrint directement à partir du dépôt de plugins OctoPrint. Il faudra les télécharger via des commandes envoyées directement à votre serveur OctoPrint.

OctoDash

OctoDash a un rendu des modèles interne (Source: chlronald via Reddit)

Une caractéristique d’OctoDash est l’intégration des plug-ins OctoPrint qui vous donnent plus de contrôle sur votre machine. Par exemple, s’il est installé, OctoDash prend en charge le plug-in FilamentManager afin que vous puissiez sélectionner et suivre l’utilisation des filaments et indiquer à votre machine le matériau que vous utilisez. OctoDash prend également en charge quelques autres plugins, tels que Enclosure, PSU Control, PrintTimeGenius et Slicer Thumbnails.

Selon le site web, OctoDash est optimisé pour les écrans tactiles de 3,5″ à 7″, ce qui fait de ce programme un excellent choix pour les écrans comme le 7″ Touch Screen Display du Raspberry Pi.

OctoScreen

Vous pouvez contrôler plusieurs buses avec OctoScreen (Source: 3DTomorrow via YouTube)

OctoScreen ne dispose pas du support et de l’intégration des plug-ins OctoPrint, il vous permet de gérer la connexion Wi-Fi de votre appareil. Sur l’écran d’ouverture d’OctoScreen, vous pouvez facilement changer votre réseau Wi-Fi connecté sans avoir à éditer vos fichiers de configuration OctoPrint. Cette fonction peut sembler anodine, mais elle est très utile si vous devez parfois changer de réseau, car elle vous permet de vous reconnecter facilement sans avoir à redémarrer l’ensemble de votre serveur OctoPrint.

OctoScreen est destiné aux écrans LCD plus petits avec de faibles résolutions, comme 480 x 320. Essentiellement, n’importe quel écran LCD compatible et correctement configuré sur la carte sur laquelle tourne votre serveur OctoPrint devrait fonctionner avec l’un ou l’autre de ces programmes
OctoScreen est compatible avec un capteur de mise à niveau automatique du plateau, comme un BLTouch. Bien sûr, vous pouvez en avoir un avec OctoDash, mais vous ne pourrez pas le contrôler aussi facilement. OctoScreen est également compatible avec les imprimantes à double extrudeur car vous pouvez contrôler plusieurs températures de buses.

Alors OctoScreen ou OctoDash ?

OctoDash accepte plus de fonctions de contrôle de l’imprimante grâce au nombre de plug-ins pris en charge. Il propose également le rendu intégré de modèles 3D, mais l’interface est un peu encombrée, surtout si vous utilisez un petit écran.

OctoScreen a une interface bien organisée et facile à utiliser, avec une prise en charge de plusieurs buses. Malheureusement il n’a pas beaucoup de fonctions de contrôle ou de plug-ins compatibles. A priori selon certains utilisateurs, OctoScreen est de moins en moins supporté car de nouveaux programmes GUI (comme OctoDash) prennent sa place.

Dans l’ensemble, OctoDash est probablement la meilleure option pour ceux qui cherchent à utiliser les fonctionnalités des plug-in OctoPrint sur une interface directe et qui ne s’inquiètent pas des capacités de l’ordinateur qui exécute le serveur OctoPrint.

OctoScreen est la meilleure option pour ceux qui veulent une interface organisée et plus de compatibilité avec leur installation d’impression 3D (par exemple avec un BLTouch, ou une double extrusion).

J’ai choisi d’installer OctoDash sur mon serveur.

Installer OctoDash

Le Wiki décrit l’installation en détail, vous pouvez vous y reporter. Si vous aviez validé VNC (ce que j’avais fait pour faciliter les captures d’écran), enlevez le car lorsque le Raspberry Pi démarre avec OctoDash, la fenêtre de VNS s’ouvre sur l’écran du Raspberry Pi…

Exécutez cette commande sur le Raspberry Pi, dans le dossier de pi, en étant connecté comme l’utilisateur qui utilise l’écran (pas en root, ni avec sudo !)

bash <(wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/install.sh)

L’installation est rapide, il faut ensuite choisir les plugins que vous souhaitez utiliser. utilisez les flèches et la barre espace pour sélectionner, Entrée pour valider.

J’ai choisi ceux-ci (avec un carré). Le programme installe les plugins (répondez yes)

Attention il faut que l’autologin ait été validé car OctoDash va démarrer au prochain démarrage

On peut passer à la configuration.

L’écran d’accueil indique que c’est un premier démarrage et va vous aider à configurer OctoDash. Comme les locales sont en français, OctoDash a adopté cette langue pour l’affichage.

Ici il n’y a qu’une instance sur le Raspberry Pi, cliquez sur la barre grise.

OctoDash va ensuite connecter l’API, on a deux possibilités : soit on rentre la clé API récupérée sur la page web (navigateur du PC ou d’un Raspberry Pi), soit on accepte la demande comme ci-dessous

Ici j’ai accepté la demande et l’accès a été donné à OctoDash

Les informations sont récupérées sur OctoPi que nous avions configuré précédemment, on peut cliquer sur Suivant

Je n’ai rien changé sur les écrans suivants.

OctoDash vérifie l’installation, ici tout est OK, on peut cliquer sur terminé.

Si l’imprimante n’est pas en fonction ou pas connectée, OctoDash passe en veille. Il suffit de cliquer sur l’écran pour le « réveiller ». Si l’imprimante est en route quand vous démarrez OctoPi/OctoDash, un reset est effectué et l’écran est réinitialisé (ici c’est un firmware Marlin 1.1.8).

L’écran de base donne accès aux différentes options. les icônes sont bien visibles et tout fonctionne parfaitement.

Les contrôles permettent de piloter les moteurs, les icônes à droite sont programmables. OctoDash vous permet de définir des actions personnalisées, qui peuvent être exécutées à partir du menu de contrôle. Vous avez le plein pouvoir sur ces boutons, OctoDash ne vérifiera pas si vos commandes ont un sens ou si elles peuvent détruire votre imprimante, il se contente de les envoyer à l’imprimante, sans poser de questions. Soyez donc prudent vous le faites à vos risques et périls !

Sur cet écran on voit que la buse a commencé de chauffer, elle est à 46°C. L’icône fichiers donne accès à la carte SD de l’imprimante ou aux fichiers GCode que vous aurez transféré depuis la page web sur le Raspberry Pi (sur OctoPi).

Conclusion

L’imprimante 3D que j’utilise va être révisée et modifiée (changement des bagues à billes, ajout d’un plateau chauffant, remplacement du capteur de position capacitif…). Ce sera l’occasion de mettre en service cette version d’OctoDash avec un écran tactile 5 pouces. Le boîtier est en cours de modélisation et sera imprimé… sur la Ender 3 pro, en attendant que la Gaia3D se refasse une beauté 😀

Si vous utilisez OctoPrint / OctoPi / OctoDash ou OctoScreen, n’hésitez pas à ajouter vos remarques, suggestions… dans les commentaires ci-dessous.

Sources

Installer OctoPrint avec l’écran HyperPixel sur Raspberry Pi

 

 

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

Une réflexion au sujet de « Installer OctoPi sur un Raspberry Pi 3B+ avec un écran tactile 5 pouces »

  1. Ping : Installer OctoPi sur un Raspberry Pi 3B+ avec un écran tactile 5 pouces

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.