Aller au contenu

Une alternative au Raspberry Pi pour Octoprint


fran6p

Messages recommandés

Comment installer Octoprint sur un Orange Pi Zero 2 (aka OPiz2)

En préambule :

Octoprint, permet :

  • le suivi de l'impression de l'imprimante 3D (de n'importe où, sur votre smartphone par exemple),
  • l’envoie de fichier à imprimer sans avoir à quitter votre ordinateur
  • l’allumage/extinction de l'imprimante à distance
  • la prévisualisation du modèle à imprimer
  • la création de timelapses à partir de vos impressions.
  • en option, la réception d’une alerte si l'imprimante commence à imprimer des spaghettis.


Octoprint est un logiciel serveur HTTP, écrit en langage Python, censé fonctionner sur un petit ordinateur.

La majorité du temps, il est installé sur un Raspberry Pi (un RPi0 v2 ou RPi3 étant le minimum requis) en téléchargeant une image pré-construite (OctoPi) ou encore manuellement via des commandes à exécuter après l’installation d’une image système minimale (Raspberry OS Lite précédemment nommée Raspbian).

Cela signifie de se procurer un Raspberry Pi, un boîtier (on peut en imprimer un, ce ne sont pas les modèles qui manquent), probablement une caméra (Webcam / Raspicam) également, tout ceci, aujourd’hui n'est pas bon marché. En temps normal, il vous en coûterait environ 50€ (RPi3 ou RPi4) ou une vingtaine d’euros pour une RpiO V2 auxquels il faudrait ajouter le prix de la Webcam ou RaspiCam sans oublier une bonne alimentation 5,1V/3A.

Vous n’êtes pas sans savoir ou alors vous êtes encore terré dans votre grotte depuis mars 2020 qu’une pénurie de composants affecte actuellement de nombreux secteurs. Réussir à se procurer aujourd’hui des cartes Raspberry Pi à des prix non stratosphériques relève de la gageure. Régulièrement, je consulte le site «RPiLocator» pour connaître l’état des stocks ainsi que les prix.

La pénurie et/ou les prix pratiqués sont une des raisons pour laquelle on peut envisager se tourner vers d’autres cartes du même genre (OrangePi, BananaPi et autres variantes). La seconde raison, probablement la plus importante ayant conduit à la rédaction de ce tutoriel, est la conséquence d’un dépannage pour un de mes partenaires modérateurs. Grâce à lui, j’ai pu me faire la main sur une carte alternative au RaspberryPI : une OrangePI Zéro 2

C'est ce que l'on appelle une carte SBC (Single Board Computer) :

- son facteur de forme est plus petit que celui d’un RPi3/4,

- tout aussi rapide,

- moins chère (normalement une trentaine d’euros mais plutôt autour de 35/40€ à ce jour)

- et surtout actuellement disponible contrairement aux Raspberry Pi.

Cette carte existe en deux versions : 512Mo / 1 Go de RAM (la différence de prix entre les deux n’est pas insurmontable). Le CPU utilisé est un Allwinner H616 (CPU ARM 64bits).

ATTENTION : OrangePi fabrique de nombreuses cartes dont les noms sont parfois similaires mais dont les composants électroniques sont différents. Ne vous laissez donc pas tromper par toutes les autres cartes d'OrangePi (la Zero, la Zero+ ou encore la Zero+2).

OrangePi_Zero2-board.jpg.7cb46192751af7872473307f4067c9ad.jpgPi-Zero2_top-bottom.thumb.jpg.d5745b584544652ce2a9e66d04af4dd4.jpg

Cette carte peut fonctionner avec plusieurs systèmes d’exploitation :

  • un fourni par le fabricant de la carte (avec interface graphique ou sans (version «serveur»))
  • ou avec le système Armbian (image dépouillée d’interface graphique, semblable au système Raspberry OS Lite donc) basée sur la dernière version de Debian (Bullseye).


Récapitulatif du matériel :

  • carte OrangePi Zero 2 (nommée OPiz2 dans le reste du document)

  • alimentation 5V/2A,

  • un câble USB-C (seules les broches 5V et de masse sont utilisées, un câble de données n’est donc pas indispensable),

  • une carte µSD (8GB ou 16GB ou plus)

  • optionnel, une webcam

  • un HUB USB ou une carte additionnelle à monter sur la OPiz2 car d’origine un seul port USB est implanté sur la carte
    opiz2-hat-usb.jpg.ce7797df5742cd689a8cfb9307acf0c7.jpg

 

La voie avait déjà été débroussaillée par diverses lectures dont la principale, ce sujet de Blog. N’ayant pas exactement suivi ce qui y est décrit, je relate ici ce que j’ai fait pour obtenir au final quelque chose de fonctionnel. En espérant que je n’aurai rien oublié et que les étapes suivies permettront à d’autres d’obtenir le même résultat.

Installation
 

Le processus d'installation est assez simple, à condition que vous sachiez déjà comment utiliser Linux a minima. J’essaierais de détailler les différentes étapes.


Préparation de la carte microSD
 

Contrairement à votre ordinateur, cette carte ne possède pas d’équivalent d’un BIOS pour démarrer. Le système d'exploitation doit être écrit sur une carte SD. Le système démarrera et fonctionnera à partir de cette carte µSD.

Une carte de 8GB ou plus est nécessaire. Plus la capacité de stockage de la carte est grande, moins elle risquera de manquer d'espace avec les mises à jour logicielles et moins elle risquera d’être endommagée par l'usure de la carte due aux écritures / réécritures sur celle-ci.

En l’occurrence, la carte μSD utilisée est une Sandisk Ultra de 16Go (classe 10 / A1).

Une fois la carte SD à disposition, télécharger l'image Armbian pour la carte OPiz2 à partir d'ici (le choix de votre méthode de téléchargement dépend de vos préférences (P2P ou direct)).

Le «gros» bouton vert [SUPPORTED] permet de savoir que cette image fonctionne avec cette carte ;-)

L’image utilisée sera celle basée sur une Debian (Bullseye), il en existe une seconde, basée sur Ubuntu (Focal) que je n’ai ni utilisée ni testée.

