Site icon Les Imprimantes 3D .fr

Tutoriel : installer une webcam Logitech sur une Creality Ender-3 V3 KE

tutoriel webcam camera creality ender 3 v3 ke klipper

Par défaut, l’imprimante Creality Ender-3 V3 KE ne semble pouvoir utiliser que la caméra Nebula du constructeur. Grâce à la communauté des makers autour de Klipper, il est maintenant possible d’utiliser une webcam d’une autre marque sur une Ender 3 V3 KE.

C’est tout d’abord grâce au firmware v1.1.0.12 de l’imprimante qui offre désormais d’un mode “root” et à des messages de “destinal” sur ce Reddit et ce Discord, ainsi qu’à l’utilisation du “Helper Script Installation” de Guilouz, que j’ai finalement trouvé comment faire fonctionner ma webcam USB Logitech C170 sur mon Ender-3 V3 KE.

Lire le test de la Creality Ender-3 V3 KE

Voici une capture d’écran de l’interface web “Creality Print” et une photo du NebulaPad avant d’appliquer la procédure ci-dessous. La caméra Logitech n’est pas reconnue.

Ici, une autre capture d’écran de cette même interface et une photo de la webcam Logitech ayant son témoin allumé, preuve du bon fonctionnement de l’ensemble après avoir appliqué les actions détaillées dans ce tutoriel.

Pour faire plus simple, il existe donc la webcam Nebula qui apporte d’autres fonctionnalités qu’uniquement avoir une vue en direct du plateau d’impression mais cela implique d’acheter une caméra que vous possédez peut-être déjà. D’autres webcams existent pour apporter le support du réseau WiFi à une imprimante qui n’en est pas équipée, comme la Mintion Beagle V2 (lire le test Beagle V1).

Clause de non-responsabilité

Bien prendre en note que je me décharge de toutes responsabilités. Suivez ce tutoriel à vos risques et périls. Je ne pourrais être tenu pour responsable en cas de problèmes.

Pre-requis à ce tutoriel

En premier lieu, il faut avoir mis à jour le firmware de la Ender3 V3 KE en v1.1.0.12 et avoir accepté la clause de non-responsabilité de Creality si l’on utilise le mode “root”.

Avoir connecté son imprimante à un réseau Wi-Fi et connaitre l’adresse IP de l’imprimante sur le réseau local.

Dans la suite de ce tuto, j’utilise l’adresse IP “192.168.1.23” que le serveur DHCP de ma box internet a automatiquement associé à mon imprimante.

Il vous faudra donc vérifier l’adresse IP associée à votre machine et adapter cette information dans certaines commandes de la suite de mon tuto.

Ce tutoriel est aussi disponible sur mon GitHub ainsi que sur le forum. Le forum est aussi le lieu idéal pour échanger à ce sujet et pourquoi pas réussir à connecter une webcam USB sur une autre imprimante 3D.

Se connecter en SSH à la Creality Ender 3 V3 E

J’utilise ici la console d’un Terminal sous un système Ubuntu. Sous Windows, regarder pour installer un client SSH comme par exemple MobaXterm.

ssh root@192.168.1.23

ou

ssh 192.168.1.23 -l root

Lors d’une première connexion SSH à l’imprimante par votre client SSH, il faudra accepter la clé d’hôte.

On renseigne le mot de passe par défaut du compte “root” de Creality :

Creality2023

Une fois connecté en SSH, une bonne pratique est de changer le mot de passe “root” par un password personnalisé, avec la commande :

passwd

Il faut ensuite taper le nouveau mot de passe.

Installation de Entware

Télécharger et exécuter le “Helper Script Installation” de Guilouz afin d’installer Entware sur l’imprimante.

git clone https://github.com/Guilouz/Creality-Helper-Script.git /usr/data/helper-script
sh /usr/data/helper-script/helper.sh

Mise à jour du 11/03/2024 :
Depuis la publication de ce tutoriel, Guilouz a fait quelques changements. J’ai normalement adapté les liens, instructions et commandes qui ont changé mais certaines captures d’écrans (installation et exécution du “Helper Script” de Guilouz) et éventuellement certains commentaires, ne sont plus adaptés et donc à ignorer ou à adapter pour fonctionner avec la nouvelle version du “Helper Script” de Guilouz.

Ce script est normalement à utiliser avec des imprimantes K1, K1C ou K1 Max mais l’écran Nebula Pad sous Creality OS de la Ender 3 V3 KE est proche de celui de la série K. De nombreuses fonctions de ce script sont compatibles avec une Ender-3 V3 KE firmware v1.1.0.12 mode root activé.

Un grand merci à Guilouz pour le superbe travail qu’il a réalisé. Son script va grandement simplifier le travail avec sa méthode pour installer Entware.

Il est a priori possible de mettre à jour le script si la question est posée lors de son exécution.

Ignorer l’avertissement sur la version minimum du firmware, les versions de firmwares sur les K1, K1C et K1 Max ne sont pas les mêmes que sur la Ender-3 V3 KE. J’ai testé la version 4.4.1 du “Helper Script Installation” sur une Ender-3 V3 KE avec un firmware v1.1.0.12, sans rencontrer de problème.

Taper alors “1” suivi de la touche Entrée pour aller au menu d’installation.

Dans le menu d’installation, saisir le chiffre adapté (“5” dans notre exemple), valider et taper “y” pour installer Entware.

Après l’installation de Entware et être revenu au menu d’installation, taper “q” suivi de la touche Entrée pour quitter le script d’installation.

Afin que la variable d’environnement PATH soit à jour, on peut utiliser la commande suivante :

export PATH="/opt/bin:/opt/sbin:$PATH"

Installation des paquets avec opkg

