Aller au contenu

Messages recommandés

Posté(e) (modifié)

Test de la caméra de buse de Mintion

La Mintion Nozzle Camera (NZC) est spécialement conçue avec un objectif autofocus et deux LED pour observer l'impression de la première couche pour l'impression 3D. Grâce à cette caméra, on peut observer comment le filament s'écoule, surveiller l'adhérence des couches et obtenir un diagnostic d'extrusion.

De plus, en collaboration avec Obico, un fournisseur de détection intelligente (IA) connu dans le domaine de l'impression 3D, cette caméra de buse facilite l'accès à l'observation de la première couche, Obico se chargeant de détecter les problèmes éventuels.

Solution évitant le recours à un système LIDAR.

Prérequis

  • une imprimante fonctionnant avec Klipper ou utilisant Octoprint avec un ordinateur monocarte (Small Board Computer / SBC).
  • une pièce support pour maintenir la caméra au plus près de la buse

Installation

La caméra est livrée avec un câble USB (USB-A Mâle côté SBC, prise quatre broches Picoblade MX)

USB-cable.thumb.png.b06fa622eed114f3b6538658722feda9.png

La caméra est reliée à une mini carte via une nappe plutôt longue (≃20cm), ce qui permet de déporter le PCB de la buse. Cette caméra est munie de deux LEDs blanches três lumineuses permettant d'éclairer la zone à observer.

camboard.png.0c7151772321862faa7ccd2d372e9b54.png

Mon imprimante Qidi X-Max 3 utilise un système d'exploitation récent (Armbian Bookworm) avec les versions «officielles» de l'écosystème Klipper (Moonraker, Crowsnest, Fluidd / Mainsail, …).

Les caméras sont gérées via Crowsnest (version 4). Leur configuration utilise le fichier crowsnest.conf

La première étape consiste à connecter la caméra sur un port USB libre et vérifier qu'elle est bien détectée:

lsusb.jpg.2db50d3e457316670a13682ea8699bb9.jpg

En plus de ma première caméra (celle de Qidi) d'ID 1bcf:0b09, celle de Mintion est détectée (ID 0c45:6360)

Quel périphérique vidéo a été détecté ?

Un ls -l /dev/video apporte quelques infos mais insuffisantes 😉

mks@mkspi:~$ ls -l /dev/video*
crw-rw---- 1 root video 81, 0 28 juil. 13:17 /dev/video0
crw-rw---- 1 root video 81, 1 28 juil. 13:17 /dev/video1
crw-rw---- 1 root video 81, 2 28 juil. 13:17 /dev/video2
crw-rw---- 1 root video 81, 3 28 juil. 13:17 /dev/video3
crw-rw---- 1 root video 81, 4 28 juil. 13:17 /dev/video4
crw-rw---- 1 root video 81, 5 28 juil. 13:17 /dev/video5
crw-rw---- 1 root video 81, 6 28 juil. 13:17 /dev/video6

En utilisant la commande «lsusb -v», chaque périphérique rattaché en USB livre plus d'informations. Chacune de mes deux caméras est compatible V4L.