opi02-download-armbian-bullseye_22_02.thumb.jpg.a9bc7766e4c11d808f8b71fe198f3cc6.jpg

Vous devrez ensuite décompresser ce fichier avec le logiciel de décompression 7zip (Windows) ou avec The Unarchiver (MacOS). Les deux sont gratuits, seul 7Zip a été testé car je ne possède aucun équipement de la marque à la pomme.

Les utilisateurs de Linux devront installer «p7zip» (la version «terminal» de 7zip).

Sur un système Debian/Ubuntu, ouvrir un terminal et saisir :

sudo apt install p7zip

 

Une fois p7zip installé, saisir dans le terminal la commande suivante pour extraire l’image :

7zr x nom-de-l-image.7z

 

Remplacer évidemment « nom-de-l-image» par le nom de l’archive téléchargée.

Une fois l'archive décompressée, vous obtiendrez un fichier d'extension .img. Celui-ci devra être gravé sur la carte SD.

 

Flash de l’image

 

Le logiciel BalenaEtcher sera utilisé pour cette «gravure»:

  • choix du fichier .img
    balenaEtcher_choix-image.jpg.59ea77dfda4b758b7cdbbc09a57dd5db.jpgbalenaEtcher_choix-image-bullseye-img.jpg.03bbc78f3ec21d228f3ed82a6f712674.jpg
  • sélection du lecteur de carte µSD sur votre ordinateur (bien vérifier que la taille correspond à celle de votre carte SD, ne sélectionnez pas un autre disque dur de votre ordinateur ici)
    balenaEtcher_choix-carteSD.jpg.42d77306ca1db405c57d5822949d0bff.jpgbalenaEtcher_flash.jpg.bd4d854674b60d172d0fef33d2de6fa8.jpg
  • gravure de l'image puis vérification (quelques minutes de patience)
    balenaEtcher_flash_encours.jpg.3f4f0bc217cc33fa92335a4cca032d99.jpg  balenaEtcher_flash_verification.jpg.5966aa2d7f73d636080f5e733d3a2153.jpg  454859542_balenaEtcher_flash_termin.jpg.a5a8381e3d8b5b1cb373b43239b0513a.jpg
  • éjection de la carte de votre ordinateur
    ejecter-carteSD.jpg.3b677a4741f2fe3f87e049aafd688511.jpg

C’est fini pour cette étape !

A noter :

Révélation

