Plusieurs imprimantes sur un seul Octoprint

Vous aurez besoin dans un premier temps d’une installation d’octoprint sur un raspberry.
Vous pouvez trouver son installation ici : Installation d’octoprint

Les commandes à copier coller dans Putty :

  1. Étendre la partition de la carte sd :
    sudo raspi-config
  2. Dans Advanced option choisir Expand Filesystem.
  3. Un reboot est nécessaire , si il ne le propose pas par défaut , vous pouvez le forcer avec sudo reboot now

Il faut maintenant copier l’instant de départ d’octoprint autant de fois que vous avez d’imprimante. ATTENTION que cela va au final faire pas mal travailler le raspberry et risque de le faire grimper en température , donc prévoyez une bonne ventilation au risque de faire planter toutes vos impressions 😉

Les commandes pour copier les instances :
1. sudo su
2. cd /etc/init.d 
3. sed s/octoprint/octoprint2/ < octoprint | sed s/OctoPrint/OctoPrint2/ | sed s/bin\\/octoprint2/bin\\/octoprint/ > octoprint2 ( à refaire en changeant le chiffre par imprimante voulu , ex : octoprint3 ou 4 , ….)
4. changer les droit sur chaque copie : chmod 755 octoprint2

Attribuer un port a chaque instance :

Changez de répertoire :
cd /etc/default

sed s/PORT=5000/PORT=5001/ < octoprint | sed s/HOST=127.0.0.1/HOST=0.0.0.0/ | sed s/\$PORT/\$PORT\ –basedir\ \\/home\\/pi\\/.octoprint2/ > octoprint2 
pour la première copie, pour la 3 , remplacer 5001 par 5002 et octoprint2 par octoprint3 , …

Mettre à jour chaque instance crée:
sudo update-rc.d octoprint2 defaults 99 (idem changer le numéro de votre instance si vous en avez crée plusieurs)

on reboot le tout avec sudo reboot now

maintenant il va falloir configurer chaque instance ;
connecté vous sur l’ip d’octoprint.
la principal par exemple avec l’adresse ip : 192.168.1.14
et pour les autres ajoutez a la fin le port 192.168.1.14:5001 ou 5002 selon les étapes précédentes.
Lors du remplissage des information de votre imprimantes , je vous conseil de lui donner un nom court : U30 , LK4 dans mon cas.

La suite :
changement de répertoire : cd /var/log
Ici le but va être de trouver les infos qui concerne les port usb de chaque imprimantes pour définir une règle


débranché tout , placez une seul imprimante à la fois et tapez la commande : sudo cat messages
dans la longue liste d’infos qui s’affiche , rechercher une ligne qui ressemble à : new usb device found, avec comme info : idVendor=04545 par exemple) et idProduct=6060 (par exemple)
Prenez bien note des 2 valeurs , faites la même choses pour chaque imprimante.


Création des règles USB.
Pour que chaque imprimante soit associé à la bonne instances il va falloir créer un fichier de règles qui nous permettra de la reconnaître.

création du fichier : sudo nano /etc/udev/rules.d/99-usb.rules

Vous pouvez maintenant reprendre chaque idVendor et idProduct pour y inscrire la ligne suivante :

SUBSYSTEM=="tty", ATTRS{idVendor}=="04545", ATTRS{idProduct}=="6060", SYMLINK+="U30"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="LK4"

Terminez en enregistrant le fichier avec
ctrl-x et Y

On reboot le tout : sudo reboot now

Pour terminer:
branchez toutes les imprimantes sur le rapsberry et vérifiez si elles sont bien visible :
sudo ls -l /dev |grep tty

dans la liste, il devrait y avoir maintenant des ligne ressemblant à : ttyUSB0

Passons maintenant à l’utilisation dans octoprint.
Seul différence à votre habitude , est qu’il va falloir lui dire quel usb prendre en compte dans la liste des connexions : /dev/usb0 ou usb1 ou le nom de la machine : U30/LK4.

N’oubliez pas de cocher : Save connection settings histoire de ne pas devoir recommencer la sélection à chaque utilisation 😉

Chaque session d’octoprint peuvent utiliser différents plugin… mais encore une fois , attention à la température de votre Raspberry , même si les session sont indépendante une de l’autre , un seul plantage dans une, et ce sont toutes les impressions en court qui risque d’y passer.

Laisser un commentaire

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