Un «ls -l /dev/v4l/by-id/» m'apporte plus d'informations, Les liens symboliques /dev/video{0-2} sont probablement réservés pour être utilisés par la carte contrôleur (à condition que cela ait été implémenté électroniquement… ce qui n'est pas le cas de la carte Qidi X-4). Les liens video{3-6} sont utilisés par mes Webcams. Seuls ceux d'index0 seront à utiliser :

mks@mkspi:~$ ls -l /dev/v4l/by-id/
total 0
lrwxrwxrwx 1 root root 12 28 juil. 13:17 usb-Mintion_NZC_Mintion_NZC_SN0001-video-index0 -> ../../video3
lrwxrwxrwx 1 root root 12 28 juil. 13:17 usb-Mintion_NZC_Mintion_NZC_SN0001-video-index1 -> ../../video4
lrwxrwxrwx 1 root root 12 28 juil. 13:17 usb-SYX-231020-J_HD_Camera-video-index0 -> ../../video5
lrwxrwxrwx 1 root root 12 28 juil. 13:17 usb-SYX-231020-J_HD_Camera-video-index1 -> ../../video6

La caméra Qidi utilise le lien symbolique «video5», la Mintion NZC «video3».

Muni de ces informations, on peut :

  • compléter le fichier crowsnest.conf
Citation

[crowsnest]

log_path: /home/mks/printer_data/logs/crowsnest.log

log_level: verbose                      # Valid Options are quiet/verbose/debug

delete_log: false                       # Deletes log on every restart, if set to true

no_proxy: false

 

[cam Qidi]

mode: ustreamer                         # ustreamer - Provides mjpg and snapshots. (All devices)

                                        # camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)

enable_rtsp: false                      # If camera-streamer is used, this enables also usage of an rtsp server

rtsp_port: 8554                         # Set different ports for each device!

port: 8080                              # HTTP/MJPG Stream/Snapshot Port

#device: /dev/video3

device: /dev/v4l/by-id/usb-SYX-231020-J_HD_Camera-video-index0

resolution: 1920x1080                  # widthxheight format

max_fps: 10                             # If Hardware Supports this it will be forced, otherwise ignored/coerced.

#custom_flags:                          # You can run the Stream Services with custom flags.

custom_flags: --brightness auto --hue auto --white-balance auto --gain auto

#v4l2ctl:                               # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.

 

[cam Nozzle]

mode: ustreamer                         # ustreamer - Provides mjpg and snapshots. (All devices)

                                        # camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)

enable_rtsp: false                      # If camera-streamer is used, this enables also usage of an rtsp server

rtsp_port: 8554                         # Set different ports for each device!

port: 8081                              # HTTP/MJPG Stream/Snapshot Port

#device: /dev/video5                     # See Log for available ...

device: /dev/v4l/by-id/usb-Mintion_NZC_Mintion_NZC_SN0001-video-index0

resolution: 1920x1080                     # widthxheight format

max_fps: 10                             # If Hardware Supports this it will be forced, otherwise ignored/coerced.

#custom_flags:                          # You can run the Stream Services with custom flags.

#v4l2ctl:                               # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.

  • enregistrer ces modifications,
  • redémarrer le service crowsnest
    • 1 fluidd-acces-services.jpg.51476a3b15a5c874181c7170d4e98878.jpg
    • 2 fluidd-service-crowsnest.jpg.f74dfb6e0308f4d2c547b0afce171d79.jpg

Toujours dans l'interface Web (ici Fluidd), ajouter cette caméra pour qu'elle apparaisse :

1- fluidd-parametres.jpg.d10355dd255039df3d17fd744baedc75.jpg  2- fluidd-parametres-webcam.thumb.jpg.d58e5ad994643a48b792e104e379581a.jpg

3- fluidd-cam-qidi-parametres.jpg.c907a35438603005402a36fda1ff3776.jpg  4- fluidd-cam-nozzle-parametres.jpg.e18892885ff0069f894aa4abd943a466.jpg

Les flux vidéo des deux caméras sont affichés, on peut choisir d'afficher les deux ou l'un ou l'autre :

fluidd-cams.jpg.75700e8697d34a22e325b248a387aea7.jpg

fluidd-selection-qidi.jpg.8392928d62338b5c670c9628b458bfeb.jpg => fluidd-cam-qidi.jpg.8cd46a4a273a07281e3f0a4ca2a646b5.jpg

fluidd-selection-nozzle.jpg.cf5950e2e310d137e332ec6c834eb4c6.jpg => fluidd-cam-nozzle.jpg.0c96cb331799ee209022404aec67ff9c.jpg

Le site de Mintion ne propose que deux supports pour cette NZC. A l'aide d'OpenSCAD, je crée un mix de deux fichiers STL pour obtenir une première version. Puis une seconde afin d'atténuer l'éclairage des deux LEDs en ajoutant une patte de chaque côté:

nzc-vue-cote.thumb.jpg.f8cf9168914ed0e6f8ab19e6c83fe7f1.jpg  nzc-vue-dessous.thumb.jpg.f6d22b0d4a1e453c0f82a73c955041ec.jpg

qidi-nozzle-cam-pcb.thumb.jpg.6a91ef0c3f3045739711bc9ddd48017b.jpg

Le STL  ( mix d'une partie de ce lien pour le support de la camera et de  celui-ci modifié pour la fixation sur la tête Qidi): qidi-xmax3-mintion-nozzle-camera-v2.stl

Pour ceux qui n'ont pas le mal de mer :

Révélation

 

 Logiciels

Actuellement, la caméra Qidi me permet d'obtenir des timelapses et de surveiller l'impression en cours.

En complément, j'avais installé OctoEverywhere qui permet de détecter quelques problèmes d'impression: le fameux plat de spaghettis 😉 . Cette page décrit le fonctionnement de ces systèmes à base de reconnaissance d'artefacts (en gros ce qu'on appelle IA ou AI).

Actuellement, ce programme complémentaire ne permet pas d'analyser la première couche déposée mais son «concurrent», Obico, lui le permet (plus d'informations >>> ici <<<).