contrairement aux images pour les Raspberry Pi, où la carte SD est scindée en deux partitions (une en FAT32 (/boot) et une en ext4 (/), Armbian ne fait qu’une seule partition (ext4) illisible avec Windows (il vous le dira d’ailleurs en vous proposant de formater la carte, ne le faites surtout pas sinon retour à l’étape «Flash de l’image»)

Premier lancement


Le premier démarrage sera un peu long car le système étendra la capacité de stockage en redimensionnant la partition à la capacité maximale de celle-ci.

Insérer la carte SD dans le lecteur de l’OPiz2 (emplacement sous la carte) et démarrer la carte en branchant le câble USB-C relié à l’alimentation. Un câble Ethernet doit être branché de votre routeur au port OPiz2, même si vous avez l'intention d'utiliser le Wifi par la suite.

Attendez bien que la diode de la carte passe au vert (indique que le réseau est connecté: la carte a reçu une adresse IP attribuée via DHCP). Une fois fait, il faudra trouver quelle adresse IP a été attribuée par votre routeur à l'OPiz2.


Plusieurs façons de découvrir cette adresse (une de celles ci-dessous devrait vous le permettre :

 

  1. Révélation
    1. Se connecter-à la page web d'administration du routeur, lister les clients (ou les baux DHCP). Chercher soit un bail récent, soit le client avec le nom orangepizero2. Vous aurez alors l'adresse IPv4 (une séquence de 4 nombres séparés par un point, exemple 192.168.1.247) de la carte.
    2. Utiliser l'outil nmap (ou un outil de scanner IP). Analyser votre propre réseau à la recherche de nouveaux périphériques, avec un scan ping. La commande nmap à saisir : «nmap -sP 192.168.1.0/24» (sans les guillemets) ou «nmap -sP 192.168.0.0/16» (si le réseau privé n’est pas 192.168.1.x). La réponse devrait être du genre :
      Nmap scan report for orangepizero2 (192.168.1.247)
      Host is up (0.0015s latency)
    3. Ouvrir un terminal, chercher l'adresse IP de votre ordinateur (ipconfig avec Windows, ifconfig avec Linux). Connaissant votre propre adresse IP, vous avez l’adresse de votre réseau (exemple : IP ordinateur=192.168.1.100 alors réseau= 192.168.1.0). Vous pouvez tenter de «pinguer» les adresses 192.168.1.x (x variant de 1 à 254 moins le nombre correspondant à votre propre adresse). C’est un processus d’essais / erreurs. A un moment vous devriez obtenir une réponse. Il faudra juste vérifier que cela correspond bien à l’OPiz2 (clignotement de la LED verte de celui-ci).

     

Connexion initiale à l'OPiz2



Vous êtes désormais en possession de l'adresse IP de la carte, il faut s’y connecter en SSH. Libre à vous d’utiliser le client qui vous sied (Linux et MacOS, possèdent un client natif : il suffit de taper ssh root@192.168.1.247 (en remplaçant par l'adresse IP de la carte) dans un terminal. Sous Windows, vous pouvez (W10 / W11) également utiliser le client natif (ouvrir un terminal (Invite de commandes) puis ssh root@192.168.1.247 ) ou vous pouvez télécharger Putty et utiliser son interface graphique.

A la première connexion en ssh sur la OPiz2, un message d’avertissement s’affichera. Il faudra accepter l’empreinte de la clé SHA256 avant de pouvoir poursuivre.

NB : Il n'y a pas de compte par défaut autre que 'root' dans l'installation d'Armbian. Après l'installation, les utilisateurs se connectent à l'unité en tant que "root" et sont invités à changer le mot de passe root, puis à créer un nouveau compte utilisateur.

Donc par défaut Armbian accepte l’usager «root» avec le mot de passe «1234». Il faut normalement procéder au changement de ce mot de passe «faible» par un plus «fort». Ce nouveau MDP doit remplir de nombreux critères avant d’être accepté (longueur, caractères autorisés, n’appartenant pas à un mot du dictionnaire, …). Ça m’a vite «énervé», en saisissant plusieurs fois le mot de passe par défaut (j'ai insisté 😉 ), j’ai tout de même accès en tant que «root» (équivalent de Dieu pour les croyants ). 

Pour éviter qu’à la prochaine connexion, Armbian me redemande de modifier le mot de passe, quelques commandes sont nécessaires (et suffisantes, ne pas saisir les parenthèses ni le texte contenu dans celles-ci  😉) :

# pwd (où est-on dans l’arborescence)
# ls -al (afficher le contenu du dossier, normalement /root)
# rm -f .not_logged_in_yet (supprimer ce fichier sinon à la prochaine connexion, il sera demandé de modifier le mdp de root avec les critères vus plus haut)
# echo -e "1234\n1234\n" | (passwd root)

Le mot de passe root initial est désormais «fixé» à «1234» (vous pourrez évidemment le modifier quand vous le voudrez).


Mise à jour du système d'exploitation



Les premières commandes à exécuter permettent de récupérer la dernière version du système d'exploitation et de le mettre à jour.

Révélation

Ne tapez pas le premier $ ou # dans les commandes ci-dessous. $ signifie que la commande doit être lancée par un utilisateur non privilégié, et # signifie que la commande doit être exécutée par l'utilisateur root

 

# apt update
les dépôts logiciels sont consultés pour établir la liste en cours...
# apt upgrade
S’il y a des mises à jour, répondre oui en tapant 'y’ puis patienter le temps que les paquets soient récupérés et installés.


Vous devrez exécuter cette paire de commandes de temps en temps pour maintenir votre système à jour (astuce : on peut effectuer les deux étapes avec une seule ligne en les combinant avec le double ampersand (&&) : apt update && apt upgrade).

 

Avant de poursuivre, on va «localiser» notre système (date et heure, langue, clavier). Plusieurs manières de faire sont possibles, Armbian à l’instar de Raspberry OS, possède un outil de configuration : armbian-config à utiliser en super administrateur («root»). En ligne de commandes, on peut également utiliser les commandes Debian classiques : dpkg-reconfigure

Via armbian-config (date & heure, langue, clavier) :

- Personal / Time Zone

- Personal / Locales

- Personal / Keyboard (n’a pas fonctionné pour moi :(, j’ai dû passer par dpkg-reconfigure keyboard-configuration)

 

Activation du WIFI



Pour activer le WIFI, vous devez rejoindre un réseau WIFI.

  • Exécuter la commande «armbian-config» pour rechercher un réseau WIFI et le rejoindre. Si cela échoue, vous devrez quitter le logiciel, taper sync et redémarrer la carte et réessayer une fois qu'elle aura redémarré.
  • ou bien exécuter la commande nmtui-connect en tant que root pour afficher les points d’accès disponibles. Sélectionner celui auquel on souhaite se connecter, valider, saisir le mot de passe de ce point d’accès.
    nmtui-connect-choix-reseau.jpg.11d276d94cb0a5a34f787c354984c76c.jpgnmtui-connect-saisie-mdp.jpg.08a944ef91cdc663f521839268f972a1.jpg424874814_nmtui-connect-wifi-connect.jpg.91edd7f59b285c0d82e77c92f59bdbd6.jpg

Vérifier que le lien WIFI fonctionne en vous saisissant la commande «ifconfig» qui affichera les cartes réseau possédant une adresse IP. Celle qui nous intéresse est le lien «wlan0»

Avant de débrancher le câble Ethernet, via une nouvelle instance 'ssh' se connecter à l’adresse IP «Wifi» (différente de celle en RJ45 car les adresses MAC des cartes réseau sont normalement différentes): «ssh root@ADRESSE.IP.WIFI.OPiz2»

 

Installation d'Octoprint



Pour installer Octoprint, nous devons d'abord créer un utilisateur à faible privilège, puis lui donner les droits minima requis pour exécuter Octoprint et se connecter à n'importe quel périphérique (imprimante, caméra, etc.).
 

1) Création de l’utilisateur «pi» :
 

# adduser pi

2) Modifications des groupes de «pi» :

# usermod -a -G video, ssh, dialout, tty, sudo  pi

3) On met un mot de passe à cet utilisateur (ici = orangepi) :

# passwd pi

ou
 

# echo -e "orangepi\norangepi\n" | (passwd pi)

4) Installation des paquets nécessaires :
 

# apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential ffmpeg

Quelques vérifications :

# ls /home

Le dossier «pi» doit appartenir à l'utilisateur pi et au groupe pi (pi:pi).

4) A partir de maintenant les opérations seront réalisées en tant qu’utilisateur «pi» , on bascule sur le shell de cet utilisateur :

# su -u pi bash

On vérifie qu’on est bien cet utilisateur :

$ whoami

Où est-on dans l’arborescence du système :

$ pwd

On doit normalement être dans le dossier personnel de «pi» : /home/pi. Si ce n’était pas le cas, se placer dans ce dossier perso :

 

$ cd ~
ou
$ cd /home/pi

On est bien dans un sous-shell pour cet utilisateur pi. Il reste à installer Octoprint. La documentation écrite par @foosel (Gina  Häußge, l’autrice d’Octoprint), bien que prévue pour un Raspberry, indique les étapes à suivre.

1) Création du dossier accueillant Octoprint et déplacement dans celui-ci :

$ mkdir OctoPrint && cd OctoPrint

2) Passage en environnement virtuel pour Python :
 

$ python3 -m venv venv
$ source venv/bin/activate

3) Mise à jour de «pip» :

$ pip install pip --upgrade

4) Installation du paquet Python «Octoprint» :
 

$ pip install octoprint

5) Lancement du serveur :
 

