Octoprint, impression 3D de fichiers STL en WiFi. Partie 1, Octopi et installation manuelle sur Raspbian Stretch (Raspberry Pi 3)

Octoprint est un serveur d’impression de fichier 3D entièrement écrit en Python, il peut fonctionner sur un PC Windows, sur macOS et bien évidemment sur Linux. Il est parfaitement adapté au Raspberry Pi. Octoprint est maintenant un projet mature. Il peut fonctionner sur tous les modèles de Raspberry Pi (y compris le tout premier modèle A). Le Raspberry Pi Zero W semble toutefois poser des problèmes (pertes de connexion WiFi) actuellement. Octoprint est un projet Open Source et gratuit développé par Gina Häußge, alias fossel.

C’est quoi et à quoi ça sert Octoprint et Octopi ?

Octoprint est un serveur d’impression pour imprimante 3D. C’est un logiciel qu’on peut installer sur un PC Windows ou Linux, un MAC. Mais c’est sur un Raspberry Pi qu’Octoprint est le plus intéressant. La petite taille et la faible consommation de ce mini-PC permet de le laisser allumer durant les longues heures nécessaire à l’impression des pièces en 3D.

Octoprint est le nom du projet qui a été démarré par Gina Häußge, alias fossel sur GitHubVous pouvez soutenir le projet en devenant un Patron de Gina ici. Octopi est une image de la distribution Raspbian Jessie Lite sur lequel Octoprint est pré-installé. On peut la télécharger ici. Lisez ce tutoriel si vous voulez installer ultérieurement le bureau Pixel et ré-installer des logiciels sur le Raspberry Pi.

pixel_desktop on retropie