On peut maintenant utiliser la commande “opkg” (fourni par Entware) pour installer les paquets suivants :

opkg install mjpg-streamer
opkg install mjpg-streamer-input-uvc
opkg install mjpg-streamer-output-http

Afin de naviguer ultérieurement dans l’arborescence et pouvoir manipuler les fichiers de l’imprimante, exécuter également cette commande pour installer un serveur SFTP :

opkg install openssh-sftp-server; ln -s /opt/libexec/sftp-server /usr/libexec/sftp-server
Acheter une webcam USB Logitech C270

Configuration pour une webcam non Creality sur Ender 3 V3 KE

Après avoir connecté la webcam sur un port USB du NebulaPad de la Ender KE, vérifier qu’on la retrouve dans le résultat de cette commande :

lsusb

Vérifier que v4l (video for linux) trouve alors un périphérique vidéo :

v4l2-ctl --list-devices

Pour n’avoir que le/les périphériques vidéos dont on a besoin ici :

v4l2-ctl --list-devices|grep -A1 usb|sed 's/^[[:space:]]*//g'|grep '^/dev'

Dans mon cas cela retourne “/dev/video4”.

Pour connaitre les résolutions et formats disponibles pour ce périphérique vidéo (ici “/dev/video4” mais cela peut changer chez vous donc commande suivante à adapter aux besoins) :

v4l2-ctl -d /dev/video4 --list-formats-ext

Enfin, adapter le script “multi-non-creality-webcams.sh” et le mettre en temps que “/etc/init.d/S50non_creality_webcam” ou copier/coller le bloc suivant pour créer un fichier “/etc/init.d/S50non_creality_webcam” adapté à ma Logitec C170 (changement de la résolution cf “-r 640×360”).

cat > /etc/init.d/S50non_creality_webcam<<'===EOF==='
#!/bin/sh
# S50non_creality_webcam - by destinal
# Start up mjpg-streamer on port 8080 for non-creality cameras (where cam_app doesn't autostart)

# Notes de PPAC :
## Source de la version original de ce script :
# https://openk1.org/static/k1/scripts/multi-non-creality-webcams.sh
## pré-requis 
# - le résultat d'un "lsusb" doit avoir une ligne en plus quand on branche la Webcam sur l'un des ports USB du NebulaPad.
# - installer Entware via le script de Guilouz pour avoir la commande "opkg" cf https://github.com/Guilouz/Creality-K1-and-K1-Max/wiki/Entware
# - opkg install mjpg-streamer
# - opkg install mjpg-streamer-input-uvc
# - opkg install mjpg-streamer-output-http
# - Adapter la resolution cf argument '-r' de mjpg_streamer ( cf "v4l2-ctl --list-devices|grep -A1 usb|sed 's/^[[:space:]]*//g'|grep '^/dev'" et "v4l2-ctl -d /dev/video4 --list-formats-ext" )
# Fin des notes de PPAC.

case "$1" in
  start)
    # V4L_DEV=$(v4l2-ctl --list-devices|grep -A1 usb|tail -1|sed 's/^[[:space:]]*//g')
    V4L_DEVS=$(v4l2-ctl --list-devices|grep -A1 usb|sed 's/^[[:space:]]*//g'|grep '^/dev')
    CREALITY_CAMS=$(v4l2-ctl --list-devices|grep CREALITY|wc -l)
    if [ "x$V4L_DEVS" = "x" -o $CREALITY_CAMS -gt 0 ]; then
      echo "No third party webcams found or we have a creality camera. Bailing!"
      exit 1
    fi

    # Otherwise we're all set up and have a device ID
    PORT=8080
    for V4L_DEV in $V4L_DEVS; do
      /opt/bin/mjpg_streamer -b -i "/opt/lib/mjpg-streamer/input_uvc.so -d $V4L_DEV -r 640x360 -f 15" -o "/opt/lib/mjpg-streamer/output_http.so -p $PORT"
      PORT=`expr $PORT + 1` 
    done
    ;;
  stop)
    killall mjpg_streamer
    ;;
  restart|reload)
    "$0" stop
    "$0" start
    ;;
  *)
    echo "Usage:"
    echo "    $0 {start|stop|restart}"
    exit 1
esac

exit $?
# Fin de mon ficher /etc/init.d/S50non_creality_webcam
===EOF===

Rendre exécutable le fichier “/etc/init.d/S50non_creality_webcam” fraîchement créé :

chmod u+x /etc/init.d/S50non_creality_webcam

Lancer le service “/etc/init.d/S50non_creality_webcam” :

/etc/init.d/S50non_creality_webcam restart

En principe, s’il n’y avait pas de flux vidéo déjà servi par “/opt/bin/mjpg_streamer”, cela affiche un message car la commande “killall mjpg_streamer” ne tue aucun processus. C’est normal.

Le résultat attendu

On doit à présent obtenir un flux vidéo à l’adresse IP de la caméra sur l’URL suivante :

http://192.168.1.23:8080/?action=stream

Ainsi que sur l’interface web de “Creality Print” :

http://192.168.1.23/#/home

Il est normal d’obtenir un genre de message d’erreur à l’URL http://192.168.1.23:8080/ car l’on n’utilise pas l’URL complète.

Sous l’interface web de Mainsail (http://192.168.1.23:4409) si installé, il peut y avoir besoin de créer, ou de supprimer et recréer, une webcam avec la config suivante :

Supports pour Logitech C170 / C270 et Ender 3 V3 KE

Dans l’exemple de la webcam Logitech C270, plusieurs modèles 3D sont disponibles pour lui créer un support de fixation sur la Ender-3 V3 KE :

Le plus grand forum français de l'impression 3D
Quitter la version mobile