$ ./OctoPrint/venv/bin/octoprint serve

Cette étape (5) est nécessaire. Un dossier caché (.octoprint) est alors créé dans /home/pi. Il contient de nombreux autres dossiers ainsi que le fichier config.yaml, tous nécessaires au bon fonctionnement d'Octoprint.

[Note de foosel à propos de l’environnement virtuel :

Révélation

Un environnement virtuel n'est PAS une machine virtuelle. Considérez-le comme un dossier dédié au logiciel lui-même et à ses dépendances. Il n'y a pas de surcharge de ressources ici, à part une infime quantité de stockage supplémentaire pour certaines copies des binaires Python qui sont minuscules.]

Si tout s'est bien passé lors du lancement de la dernière commande (démarrage du serveur Octoprint), vous devez vous connecter via le navigateur de votre ordinateur à l’adresse: http://adresse.ip.lan_ou_wifi.opiz2:5000 puis suivre les instructions de l'assistant  de configuration de cette page pour finaliser l'installation du serveur Octoprint

Hello world, premier accès :

vap38-orangepi0-2-octoprint-first.thumb.jpg.6398e4736758960ae0a7aad0f33e0e88.jpg

Si la page s’affiche, comme ci-dessus, tout est bon 😉

Pour arrêter le serveur d'impression Octoprint, dans la console appuyer sur Ctrl + C et ensuite Ctrl + D, pour revenir au shell de l’utilisateur «root».

 

Quelques «améliorations» (en tant que maître des lieux soit «root»)

 

S'assurer qu'Octoprint démarre automatiquement lors du démarrage du système en ajoutant un service:

On récupère sur le Github du projet Octoprint ce service et dans la foulée on le déplace à l’endroit adéquat:

# wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service && mv octoprint.service /etc/systemd/system/octoprint.service
# systemctl enable octoprint
# systemctl start octoprint


Vérifiez que vous pouvez à nouveau vous connecter via votre navigateur, et si cela fonctionne, c'est presque terminé !

 

Étapes supplémentaires pour se faciliter encore plus la vie
 

A) Ajouter à Octoprint des «superpouvoirs» (redémarrage automatique, arrêt du système, …). Pour cela, vous devez accorder certains privilèges à l'utilisateur pi. Vous ne voulez pas accorder des droits sudo complets à cet utilisateur (si un bogue ou un exploit se produisait dans Octoprint, votre système serait en danger). La meilleure solution ici est de n'accorder à l'utilisateur pi que les commandes sudo nécessaires.

Plutôt que modifier le fichier /etc/sudoers (à faire via «visudo»), on va ajouter deux fichiers dans le dossier /etc/sudoers,d/


1) Créer un fichier /etc/sudoers.d/octoprint-shutdown (en root) avec le contenu suivant :

pi ALL=NOPASSWD: /sbin/shutdown 

2) Créer un fichier /etc/sudoers.d/octoprint-service (en root) avec le contenu suivant :

pi ALL=NOPASSWD: /usr/sbin/service 

Une dernière commande concerne les droits de ces deux fichiers :

# chmod 0440 /etc/sudoers.d/*

B) Pouvoir utiliser une caméra

En «root» :

# apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake

En «pi» ( =># sudo -u pi bash)

$ cd ~
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ export LD_LIBRARY_PATH=.
$ make

Il ne devrait pas y avoir d’erreurs. Un test avec :

$ ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

devrait retourner quelque chose du genre :

MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: MJPEG
[...]
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

Si une caméra est connectée via le seul port USB, le navigateur pointé sur http://<OPiz2.IP>:8080/?action=stream devrait afficher un flux vidéo.

Si c’est bon, on va automatiser le démarrage du serveur vidéo :

- créer un dossier nommé «scripts» dans le home de pi :

# mkdir /home/pi/scripts

- créer un fichier dans /home/pi/scripts/ nommé webcamDaemon :
 

# touch /home/pi/scripts/webcamDaemon
(plus rapide)
>/home/pi/scripts/webcamDaemon

- éditer ce fichier via nano en recopiant le contenu suivant :

Citation

#!/bin/bash

MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"

# init configuration
camera="auto"
camera_usb_options="-r 640x480 -f 10"
camera_raspi_options="-fps 10"

if [ -e "/boot/octopi.txt" ]; then
source "/boot/octopi.txt"
fi

# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
input=$1
pushd $MJPGSTREAMER_HOME
echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input"
popd
}

# starts up the RasPiCam
function startRaspi {
logger "Starting Raspberry Pi camera"
runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}

# starts up the USB webcam
function startUsb {
logger "Starting USB webcam"
runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}

# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
#vcgencmd version  // A commenter car cette commande est spécifique au Raspberry Pi

# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options

# keep mjpg streamer running if some camera is attached
while true; do
if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
startUsb
elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
startRaspi
fi

sleep 120
done

- enregistrer ce fichier (CTRL+X en répondant Oui ( ou CTRL+O pour enregistrer puis CTRL+X pour Quitter nano) ),

- rendre ce fichier exécutable et faire que 'pi' en soit "propriétaire" via :

chmod +x /home/pi/scripts/webcamDaemon && chown -R pi:pi /home/pi/scripts

- créer un fichier dans /etc/systemd/system/, nommé webcamd.service (nano /etc/systemd/system/webcamd.service) avec le contenu suivant :

Citation

[Unit]
Description=Camera streamer for OctoPrint
After=network-online.target OctoPrint.service
Wants=network-online.target

[Service]
Type=simple
User=pi
ExecStart=/home/pi/scripts/webcamDaemon

[Install]
WantedBy=multi-user.target

- Recharger les services puis activer et démarrer ce nouveau service ::

# systemctl daemon-reload
# systemctl enable webcamd
# systemctl start webcamd

Pour pouvoir arrêter / démarrer ce service via Octoprint, il faut ajouter la section suivante dans le fichier config,yaml (dans le dossier caché ,octoprint => /home/pi/.octoprint/config.yaml)

Citation