Que peut-on faire avec Octoprint ?

  • Octoprint permet tout d’abord d’imprimer des fichiers STL en WiFi. Fini le transfert de fichier sur une carte SD.
  • Importer des modèles STL et les découper directement sans passer par un logiciel tel que Cura. En fait Octoprint utilise le moteur de découpe de Cura (CuraEngine) pour découper les modèles STL. La découpe (Slice en anglais, c’est l’opération qui permet de préparer les déplacements de la tête d’impression et de générer le fichier gcode utilisable par l’imprimante. Le Slicer de Cura est directement intégré à l’interface d’Octoprint. Tous les paramètres de découpe (de votre imprimantes 3D) sont personnalisables.

  • Piloter l’imprimante depuis l’interface WEB : déplacer les axes, renvoyer les axes aux origines, allumer/éteindre les ventilateurs, pré-chauffer la buse ou le plateau…

  • Visualiser l’impression en cours à l’aide d’une Webcam ou une caméra CSI pour le Raspberry Pi.
  • Démarrer, suspendre, annuler une impression depuis l’interface WEB ou depuis une application mobile. Octoprint permet de gérer une file d’attente de fichiers à imprimer
  • Ajouter des plugins spécialisés dont voici quelques exemples :
    • Arrêt d’urgence
    • Estimation du coût d’impression
    • Gestion du magasin de filament. La quantité consommée pour chaque pièce est déduite de la bobine. Pratique pour estimer assez précisément ce qui reste sur une bobine.
    • Réglage de la planétité du plateau (Bed Leveling)
    • … plus de 50 plugins sont disponibles

octoprint plugins overview

Et plein d’autres choses !

Matériel nécessaire

Pour ce premier tutoriel sur Octoprint, on va partir d’une configuration très simple à base de Raspberry Pi 3 ou Raspberry Pi Zero W. On ajoutera une caméra ou une webcam ultérieurement.

1ère solution : utiliser OctoPi, Octoprint pré-installé sur l’image de Raspbian

Rien de bien compliqué ici. Il suffit de télécharger l’image de Raspbian sur lequel Octoprint est déjà pré-installé. C’est l’image OctoPi. On utilisera un logiciel de préparation de carte SD tel que Etcher disponible sur toutes les plateformes. Allez sur la page de téléchargement pour récupérer la dernière version compatible avec le Raspberry Pi A, B, A+, B+, B2, 3, Zero et Zero W

octopi download page

Ne décompressez pas l’archive. Lancez Etcher et sélectionnez l’image d’Octopi. Insérez la carte SD dans le lecteur ou avec un adaptateur USB. Enfin, lancez la gravure de l’image.

 

etcher octopi octoprint sd card raspberry pi

Une fois l’opération terminée, Rtcher éjecte automatiquement la carte SD. Retirez celle-ci du lecteur et insérez la de nouveau. Depuis de gestionnaire de fichier sous Windows ou le Finder sur macO, ouvrez la carte SD. Elle porte le nom boot. Ouvrez le fichier octopi-network.txt avec un éditeur de texte.

Attention, n’utilisez pas le WordPad de Windows ou TextEdit sur macOS. Utilisez un éditeur de texte pour développeur. Je vous conseille d’installer l’excellent Sublime Text. Vous pouvez également utiliser Notepad++, Atom ou VSCode (Visual Studio Code). WordPad ou TextEdit risquent de modifier l’encodage des fins de lignes. Il est différent d’un système à l’autre. Le fichier de configuration WiFi serait par conséquent inutilisable.

octoprint octopi network wifi configuration

On a plusieurs options commentées à notre disposition. .

  • WPA/WPA2 secured
  • WEP secured, à proscrire absolument. Les réseaux WEP ne sont plus sécurisés depuis des années !
  • Open/unsecured, euh décidément NON.

Dé-commentez la configuration WPA/WPA2 secured puis indiquez le SSI (nom du réseau WiFi) et le mot de passe (wpa-psk)

Enregistrez et éjectez la carte SD. Insérez la carte SD dans le lecteur de carte SD du Raspberry Pi puis mettez ce dernier sous tension. Ici avec un Raspberry Pi Zero W. Attendez au moins 30 secondes avant de poursuivre, le temps que le système Linux soit démarré.

insert sd card raspberry pi zerow

Se connecter en SSH à Octopi

Octopi étant basé sur la distribution Raspbian Jessie Lite, on reste en terrain connu. Par chance (c’est aussi une belle faille de sécurité), le port SSH est ouvert par défaut. Si vous n’avez pas connecté d’écran au Raspberry Pi Zero, vous pouvez utiliser Angry IP Scanner (gratuit) pour trouver l’adresse IP d’Octopi sur votre réseau. POur en savoir plus sur SSH, lisez cet article.

angry ip scanner octopi octoprint raspberry pi

Mais ce n’est pas nécessaire. On peut s’y connecter avec le nom de domaine. Par défaut, c’est octopi, ce qui donne ssh pi@octopi.local. Au passage, on récupère l’adresse IP du Raspberry Pi Zero W, ici 192.168.1.35.

2nd solution : installer Octoprint sur Raspbian Stretch sur un Raspberry Pi 3

OctoPrint est suffisamment léger pour fonctionner en parallèle d’autres logiciels sur le Raspberry Pi 3. Si vous découvrez le Raspberry Pi, commencez par ce tutoriel pour installer et configurer Raspbian (WiFi, clavier, SSH…). Comme j’utilise toujours le même Raspberry Pi 3 pour écrire mes tutoriels, je vous propose de passer un peu plus de temps sur l’installation manuelle depuis les sources.

Avant d’installer OctoPrint, vous pouvez commencer par mettre Raspbian à jour

OctoPrint étant écrit en Python, on va vérifier et installer les librairies nécessaires

Si vous êtes connecté en root, changez d’utilisateur. Placez vous à la racine du compte pi par exemple (c’est plus facile pour la maintenance). Téléchargez ensuite le dépôt du projet depuis GitHub puis ouvrez le dossier du projet

Octoprint a été développé en Python2, si vous avez les deux versions de Python (2.7 et 3.5) sur votre distribution, on va devoir spécifier la version de Python qu’il faut utiliser. Octoprint s’installe dans un environnement virtuel Python. Pour faire (très très) simple, c’est un répertoire dans lequel on installe tout ce qu’il faut pour faire fonctionner un script Python.

Pour savoir si Python3 est installé sur votre distribution, exécutez cette commande.

Pour connaître le chemin du python2.7, on peut utiliser la commande Linux whereis. Vous pouvez également vous rendre dans le dossier /usr/bin/. Donc ici Python 2.7 se trouve dans le dossier /usr/bin/python2.7

Maintenant qu’on connait l’emplacement de Python2.7, on va créer un environnement virtuel Python dans lequel on installera Octoprint. On indique le chemin de Python2 avec le paramètre –python.

On va installer la commande PIP qui permet à Python d’installer des dépendances dans cet environnement virtuel

Enfin, on lance l’installation d’Octoprint. L’installation est assez longue, comptez au moins 15 minutes.

Par sécurité, on va autoriser l’utilisateur Pi à utiliser le port série. Exécutez ce deux commandes

L’installation terminée, on lance Octoprint manuellement avec la commande  ./venv/bin/octoprint

Installer manuellement le Slicer CuraEngine

CuraEngine est pré-installé sur l’image Octopi, mais il faut le faire nous même lorsqu’on installe manuellement Octoprint sur Raspbian. Octoprint n’est pas compatible avec la nouvelle version de Cura. Actuellement la compatibilité s’arrête à la version 15.04.

Les étapes à suivre pour installer CuraEngine sont disponibles ici, ce tutoriel explique comment compiler CuraEngine à partir du code source du projet. Il existe une version pré-compilée (la 14.12) qui est disponible sur le site du projet. Elle convient parfaitement. Placez vous à la racine de votre compte puis récupérez CuraEngine avec la commande Linux wget. A la fin du téléchargement, on rend le fichier exécutable.

Pour s’assurer que le Slicer fonctionne, exécutez la commande suivante pour afficher l’aide

Première connexion à l’interface Web d’Octoprint

Octoprint est accessible depuis n’importe quel ordinateur sur votre réseau local (on verra dans un prochain tutoriel comment utiliser Octorpint depuis un smartphone). C’est son principal intérêt. Pour accéder à l’interface WEB d’Octoprint, on dispose de plusieurs solutions :

  • Avec son adresse IP, http://ADRESSE_IP:5000. Pour connaître l’adresse IP, exécutez la commande ifconfig dans un autre Terminal.
  • Avec le nom de domaine du Raspberry Pi. Avec l’image OctoPi, l’adresse par défaut est http://octopi.local:5000. Sur la distribution Raspbian, ouvrez l’adresse http://raspberrypi.local:5000 

A la première connexion, on arrive sur un assistant de configuration

octoprint startup assistant configuration

Il est fortement conseillé de définir un utilisateur surtout si vous avez l’intention de rendre accessible votre imprimante 3D depuis internet. Cliquez sur Keep Access Control Enable pour activer la sécurité entrante.

octoprint startup assistant configuration access control

Octoprint vérifie à intervalle régulier que la connexion internet est disponible. Vous pouvez indiquer un serveur DNS ou laisser celui de google par défaut.

Si vous avez déjà CuraEngine d’installé (paragraphe précédent), indiquez le chemin vers celui-ci. Sur Octopi, il n’y a que le profile de découpe de votre imprimante 3D (slicing profile) à télécharger.

octoprint startup assistant configuration cura engine

La découpe nécessite de disposer d’un profile d’imprimante. Vous pouvez récupérer celui de votre imprimante directement sur Cura. Attention toutefois, Octoprint prend en charge les profiles jusqu’à la version 15.04 de Cura. Si vous avez la nouvelle version d’installée (2.x ou 3.x), il faudra re-créer un profile pour votre imprimante en téléchargeant une ancienne version de Cura ici. Ici j’ai récupéré le profile de l’Anet A8. octoprint startup assistant configuration printer profile

Voilà, c’est prêt

octoprint startup assistant configuration done

Si vous avez loupé une étape ou que vous ne disposiez pas de tous les éléments, pas de panique, vous pourrez terminer la configuration en cliquant sur la petite clé plate dans le coin supérieur droit de l’écran.

octoprint anet a8 raspberry pi manual install 3dbenchy boat

C’est terminé pour ce premier tutoriel. Dans les prochains articles, nous découvrirons comment importer des fichiers STL, les découper (Slice) avec le moteur de découpe Cura Engine, les imprimer et comment piloter l’imprimante 3D depuis Octoprint.

Tous les tutoriels sur Octoprint

Print Friendly, PDF & Email

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Domotique et objets connectés à faire soi-même