Donc avant d'installer Obico (via KAIUH), en  ssh je désactive le service OctoEverywhere (sudo systemctl stop octoeverywhere; sudo systemctl disable octoeverywhere) puis j'installe Obico et complète l'installation en liant ma XM3 à mon compte (j'utilisais déjà Obico avec ma Ender3S1 et SonicPad).

IMPORTANT:

L'installation d'Obico, en tout cas sur mon système n'a pas installé un paquet indispensable: JANUS

Donc il faut l'ajouter manuellement => sudo apt install janus

Reste une dernière étape à faire pour que Obico utilise la caméra de buse pour analyser la première couche.

Modifier le fichier moonraker-obico.cfg en ajoutant pour la caméra de buse le paramètre : Is_nozzle_camera = True

Mon fichier:

[server]
url = https://app.obico.io
auth_token = ***********************

[moonraker]
host = 127.0.0.1
port = 7125

[webcam Qidi] 
disable_video_streaming = False

[webcam Nozzle]
disable_video_streaming = False
Is_nozzle_camera = True

[logging]
path = /home/mks/printer_data/logs/moonraker-obico.log

[tunnel]

Il faut juste bien renseigner le nom des caméras qui doit être identique à celui utilisé lors de leur ajout via l'interface Web (Fluidd / Mainsail). Le nom des caméras est au format Unix donc la casse des caractères doit être respectée (Majusucle / minuscule). Sauver et fermer puis, redémarrer le service moonraker-obico pour qu'Obico prenne en considérations ces modifications.