system:
actions:
- action: streamon
command: sudo systemctl start webcamd
confirm: false
name: Start video stream
- action: streamoff
command: sudo systemctl stop webcamd
confirm: false
name: Stop video stream

Rendre Octoprint accessible via le port 80 au lieu de 5000

 

Le mieux est d’utiliser «haproxy» en tant que proxy inverse plutôt que configurer Octoprint tournant sur le port 80 (serveur Web).

Pourquoi ?

Révélation

OctoPrint n'a pas besoin de s'exécuter avec les privilèges de l'utilisateur root, ce qui serait nécessaire pour pouvoir se lier au port 80 à cause des restrictions des ports privilégiés de Linux.
Vous pouvez également rendre mjpg-streamer accessible sur le port 80.
Vous pouvez ajouter l'authentification à OctoPrint.
Selon la version de HAProxy, vous pouvez également utiliser SSL pour accéder à OctoPrint.

- installer haproxy :

# apt install haproxy

- modifier le fichier de configuration /etc/haproxy/haproxy.cfg avec le contenu suivant ::

Citation

global
     maxconn 4096
     user haproxy
     group haproxy
     daemon
     log 127.0.0.1 local0 debug

defaults
     log global
     mode http
     option httplog
     option dontlognull
     retries 3
     option redispatch
     option http-server-close
     option forwardfor
     maxconn 2000
     timeout connect 5s
     timeout client 15m
     timeout server 15m

frontend public
     bind :::80 v4v6
     use_backend webcam if { path_beg /webcam/ }
     default_backend octoprint

backend octoprint
     option forwardfor
     server octoprint1 127.0.0.1:5000

backend webcam
     http-request replace-path /webcam/(.*) /\1
     server webcam1 127.0.0.1:8080

Ainsi, Octoprint sera accessible via http://<Opiz2.IP>/ et le flux de la Webcam sera accessible via http://<Opiz2.IP>/webcam/

Pour que tout fonctionne, il faudra modifier le fichier /etc/default/haproxy en ajoutant la ligne ENABLED=1 (ne semble plus une étape nécessaire)

- activer puis lancer le service haproxy :

# systemctl enable haproxy
# systemctl start haproxy

Il ne restera plus qu'à ajouter dans la configuration d’Octoprint les chemins d’accès dans la section «Caméra et Timelapses» (pour le flux : /webcam/?action=stream , pour les clichés : http://127.0.0.1:8080/?action=snapshot ).

 

Dernières «améliorations» non indispensables mais probablement pratiques

 

La carte OPiz2 comme d’autres cartes d’OrangePi, possède un connecteur GPIO (deux en fait).

Armbian gère un peu différemment ces broches par rapport au Raspberry Pi.

Avec «Raspbian», les fichiers /dev/gpiochip0 (ou 1) appartiennent à root et au groupe gpio et ont pour droits crw-rw----- (0660)

Avec «Armbian», les fichiers /dev/gpiochip0 (ou 1) appartiennent à root et au groupe root et ont pour droits crw-------- (0600)

Pour fixer ceci et permettre qu’un éventuel greffon Octoprint utilisant les gpio fonctionne, il faut effectuer quelques modifications :

- créer un groupe gpio et ajouter l’utilisateur pi à celui-ci :

# groupadd gpio
# usermod -aG gpio pi

- vérifier que le groupe a bien été créé ainsi que ses membres :

# getent group | grep gpio

- créer des régles UDEV avec les bonnes «ACLSs» :

# >/etc/udev/rules.d/96-gpio.rules 
(ou)
# touch /etc/udev/rules.d/96-gpio.rules

- ajouter le contenu suivant via

# nano /etc/udev/rules,d/96-gpio.rules

 

Citation

# /etc/udev/rules.d/96-gpio.rules
    SUBSYSTEM=="gpio\*", PROGRAM="/bin/sh -c \
    chown -R root:gpio /sys/class/gpio && chmod -R 0770 /sys/class/gpio &&\
    chown -R root:gpio /sys/devices/platform/sunxi-pinctrl/gpio && chmod -R 0770 /sys/devices/platform/sunxi-pinctrl/gpio"
    SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"

- sauvegarder le fichier précédent, et recharger ces règles UDEV :

# udevadm control –reload-rules && udevadm -trigger

Si tout s’est bien déroulé, les droits et appartenances des périphériques «gpio» devraient être identiques à ceux d’un Raspberry :

pi@armbian:~$ ls -l /dev/gpiochip*
crw-rw---- 1 root gpio 254, 0 Dec 28 19:16 /dev/gpiochip0
crw-rw---- 1 root gpio 254, 1 Dec 28 19:16 /dev/gpiochip1

Les greffons Octoprint faisant appel aux gpios devraient fonctionner à condition d’utiliser les bonnes déclarations (différents d’un Rpi ;-) ), à vérifier sur le site du fabricant en fonction du modèle.
Diagramme des broches (pins) de l’OPiz2 :
opiz2-pinout-diagram.jpg.90028a4090c5ab9c18789abe87c67b51.jpg

 

Dernière «amélioration», permettre l’accès au contenu du dossier «pi» à partir d’un ordinateur du réseau

Cela n’a rien d’obligatoire mais c’est bien pratique. Pouvoir accéder au contenu du dossier «pi» via le protocole SAMBA, en tapant l’adresse IP de la carte dans l’explorateur (ex : \\192.168.1.247).
Pour cela, il faut ajouter quelques logiciels :

#  apt install samba cifs-utils smbclient

Ensuite modifier le fichier /etc/samba/smb.conf :

# nano /etc/samba/smb.conf

en ajoutant en fin de fichier :

Citation

 

[pi]

path =/home/pi

valid users = pi

read only = no

browseable = yes

 

Pour prendre en compte ces modifications :

# systemctl reload smbd
# systemctl status smbd

Ne pas oublier d’ajouter l’utilisateur «pi» à Samba en lui mettant un mot de passe («orangepi» identique à celui fixé précédemment mais il pourrait être différent, Windows le demandera à la première connexion sur le partage) :

smbpasswd -a pi (ou "echo -e "orangepi\norangepi\n" | (smbpasswd pi)" )

CONCLUSION

Une fois toutes ces étapes réalisées, Octoprint est pleinement fonctionnel, en tout cas pour moi.

L’ajout de quelques greffons permet d’améliorer l’affichage :

octoprint-vap38.thumb.jpg.7fec0c395059d2bf10a75806c3e4e533.jpg

Une fois l’imprimante connectée en USB sur la carte OPiz2 (à noter que la Webcam ne s’affiche plus car je n’ai pas le Hat USB donc c’est comme au restaurant «fromage ou dessert» (le OU exclusif pour les amateurs de mathématiques)) :

1277189851_octoprint-vap38-cnx-wifi-imprimante-connecte.thumb.jpg.05fd21c24ada09d27e1a2b2ea25a89fe.jpg

Les greffons ajoutés sont UI customizer, Dashboard, Resource Monitor, Auto Login Config, Multiple Upload.

En espérant que ce document pourra être utile à ceux voulant se lancer avec cette carte Orange Pi Zéro 2

<EDIT>

J'ai oublié de parler de la sauvegarde de la carte SD, une fois tout paramétré et fonctionnel.

Comme sur la plupart de mes matériels informatiques, je fais régulièrement des sauvegardes (pour le cas où 😉 ). Pour réaliser des copies du contenu de mes cartes SD (ou clé USB ou disques durs éventuellement), j'utilise avec Windows le programme ImageUSB (lien vers l'éditeur officiel). L'avantage de ce programme est de ne pas avoir besoin d'être installé sur le matériel d'où l'on effectue la copie ( plus d'infos => ici , et encore ).

Révélation

ImageUSB est un utilitaire gratuit qui vous permet d'écrire une image simultanément sur plusieurs clés USB. Capable de créer des copies exactes au niveau du bit des clés USB (UFD), ImageUSB est un outil extrêmement efficace pour la duplication en masse des UFD. ImageUSB supporte également l'écriture d'un fichier ISO octet par octet directement sur une clé USB (*). ImageUSB peut également être utilisé pour installer OSFClone sur une clé USB pour une utilisation avec PassMark OSForensics™.

Contrairement aux autres outils de duplication USB, ImageUSB peut préserver tout l'espace inutilisé et libre pendant le processus de clonage, y compris le Master Boot Record (MBR). ImageUSB peut effectuer des duplications de masse sans faille de toutes les images UFD, y compris les UFD amorçables.

ImageUSB comprend une fonctionnalité permettant de mettre à zéro une clé USB. Cela remplacera le contenu de l'ensemble du lecteur par des 0. Ou alternativement pour simplement remettre à zéro les entrées MBR et/ou GPT qui existent sur le lecteur. En outre, imageUSB a la capacité de reformater même les lecteurs difficiles à formater et de récupérer tout l'espace disque qui a pu être perdu auparavant.

(*) Les images ISO de CD utilisent un système de fichiers différent de celui des clés USB. Ainsi, l'image directe du système de fichiers ISO9660, Joliet ou UDF, à partir d'un CD, vers une clé USB, peut ne pas permettre à la clé USB de fonctionner dans tous les systèmes d'exploitation. Un reformatage peut toutefois permettre de récupérer le disque. A partir de la V1.5, imageUSB supporte maintenant l'extraction du contenu ISO sur le lecteur USB.

Avertissement : En raison de la nature médico-légale de la duplication d'image par ImageUSB, veuillez vous assurer que vous sélectionnez des UFDs avec une taille de stockage similaire à l'image que vous souhaitez dupliquer. Par exemple, si une image de 2 Go est copiée sur une clé USB de 8 Go, le lecteur ne pourra utiliser que deux des huit gigaoctets d'espace de stockage. Dans ce scénario, les utilisateurs devront reformater la clé USB afin d'accéder au reste de l'espace de stockage.
*** Traduit avec www.DeepL.com/Translator (version gratuite) ***

Une fois la copie de l'image de la carte faite, un coup de 7zip (extension .7z) permet de réduire drastiquement la taille initiale de l'image (= taille de la carte SD) sans évidemment perte de données 😉 )

J'ai donc une copie (en fait plusieurs en fonction des étapes de configuration du système) qui sont toutes de moins d'un giga octets avec ma carte SD de 16Go  (taille de fichier trop importante pour les capacités du forum mais que je pourrais éventuellement mettre à disposition via un lien de partage de fichiers).