L'accès au site app.obico.io (ou à l'adresse de votre propre serveur si vous en avez monté un (ce sera une prochaine étape quand j'aurai fini de remonter un nouveau NAS)). permet de commuter l'affichage :

obioc-cam-choix.jpg.8ca4e2e7fbe1ce886c00af2aa114f6cd.jpg

obico-cam-qidi.thumb.jpg.4e5e9994ffb5c6694351b04ac1d32016.jpg obico-cam-nzc.thumb.jpg.17a2951b0ccccda9f75e4bba916138ef.jpg  obico-cam-all.thumb.jpg.669d94cc5be4e0d8ae179c8b9b922790.jpg

 

Pour que l'analyse se fasse à l'issue de la première couche, il faut ajouter dans le trancheur utilisé le Gcode (documentation) :

_OBICO_LAYER_CHANGE CURRENT_LAYER={layer_num + 1} MINX=[first_layer_print_min_0] MINY=[first_layer_print_min_1] MAXX=[first_layer_print_max_0] MAXY=[first_layer_print_max_1]

Dans la section Avant changement de couche (Before layer Change) des Gcodes personnalisés de l'imprimante.

Un Gcode tranché ainsi puis imprimè, met en pause l'impression à l'issue de la première couche (une légère rétraction du filament a lieu avant de baisser la température à 170°C, ventilateur de refroidissement du filament activé à 100%). une fois la température descendue, la buse / caméra balaye la surface de la première couche pour l'analyser et détecter d'envetuels problèmes.

Suivant le type de notifications choisies (Mèle, SMS, …), un message est ensuite envoyé avec un score (A-F) et une vidéo «accélérée» montre l'analyse effectuée).

Exemple (j'utilise le courrier électronique) :

mail-obico-1rst-layer.thumb.jpg.5ac2bf7d0ff19d467467768c51df28be.jpg

La vidéo (transformée en GIF) du balayage :

obico-nzc-analyse.gif.39166f8516156dba2131b247c3b7aa29.gif

A noter:

En fonction du score attribué, un certain nombre de suggestions est donné. Le choix de toute façon reste à l'utilisateur de continuer ou arrêter l'impression.

Ce que je constate après quelques impressions :

  • la buse et la chaussette de protection doivent être parfaitment propres pour éviter des faux-positifs (ce qui était le cas de mes vidéos)
  • la vitesse de rétraction du filament par défaut est trop faible (15mm/s) avec ma XM3,
  • le fichier moonraker_obico_macros.cfg est en lecture seule (lien symbolique) et ne peut être édité via Fluidd (Mainsail), on ne peut le modifier qu'en passant par une connexion ssh

 

En espérant que ce soit utile à d'autres makers.

🙂

Modifié (le) par fran6p
  • Wow 1
  • +1 2
  • Merci ! 1
  • fran6p featured this topic
  • 3 weeks later...
Posté(e)

bonsoir @fran6p merci pour le partage sur cette caméra, le principe est intéressant mais par contre la redevance annuelle qui généralement ne va pas en diminuant est un modèle économique qui n'est pas rassurant 🤥

Posté(e)

@pjtlivjy

Il est possible d'installer la partie serveur (Obico-server) sur son propre matériel informatique et ainsi se dispenser de la «redevance». Pour le moment, j'utilise toujours Obico gratuitement. Les limitations de la licence gratuite peuvent suffire si on n'utilise qu'une seule imprimante. Sinon, avec l'achat de la caméra Mintion, est inclus un abonnement «gratuit» de trois mois (j'ai également trois autres mois gratuits avec l'achat d'un autre matériel de Bigtreetech (une carte CB2)).

L'installation d'un serveur Obico sera l'objet d'un futur sujet, une fois mon nouveau NAS monté 😉

  • +1 1
  • 1 month later...
Posté(e)

Salut @fran6p,

J'ai investi dans la même cam pour ma Plus3. Tu as fait un boitier pour la petite carte au bout de la nappe ?

Je pensais concevoir un nouveau dos pour tous y intégrer.

La caméra chauffe ?

Posté(e)
Il y a 1 heure, Rgnd a dit :

Tu as fait un boitier pour la petite carte au bout de la nappe ?

J'utilise ce modèle de printables. Collé avec l'adhésif livré (il me semble) au-dessus de la plaque arrière de la tête. Le PCB est maintenu fermement à l'intérieur à l'aide de vis M2 ou M2.5 sinon les vibrations provoquent des déconnexions de la caméra qui disparait alors de Fluidd.

La nappe (trop longue à mon goût) entre la caméra et le boitier au-dessus est attachée «à l'arrache» via serre-câble passant dans une ouïe du boitier.

Il y a 1 heure, Rgnd a dit :

La caméra chauffe ?

Probablement. Le PCB déporté chauffe lui aussi.

Il y a 1 heure, Rgnd a dit :

Je pensais concevoir un nouveau dos pour tous y intégrer.

Pas eu le courage de m'y atteler 😉

Posté(e)
il y a 56 minutes, fran6p a dit :

Pas eu le courage de m'y atteler 😉

Je vais voir ce que je peux faire de mon côté !

Posté(e)

Salut @fran6p, installation terminée !

Ça fonctionne super bien, j'ai modélisé le dos de la tête pour tout caler dedans. J'ai du modifier ton support car la cam était un peu haute sur ma X-Plus3. Je ne voyais pas la buse et pas assez de plateau.

image.png.345996808c514738cf376964ddef6333.png

Je trouve que la mise au point ne se fait pas au bon endroit, tu l'as réglée ?

 

 

IMG20241027154949_1.jpg

IMG20241027155003_1.jpg

IMG20241027155028_1.jpg

Dos_tete.stl qidi-xplus3-mintion-nozzle-camera-rgn.stl

  • J'aime 2
Posté(e) (modifié)

D'abord, en fonction de la taille de la pièce (des pièces) imprimée(s) ça rajoute pas mal de temps à la durée totale d'impression.

En gros :

À l'issue de la première couche, la tête se parque, le ventilateur de refroidissement du filament se met en marche à 100 %, la température descend à 160 °C.

Une fois la température descendue à 160 °C, la tête se déplace lentement de gauche à droite (X) puis incrémente dans le sens de l'axe Y et repart cette fois-ci de droite à gauche… Etc. jusqu'à atteindre l'extrémité de la surface d'impression de la pièce (sens Y).

La buse est alors remise en chauffe, et redémarre l'impression.

Pendant que l'impression continue, la vidéo est analysée sur le serveur Obico. Au bout d'un certain temps, le résultat est retourné soit directement dans l'onglet pointant sur Obico, soit, en fonction des paramètres saisis par l'utilisateur via un email (dans mon cas). Un accéléré vidéo est disponible, ainsi que l'analyse du résultat de la première couche (de A à F).

Le système est perfectible, car il dépend de la couleur du filament, de l'éclairage, de la position de la caméra.

En aucun cas, l'impression n'est arrêtée par Obico, c'est à l'utilisateur de décider l'arrêt ou la continuation de l'impression. De toute façon, en tout cas chez moi, le résultat de l'analyse n'est pas immédiat. Peut-être est-ce dû à mon choix de rester sur l'application gratuite 🤔

Même avec un résultat d'analyse de D, mes impressions sont toujours allées jusqu'au bout. Au mieux, je n'ai pu obtenir qu'un B. J'imprime principalement du PETG et c'est très brillant, peut-être qu'avec un filament mat, il y aurait moins d'artefacts.

Mon avis :

Tel quel, ça reste un gadget, mais c'est amusant de voir le filament se déposer pour former les couches d'impression. C'est encore plus hypnotique que l'observation visuelle de la pièce en train de s'imprimer.

Exemple de mails reçus :

- note C

Citation
Hi fran6p,

It looks like you are just done printing the first layer for PETG_Desiccant_Hardware_x1.gcode.

As a robot with an AI brain, I have thoroughly inspected the first layer via the nozzle camera you have on your printer. Now I'm hoping in to make some comments based on what I have seen.

I think your first layer can be graded as: C

You have got a decent first layer. The risk for the first layer to cause your print to failure later LOW. However, if you want a perfect bottom surface finish and structural strength, you can stop the print, perfect your first layer, and restart the print.

Grade C usually means one of the following:

  • Under-extrusion.
  • Over-extrusion.
  • Suboptimal z-offset setting that causes the material to not bond perfectly.
  • Contaminated print bed that causes the material in some areas to slightly bubble or wrap
  • Uneven print bed coupled with suboptimal auto-bed-leveling.
  • Other problems that cause the first layer to have defects.

 

I have also recorded a video of what I saw with my robot eyes. You can watch it below:

Video thumbnail

 

Give us feedback to let us know if the snapshots above do have issues!

Give me feedback about my AI brain 🤖
Print Smart,
- The Obico team
 

- note B

Citation
Hi fran6p,

It looks like you are just done printing the first layer for PETG_corner_led_x4.gcode.

As a robot with an AI brain, I have thoroughly inspected the first layer via the nozzle camera you have on your printer. Now I'm hoping in to make some comments based on what I have seen.

I think your first layer can be graded as: B

You have got a decent first layer with some minor issues. Consider fine-tuning some settings like extrusion or z-offset to make it perfect on your next print.

Grade B usually means one of the following:

  • Slight under-extrusion or over-extrusion.
  • Suboptimal z-offset setting that causes the material to not bond perfectly.
  • Uneven print bed coupled with suboptimal auto-bed-leveling.
  • Other problems that cause the first layer to have minor defects.

 

I have also recorded a video of what I saw with my robot eyes. You can watch it below:

Video thumbnail

 
 

- note F

Citation
Hi fran6p,

It looks like you are just done printing the first layer for PETG_[a]_idler_roller_x8.gcode.

As a robot with an AI brain, I have thoroughly inspected the first layer via the nozzle camera you have on your printer. Now I'm hoping in to make some comments based on what I have seen.

I think your first layer can be graded as: F

It looks like your printer has run into some trouble on the first layer. The risk for the first layer to cause your print to failure later is HIGH. I recommend you stop the print now and fix the problem.

Grade F usually means one of the following:

  • Serious bed-leveling problems that causes material to detach from the print bed.
  • Wrong/suboptimal z-offset setting.
  • Serious bubbling or wrapping.
  • Other problems that will probably cause the print to fail later in the process.

 

I have also recorded a video of what I saw with my robot eyes. You can watch it below:

Video thumbnail

 

 
 
 

Pour ce dernier résultat (F), j'aurais dû suivre les recommandations et arrêter l'impression. Ce que j'ai dû finalement faire quand quelques pièces se sont décollées du plateau et que le filament a commencé à s'écouler pour former le fameux plat de spaghettis 😄.

La vidéo de l'analyse accélérée du premier mail (note D), Mp4 transformé en gif pour que la taille reste sous les 9,9 Mo :

46119422_tagged.gif.be880a4010e2fcbd6497d56bf918c32a.gif

 

Les zones détectées comme problématiques sont en rouge et jaune.

🙂

 

Modifié (le) par fran6p
  • J'aime 2
Posté(e)

Salut, pour l'instant je n'ai pas installé obico, j'ai encore accès à son concurrent.

Comme @fran6p les vidéos sont dingues ! Par contre en live ça va à une vitesse de dingue et pas le temps de suivre.

J'ai imprimé cette après-midi du tpu et la on voit super bien la première couche !

@fran6p tu as réussi à installé Obico sur ton NAS ?

Posté(e)
il y a 13 minutes, Rgnd a dit :

tu as réussi à installé Obico sur ton NAS ?

Mon NAS est toujours en cours de création 😄

L'OS (Debian Bookworm + OpenMediaVault) est installé sur la carte mère (FriendlyElec CM3588 NAS (16 Go RAM, eMMC de 64 Go+ 4 x SSD Nvme PCI Gen3 de 2 To chacun), le système est prêt, je l'ai testé avec des stress tests durant quelques jours. Pas rencontré de soucis hardware ou software.

Docker et la gestion des VMs sont prêts à accueillir les différentes «machines».

Je prends mon temps et des notes également pour un dépôt Github.

…yapluka… 😉

  • J'aime 1

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
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...