D'ici quelques temps, je mettrai à disposition quelques scripts permettant d'accélérer les étapes de création du système (n'ayant plus la carte OrangePi Zero 2, retournée chez son propriétaire, la mienne devrait arriver d'ici quelques semaines pour tester et vérifier le bon fonctionnement des scripts d'installation).

L'installation via des scripts, c'est >>> ici <<<

🙂

Modifié (le) par fran6p
  • J'aime 2
  • Merci ! 9
Lien vers le commentaire
Partager sur d’autres sites

Waouh ! beau travail ! Merci !


Je me dis que faire un ou plusieurs scripts pour automatiser tout ça ne va pas être simple...
il semble donc indispensable de ne pas oublier de faire une copie de sauvegarde de la carte SD lorsque tout fonctionne.

Modifié (le) par PPAC
  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 28 minutes, PPAC a dit :

Je me dis que faire un ou plusieurs scripts pour automatiser tout ça ne va pas être simple...

C'est prévu 😉

J'étais dans l'urgence pour finir d'écrire la procédure et j'ai oublié tout à la fin de parler de la sauvegarde de la carte SD, une fois «préparée» ( j'utilise le logiciel imageusb utilisé comme outil «forensics» pour réaliser une copie à l'identique du support (j'ai plusieurs images de l'OPiz2 mais mêmes compressées elles avoisinent le giga octet).

Le sujet sera donc complété 😄

  • J'aime 2
Lien vers le commentaire
Partager sur d’autres sites

Help ! j'ai  réalisé un TP installer  Armbian pour faire fonctionner Octoprint sur une  nouvelle carte vierge.
je suis arrivé à installer Octoprint dans le bon dossier OctoPrint/venv/bin/octoprint  quand je lance la commande serve  çà ne fonctionne pas !  (no found) je ne comprend pas j'arrive à pinguer l'adresse IPde la connexion réseau filaire et de la WIFI.
J'ai détecté que la commande usermod relève un erreur en me disant que l'option video n'est pas valide ?
Bon je patine et çà m'énerve j'ai l'impression de découvrir un système capricieux et difficile à dompter.
Bon je reformate la carte SD pour repartir à zéro.
Je pense que les scripts doivent faciliter les saisies au clavier.
La carte SD qui fonctionne avec Octoprint ne donne pas l'accès au paramétrage de la WIFI dans SSH (l'option dans réseau WIFI n'apparait pas ?)
la commande  nmtui-connect ne permet pas d'afficher les SSDI des réseaux WIFI ?
a+ 

Modifié (le) par vap38
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Super idée le tuto 😍, par contre il faut un câble USB particulier au niveau de l’alimentation de 5V de celui-ci ?, si oui comment faire pour ce câble, sans passer par la mise d'un bout d'isolant sur la broche +5V.

Merci

@+

Charles

Modifié (le) par hcl28
Lien vers le commentaire
Partager sur d’autres sites

il faut une alimentation 5V type téléphone avec une connectique de type C
a+

Lien vers le commentaire
Partager sur d’autres sites

Pour l'alimentation de la carte, câble USB type C, alimentation 5V/2A (mini)

Pour relier l'imprimante à la carte afin de pouvoir la piloter, il est préférable en effet d'utiliser un câble «spécial» n'utilisant que le GND et les fils pour les données (prise USB type A côté carte sur son unique connecteur USB).

Soit en coupant le 5V du câble, soit en mettant un tout petit morceau de scotch sur la patte 5V ou en fabricant un «adaptateur» (avec des modules mâle / femelle et en ne soudant pas le +5V) ou encore en en achetant un tout fait (par exemple).

🙂

Lien vers le commentaire
Partager sur d’autres sites

hello la Wifi n'est toujours pas opérationnelle malgré le tuto, les commandes nmtui-connect ne permet d'ajouter les paramètres WIFI ?
c'est la galère, je patine dans la choucroute.
Pour la deuxième installation je vais uniquement saisir les commandes au clavier je verrai bien!
je vais reformater une nouvelle carte bis 😃
la première carte fonctionne bien sans la wifi ! je pense qu'il faut réinstaller la carte 1
qu'en penses tu j'ai refait un update et upgrade sans une éventuelle réparation...

Lien vers le commentaire
Partager sur d’autres sites

Après avoir supprimé les fichiers présents dans /etc/NetworkManager/conf.d/ ou /etc/NetworkManager/system-connections/ (je ne sais plus où sont stockés les configurations Wifi 😞 ) où j'avais modifié celui fonctionnel de mon point d'accès Wifi pour en créer un manuellement avec tes paramètres, peut-être (probablement) que cela a mis le «footware».

Une fis ces fichiers donc supprimés, retenter nmtui-connect ou paramétrer le Wifi en ligne de commande:

En ligne de commandes pour ajouter une connexion Wifi c'est nmcli

nmcli device wifi connect <SSID> password <wifipwd>

En remplaçant <SSID> par l'identifiant SSID de ton Wifi et idem pour <wifipwd> par le bon MDP

Ce serait bien qu'on regroupe les messages dans un même endroit car là j'ai un peu de mal à suivre (mail perso, mail forum, SMS et ce fil 😉 ).

🙂


PS: Pourrais-tu m'envoyer en MP le fichier NetworkManager.conf que j'y jettes un œil car il contient probablement des données «parasites».

Modifié (le) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,
je suis arrivé à installer OCTOPRINT avec quelques difficultés dans la syntaxe des commandes qui sont nombreuses !
@fran6p travaille comme un chef il doit réaliser des scripts pour faciliter l'installation.
Et oui il ne faut rien oublier surtout dans le protocoles des commandes ce n'est pas évident.

La tâche est assez longue et il faut se familiariser avec les commandes dans un Shell et connaitre un peu les commandes LINUX 😃
Après avoir formatté 3 fois ma carte SD çà fonctionne ont dit toujours jamais deux sans trois c'est bien vrai 😜

Je viens de faire des tests de connexion avec mon imprimante A20 tout fonctionne parfaitement, sauf que je dois équiper la carte d'une caméra en port USB.
L'installation des pluggins fonctionnent sauf qu'il éteindre et rallumer la carte pour que le système d'active normalement.
En conclusion cette carte est rapide discrète et beaucoup moins chère qu'une RABSBERRY PI;  la carte Orangepizero2  ne prends pas de place et elle fonctionne avec une simple alimentation 5V.
la prochaine étape quelques aménagement dans Octoprint avec une version Française.
a+
 

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, vap38 a dit :

Octoprint avec une version Française.

La version que je t'avais installé l'était (en français). Les fichiers de localisation de mon dépôt fonctionnent avec la version actuelle d'Octoprint ( 1.7.3) en attendant la release proche (1.8.0).

Lien vers le commentaire
Partager sur d’autres sites

Bonjour
j’ai installé OCTOPRINT sur le système ARMBIAN sur la carte orangepi zero2.

Tout fonctionne très bien je peux lancer une impression à une imprimante connectée via un fichier GCODE de la carte SD.

J’utilise Ideamaker pour uploader mes fichiers GCODE, j’ai bien configure IDEA avec la bonne adresse ip et le code API attribué par Octoprint.

voici mon problème quand je veux uploader un gcode j’obtiens une erreur le serveur n’est pas connecté code erreur 16496.
j’ai cherché dans les configurations de Octoprint impossible à régler ce problème.
Ma liaison série fonctionne bien à 115200 bauds je peux piloter l’imprimante sans problème.
Je suis allé sur le forum Octoprint pas de réponse sur le sujet !

Je confirme que je peux Uploader un fichier Gcode  via une carte SD vers un dossier Octoprint et ensuite imprimer sans problème.
J'ai vérifier les paramètres de OCtoprint rien de parlant; le code API de Octoprint et l'adresse IP est similaire des deux cotés

Merci de votre aide ! bon il me faut virer ce lutin dans le système. 😄
Nota le réseau WIFI fonctionne. 

 

Je me réponds, j'ai trouvé la solution Ideamaker demande l'adresse URL pour se connecter sur mes autres carte Rapsberrys l'adresse iP suffisait pour se connecter !
cette fois avec la carte orangepizero2 il faut écrire l'adresse compléte de l'URL en exemple http://192.168.1.26:5000/
l'URL fonctionne et tout est opérationnel....

erreur16496.jpg

Modifié (le) par vap38
Lien vers le commentaire
Partager sur d’autres sites

Bonjour, @fran6p
Voici un boitier avec son couvercle pour inclure l'orangepizero 2 la base + le couvercle incluant le module complémentaire 2 prises USB + audio.
le boitier comporte un évent pour le montage d'un mini ventilateur 5 volts 25x25x7.
Pour l'instant l'imprime le boitier si j'ai une erreur de cotes je modifie les fichiers STL ont ne sait jamais.
a+

base.STL couvercle.STL

Modifié (le) par vap38
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

@hcl28 je n'ai pas pré-percé les trous  de la base pour visser le couvercle selon les vis utilisées soit des  vis M3 en têtes fraisées !

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, vap38 a dit :

cette fois avec la carte orangepizero2 il faut écrire l'adresse compléte de l'URL en exemple http://192.168.1.26:5000/

Cool que finalement tout fonctionne 😉

Normalement si tu as installé Haproxy et modifié son fichier de configuration, tu dois pouvoir accéder directement à http://192.168.1.26

Une URL complète, normalement comporte le protocole de communication (http:// ou https:// ) puis le nom du site (adresse IP ou nom DNS) et éventuellement des «compléments».

C'est probablement à cause / la faute aux navigateurs (dans un soucis de «faciliter» la vie de l'utilisateur (en lui cachant ce qu'il ne doit pas savoir (ou qu'il ne sait)) 😞😏) qui autorisent la saisie de la partie de l'adresse sans le protocole en considérant (en faisant donc le choix pour l'utilisateur) que le protocole est celui du Web: Internet ne se résume pas qu'au Web 😱

Un navigateur permet d'accéder à d'autres protocoles (ftp:, mailto:, et autrefois gopher:, …).

🙂

Lien vers le commentaire
Partager sur d’autres sites

il y a 46 minutes, hcl28 a dit :

Est il possible de faire fonctionner la carte avec le port réseau RJ45 sans passer par le wifi ?

Toutafé, c'est possible

🙂

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Est il possible de faire fonctionner la carte avec le port réseau RJ45 sans passer par le wifi ?

Merci

J'ai une erreur au niveau du test pour la webcam.

pi@orangepizero2:~/mjpg-streamer/mjpg-streamer-experimental$ ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: -1
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
ERROR opening V4L interface: No such file or directory
 i: init_VideoIn failed

Faut il que la webcam soit branché sur un port USB ?

Merci

J'ai un problème de droits sur les ports de com :

 Permission denied: '/dev/ttyUSB0'' @ comm.py:_open_serial:3775

Que faut il faire ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, hcl28 a dit :

Faut il que la webcam soit branché sur un port USB ?

C'est mieux évidemment mais pas nécessaire pour tester le fonctionnement de mjpg-streamer 😉

Se placer dans le dossier :

cd /home/pi/mjpg-streamer/mjpg-streamer-experimental

Puis lancer la commande :

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"
il y a une heure, hcl28 a dit :

J'ai un problème de droits sur les ports de com :

L'utilisateur (pi) qui accède au port série fait bien partie des groupes «tty» et «dialout» ?

🙂

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Petit retour sur Octoprint sur un Orange Pi Zero 2, cela fonctionne super bien, pas de problème, juste pas essayer le webcam pour le moment, je fait que je puisse transférer les Gcodes depuis IdeaMaker vers OctoPrint est un vrais plus.

Voila

@+

Charles

Le 13/04/2022 at 11:37, vap38 a dit :

Bonjour, @fran6p
Voici un boitier avec son couvercle pour inclure l'orangepizero 2 la base + le couvercle incluant le module complémentaire 2 prises USB + audio.
le boitier comporte un évent pour le montage d'un mini ventilateur 5 volts 25x25x7.
Pour l'instant l'imprime le boitier si j'ai une erreur de cotes je modifie les fichiers STL ont ne sait jamais.
a+

base.STL 547 Ko · 6 downloads couvercle.STL 127 Ko · 6 downloads

Bonjour @vap38

Le petit ventilateur tu las trouvé sur Amazon  ?, tu le branche ou sur la CM,

Merci

Modifié (le) par hcl28
Lien vers le commentaire
Partager sur d’autres sites

@hcl28voici le lien du ventilo ventilateur 5v 25x25x7 mm 
voici les pins Orangepizero 2
Question qu'elle la référence de la Webcam qui fonctionne bien en USB ?

orangepizero2.jpg

Modifié (le) par vap38
Lien vers le commentaire
Partager sur d’autres sites

Mes Logitech C270 fonctionnent très bien. Les deux Papalook également

Par contre la Papalook a vu son prix fortement augmenter 😞

Quand je les ai acheté :

papalook-amazon.thumb.jpg.2e6f6181a79fdec61100ea63c5be012c.jpg

Aujourd'hui ( +30€ et encore c'est une «promotion» 😉 ) :

papalook-amazon-20220424.thumb.jpg.24fe246cc78e158c3499fa0bb1c8124f.jpg

@vap38j'ai reçu hier mon OPiz2 avec son add-on USB, ton boitier est parfait pour accueillir le tout.

Je testerai dans la semaine mes scripts permettant de réaliser une installation quasi automatique.

🙂

Lien vers le commentaire
Partager sur d’autres sites

Vous mettez quoi comme ligne de commande pour éteindre le serveur Octoprint depuis l'interface web de celui-ci, j'ai essayé shundow, mais cela ne semble pas réaliser ce que je veux.

Merci

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...