Forum Linux.débutant Caméra externe pour microscope

Posté par  . Licence CC By‑SA.
Étiquettes :
5
23
nov.
2022

Bonjour,

Je suis à la recherche de solutions pour faire fonctionner sous Ubuntu une caméra USB qui n'est pas une webcam mais une caméra associée à un microscope optique. Il s'agit du modèle MA1000 de AmScope (https://amscope.com/products/ma1000?variant=40285341712559).

Voici le problème : la caméra n'est pas reconnue en plug & play (pas de son, pas d'image) et n'est pas accessible depuis les interfaces graphiques des logiciels vidéo dont je dispose, à savoir Cheese ou le logiciel dédié fourni par le fabricant (ISCapture).

Voici ma configuration actuelle :
- hardware : Asus VivoBook S15 X510UF, processeur i5-8250U CPU
- OS : Ubuntu 22.04.1 64 bits, Gnome 42.5

Voici la liste de ce que j'ai essayé :
1 . chercher des drivers Linux sur le site du fabricant : il n'y en a pas (https://amscope.com/pages/software-downloads)
2 . tester la caméra avec d'autres logiciels vidéo : rien avec VLC ni avec Guvcview, ces logiciels (comme Cheese) ne reconnaissent que ma webcam intégrée
3 . même chose en changeant de port USB (j'en ai trois)
4 . chercher des drivers Linux en ligne :
- installer le driver Ov51x dans l'espoir qu'il fasse fonctionner ma caméra comme indiqué ici : mais le dépôt est HS donc impossible de télécharger les paquets (message d'erreur)
- passer par EasyCam2 comme proposé ici : idem le blog fournisseur est fermé et le dépôt HS, pas possible de télécharger

Voici les retours des commandes que j'ai essayées pour comprendre un peu ce qui se passe. Je précise que je n'ai aucune compétence spécifique en info, j'ai juste essayé des solutions trouvées en ligne en cherchant le sens et la syntaxe des commandes au fur et à mesure.

lsusb donne :

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 002: ID 13d3:5a07 IMC Networks VGA UVC WebCam
Bus 001 Device 008: ID 5453:a803 123456789 1/2.3 10MP color CMOS camera 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

où je vois bien ma caméra avec les identifiants 5453:a803 (bien sûr inconnue au bataillon ici, en même temps pas étonnant ce n'est pas une webcam).

Je la retrouve avec lsusb -tv :

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 1: Dev 8, If 0, Class=Vendor Specific Class, Driver=, 480M
        ID 5453:a803  
    |__ Port 6: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:5a07 IMC Networks VGA UVC WebCam
    |__ Port 6: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:5a07 IMC Networks VGA UVC WebCam
    |__ Port 8: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
        ID 8087:0a2b Intel Corp. Bluetooth wireless interface
    |__ Port 8: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
        ID 8087:0a2b Intel Corp. Bluetooth wireless interface

si j'ai bien compris d'après ce post le 480M me confirme que ma caméra est bien adaptée à un port USB 2.0 (de toute façon le problème persiste lorsque je change de port)

Pour finir voici ce que renvoie sudo dmesg | tail juste après avoir débranché/rebranché la caméra :

[ 7051.241788] wlp2s0: authenticated
[ 7051.243151] wlp2s0: associate with c4:ea:1d:e3:5e:67 (try 1/3)
[ 7051.247204] wlp2s0: RX AssocResp from c4:ea:1d:e3:5e:67 (capab=0x411 status=0 aid=1)
[ 7051.256701] wlp2s0: associated
[ 7753.102720] usb 1-1: USB disconnect, device number 8
[ 7755.467209] usb 1-1: new high-speed USB device number 9 using xhci_hcd
[ 7756.636458] usb 1-1: New USB device found, idVendor=5453, idProduct=a803, bcdDevice= 0.04
[ 7756.636471] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7756.636477] usb 1-1: Product: 1/2.3 10MP color CMOS camera 
[ 7756.636482] usb 1-1: Manufacturer: 123456789

La prochaine option, si j'en crois mes recherches, serait peut-être d'agir directement sur V4L2 pour lui demander de récupérer le flux vidéo et de l'envoyer à mes logiciels ? J'avoue que c'est à la limite de ce que je comprends, n'étant pas versé dans le domaine. J'espère ne pas dire n'importe quoi. Si cette option paraît valable je suis preneur de conseils pour la mettre en œuvre.

Merci d'avance pour vos avis avant que je me résigne à acheter une autre caméra, Linux compatible. Je peux ajouter d'autres infos/retours de commandes si besoin.

  • # vid&pid

    Posté par  . Évalué à 7. Dernière modification le 23 novembre 2022 à 16:27.

    5453:a803 fait remonter ce PDF qui indique que cette caméra correspond à la Tucsen ISH1000

    Si amscope ne fait que revendre cette camera comme accessoire pour microscope, ca vaut peut être le coup contacter directement Tucsen

    • [^] # Re: vid&pid

      Posté par  . Évalué à 6. Dernière modification le 23 novembre 2022 à 16:41.

      Pour compléter la réponse de Pierre Maziere, j'ai pris les recommandations du wiki de Archlinux (distribution connue pour sa documentation) pour approfondir la recherche sur le driver.

      Je n'ai pas trouvé de mention du driver approprié sur les pages suivantes:

      Je n'ai pas cherché à creuser pour la page consacrée aux drivers "tiers".

      Je suis également d'avis de contacter directement le support du fabricant et leur demander si il leur est possible de vous fournir un driver pour Ubuntu.

      Remarque: il est maintenant courant que les matériels de recherche ne fonctionnent qu'avec du Linux. S'il s'agit d'un achat personnel, vous pouvez fonder gratuitement vous-même une association loi 1901 officiellement "pour la science citoyenne" et vous procurer une adresse SIRET sur le site de l'INSEE pour augmenter les chances que le fabricant réponde à votre demande ;)

      • [^] # Re: vid&pid

        Posté par  . Évalué à 4.

        Merci beaucoup pour vos réponses rapides et vos recherches complémentaires. Je n'avais rien trouvé avec Qwant en entrant les identifiants directement, mais je n'ai sans doute pas été assez patient pour tout éplucher (ou peut-être que j'aurais dû essayer un autre moteur de recherche).

        Je viens d'écrire à Tucsen pour leur demander des drivers. Je ne suis pas très optimiste parce que le modèle ISH1000 date de 2012 et n'est pas en vente sur leur site actuellement, mais c'est presque ma seule piste donc on ne sait jamais. J'avais aussi relancé AmScope avant de poster ici. Je vous ferai connaître leurs retours pour clôturer ce post.

        En effet il s'agit d'un achat personnel mais une création d'association est en projet (bien vu). Avec un numéro SIREN l'accès aux fournisseurs spécialisés est grandement facilité, et d'autre part il est possible de demander un numéro de TVA intracommunautaire qui peut permettre de récupérer la TVA.

        Cordialement,

  • # SDK Pour Windows

    Posté par  (site web personnel) . Évalué à 4.

    Visiblement, ils ont un SDK avec un peu de documentation. Le tout n'est prévu que pour Windows malheureusement mais la doc laisse à penser qu'il s'agit d'un driver UVC.
    https://valelab4.ucsf.edu/svn/3rdpartypublic/TUCam/TUCam_SDK_C++_v1.0.0.9/

    Il y a différentes dll et différentes versions en parcourant l'arborescence. Si tu n'as pas l'envie de te lancer dans un parcours de rétro-ingénierie, cela sera probablement compliqué :-(.

    • [^] # Re: SDK Pour Windows

      Posté par  . Évalué à 4.

      Merci pour ces données supplémentaires. Malheureusement je suis incapable de les exploiter. J'ai un peu de temps libre (dans les limites du raisonnable) et je suis plutôt expérimentateur dans l'âme, mais mon bagage informatique est très limité. Je n'ai jamais été formé de manière académique, et je ne suis pas assez mordu pour consacrer le temps et l'énergie nécessaires à une autoformation from scratch qui me permettrait de développer l'objet qui me manque…

      Faute de pouvoir créer ce driver, il ne me reste qu'à attendre la réponse des fabricants. En tout cas l'accueil sur ce forum est agréable, vous ne mordez pas les nouveaux, c'est bon à savoir.

  • # .

    Posté par  . Évalué à 5.

    Sais-tu compiler ?

    Tu trouveras à priori une application linux à compiler ici : https://www.tucsen.com/download-software/

    J'y ai jeté un œil, c'est du Qt, ça devrait pas poser de problèmes à compiler. Il n'y a pas les sources du SDK mais les .lib sont fournis (en x86 et en x64). Donc je suppose que la compilation va te fournir un outil basique qui t'affichera le flux vidéo de la caméra.

    Tu as même un readme pour t'expliquer comment construire cette application d'exemple.

    • [^] # Re: .

      Posté par  . Évalué à 1.

      Non je ne sais pas, mais si j'en crois ce post dont tu es l'auteur c'est à portée de main ;) Enfin façon de parler j'imagine, je n'ai aucune idée de la courbe d'apprentissage.

      J'essaie de voir où tu veux en venir. Ce que tu me suggères c'est de fabriquer moi-même l'interface graphique qui me permettra d'afficher ce que voit la caméra ? En bidouillant le "Tucsen SDK kit for Linux" à l'aide par exemple de Qt creator ? Je ne sais pas si ce que je dis a un sens, j'essaie juste de relier les points là. Quant à savoir comment faire concrètement, j'en suis encore loin.

      Je commence à regarder le SDK et chercher le sens de ce que je ne connais pas, j'en ai pour un moment, on verra bien où ça me mène. Merci à toi aussi pour ces nouvelles infos.

      • [^] # Re: .

        Posté par  (site web personnel) . Évalué à 5.

        Afin que tu saches que ça vaut la peine, le lien fonctionne !

        J'ai téléchargé Tucsen SDK Kit for Linux (Tucam_linux_ubuntu18.04_v2.0.4.0_20210311.zip) et suivi les indications dans le fichier readme.

        • décompresser sdk.tar.gz
        • s'assurer d'avoir le nécessaire pour tout compiler
        • installer les librairies nécessaire
          • cd sdk
          • cp libcyusb_unix.o libTUCam.so libTUCam.so.1 libTUCam.so.1.0 libTUCam.so.1.0.0 /usr/local/lib dans mon cas mais ./install.sh installe ça dans un endroit plus pratique.
        • sudo mkdir -p /etc/tucam/
        • sudo cp sdk/tuusb.conf /etc/tucam/
        • cd TUCamSample
        • qmake
        • make
        • LD_LIBRARY_PATH=/usr/local/lib ./TUCamSample si tout est dans /usr/local/lib comme moi.
        • sinon ./TUCamSample

        N'ayant pas la caméra, je ne peux aller plus loin mais voilà à quoi ça ressemble:

        cam.jpg

        À voir si c'est suffisant pour ce que tu en attendais. N'hésite pas à répondre si tu n' arrives pas :-).

        • [^] # Re: .

          Posté par  . Évalué à 3.

          Merci beaucoup pour ta réponse qui m'a remotivé. J'avais bien lu le readme mais n'y comprenant rien j'avais bloqué à ce moment-là. Là, vu que tu m'avais mâché tout le travail, le moins que je pouvais faire était d'essayer.

          Tout s'est très bien passé pour copier les fichiers et me promener dans les répertoires, j'ai appris les commandes au passage. Puis j'ai réalisé que je n'avais pas installé Qtcreator donc je l'ai fait avec un sudo apt-get install qtcreator là aussi sans souci.

          C'est juste après que ça se gâte car la commande qmake renvoie le message suivant :

          qmake: could not exec '/usr/lib/qt5/bin/qmake': No such file or directory

          Je suis allé voir dans /usr/bin et j'y ai bien trouvé qmake (que ses propriétés décrivent comme un lien vers qtchooser, qui est un exécutable situé dans le même répertoire) mais je ne sais pas pourquoi le terminal va le chercher par un mauvais chemin ni comment y remédier.

          J'ai quand même essayé d'installer des paquets supplémentaires sur les conseils donnés ici, et mais tout a échoué de la même manière. À chaque fois le même message d'erreur me disant que le paquet "n'a pas de version susceptible d'être installée".

          • [^] # Re: .

            Posté par  . Évalué à 4.

            Je ne trouve pas comment éditer mon commentaire précédent donc je m'auto réponds. J'ai finalement pu débloquer qmake en installant successivement les paquets qt5-qmake puis qtbase5-dev à la suite de quoi la compilation semble s'être bien passée (1 erreur quand même).

            La dernière ligne LD_LIBRARY_PATH=/usr/local/lib ./TUCamSample renvoie encore une erreur :

            bash: ./TUCamSample: Aucun fichier ou dossier de ce type

            Ce qui est clairement aberrant puisque je suis dans ce répertoire. Je suis à court d'idées.

            • [^] # Re: .

              Posté par  (site web personnel) . Évalué à 4.

              Après avoir lancé qmake dans le dossier des sources (avec tous les fichiers cpp, .h etc), as-tu lancé "make" ?
              C'est lui qui va réellement lancer la compilation des sources. Ça prend quelques dizaines de secondes et à la fin tu as un exécutable, TUCamSample que tu peux lancer dans le terminal en faisant ./TUCamSample.

              Si la compilation fait une erreur, l'exécutable ne peut pas être généré. C'est probablement ce qui est arrivé (en relisant ton message). Si tu copies l'erreur ici, on pourra t'aider. Tu approches du but :-).

              Tu sais quelle distribution tu as? Les sources sont "prévues" pour Ubuntu mais j'ai tout fait sous archlinux par exemple. Ça devrait marcher partout mais ton environnement permettra de te donner de meilleures réponses :-).

              • [^] # Re: .

                Posté par  (site web personnel) . Évalué à 3.

                En relisant ton post j'ai vu que tu tournes sur une Ubuntu récente. Mal réveillé…

                Note: les sources sont "prévues" pour Ubuntu mais j'ai tout fait sous archlinux par exemple. Ça a l'air relativement standard.

                • [^] # Re: .

                  Posté par  . Évalué à 3. Dernière modification le 25 novembre 2022 à 11:40.

                  Oui je viens juste de mettre à jour l'OS donc Ubuntu 22.04.1. D'après ce que je lis ici ou là c'est pas la première fois que Qtcreator entre en conflit avec des mises à jour récentes de Linux (même si c'est pas toujours cette distribution qui est en cause).

                  J'ai vérifié j'avais bien fait qmake dans le répertoire où il y a les sources (pour moi ~/Bureau/TUCamSample) et immédiatement après, j'ai fait make. Voici l'erreur que j'obtiens en fin de texte :

                  /usr/bin/ld : ne peut pas trouver -lTUCam : Aucun fichier ou dossier de ce type
                  collect2: error: ld returned 1 exit status
                  make: *** [Makefile:194 : TUCamSample] Erreur 1

                  Je m'avance peut-être mais on dirait qu'il a un problème similaire à celui de qmake précédemment, à savoir un fichier ou un répertoire qui n'est pas à l'endroit attendu. Comme tu dis cette erreur semble avoir compromis la compilation (oui j'étais trop optimiste) parce que quand je fais ./TUCamSample j'obtiens :

                  bash: ./TUCamSample : est un dossier

                  ce dont je déduis que l'exécutable n'a pas été généré.

                  • [^] # Re: .

                    Posté par  (site web personnel) . Évalué à 5.

                    Tu as copié les fichiers .so dans /usr/local/lib comme moi?
                    L'erreur que tu as dis qu'il ne trouve pas les libraries .so que tu as copié. Rien de grave.

                    Alors je pense que tu dois compiler avec:

                    LIBRARY_PATH=/usr/local/lib make
                    
                    

                    Je trouve différentes valeurs de variable d’environnement mais globalement en définissant la bonne, ton soucis sera réglé. Je ne suis pas chez moi donc je ne peux pas te donner la commande exacte que j'ai utilisé pour le compiler chez moi mais j'ai eu la même erreur dans un premier temps.

                    • [^] # Re: .

                      Posté par  . Évalué à 3. Dernière modification le 25 novembre 2022 à 16:13.

                      Merci pour ton message, ça me rassure un peu ;)

                      J'ai essayé aussi avec LIBRARY_PATH (sans le LD) mais ça donne la même erreur. J'ai vérifié les fichiers .so (et le .conf) sont bien dans le même répertoire que chez toi. J'avais essayé de faire exactement comme toi pour me simplifier la tâche, avec la décompression du dossier TUCamSample en plus (que tu n'avais pas mentionnée) et que j'ai placé dans ~/Bureau.

                      Pas de souci, tu me diras ce que tu as fait précisément quand tu auras le temps.

                      • [^] # Re: .

                        Posté par  (site web personnel) . Évalué à 5.

                        C'est étonnant, j'ai refait la manipulation en mettant les librairies dans /us/local/lib et ça marche:

                        export LD_LIBRARY_PATH=/usr/local/lib/
                        export LIBRARY_PATH=/usr/local/lib/
                        
                        qmake
                        make
                        

                        Voilà mon contenu:

                        ls /usr/local/lib/
                        libcyusb_unix.o  libTUCam.so  libTUCam.so.1  libTUCam.so.1.0  libTUCam.so.1.0.0
                        

                        Si ça ne marche pas avec /usr/local/lib/, tu peux les mettre dans /usr/lib/

                        C'est moins propre car ça va se mélanger avec les autres librairies mais ça devrait marcher.

                        cd /usr/local/lib
                        sudo mv libcyusb_unix.o  libTUCam.so  libTUCam.so.1  libTUCam.so.1.0  libTUCam.so.1.0.0
                         /usr/lib
                        
                        
                        • [^] # Re: .

                          Posté par  . Évalué à 3. Dernière modification le 28 novembre 2022 à 16:42.

                          Ah mais mille excuses tout est de ma faute, j'avais oublié de copier un fichier à la première étape donc très logiquement il ne le trouvait pas. Merci de m'avoir mis le retour de ls ça m'a permis de trouver l'erreur. En mettant tous les fichiers au bon endroit j'arrive bien à compiler, puis à exécuter avec ./TUCamSample et j'obtiens la même chose que toi.

                          Par contre il ne reconnaît pas la caméra (ce serait trop beau)… J'ai un message d'erreur dans le terminal à l'exécution :

                          Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
                          Error in opening device
                          [OpenCyUSB]:Opening CyUSB library failed!
                          libpng warning: Application built with libpng-1.6.37 but running with 1.5.12

                          (il répète cette dernière ligne tout le temps après)

                          Verdict ? C'est game over je m'achète une autre caméra ou tu vois encore quelque chose à tenter ? Désolé si j'abuse de ton temps.

                          • [^] # Re: .

                            Posté par  (site web personnel, Mastodon) . Évalué à 3.

                            Il y a deux solutions possibles. La première, mettre à jour ta bibliothèque libpng qui est en version 1.5.12 : regarde si tu n'as pas plus récent et installe le aussi.

                            “It is seldom that liberty of any kind is lost all at once.” ― David Hume

                          • [^] # Re: .

                            Posté par  (site web personnel) . Évalué à 4.

                            J'avais également le soucis de libpng. C'est un warning, pas le plus grave.

                            Le vrai soucis est [OpenCyUSB]:Opening CyUSB library failed!

                            Je ne connais pas bien CyUSB, il y a peut-être moyen de l'installer sur Ubuntu mais ça n'a pas l'air simple.

                            https://community.infineon.com/t5/USB-low-full-high-speed/download-cyusb-for-linux/td-p/60035

                            Le soucis est que tu vas peut-être réussir à faire marcher la caméra avec ton Ubuntu actuelle après avoir sué, pesté et t'être battu. Mais quid dans 5 ans? Une autre version d'Ubuntu sortira et si le fabriquant ne sort pas une version mise à jour, tu seras coincé. Idem quand QT5 ne sera plus disponible. Tu devras continuer d'utiliser un vieil OS.

                            Si la caméra utilisait des drivers standards, il y aura plus de chance d'avoir de la pérennité dans le temps. Je pense également que ce modèle n'est pas adapté pour Linux et que tu auras probablement moins de tracas si tu arrives à trouver une caméra supportée nativement :-).

                            • [^] # Re: .

                              Posté par  . Évalué à 3.

                              Bon, eh bien je pense que ça va être un game over pour moi. Effectivement comme tu le dis, je ne vois pas l'intérêt d'aller plus loin pour un résultat aussi incertain. Reste à choisir sa remplaçante, ce que je vais faire soigneusement et en toute connaissance de cause maintenant.

                              En tout cas merci pour ce long échange. Je n'aurais jamais pensé que la compilation était aussi accessible. Il faut dire que vous m'avez pris par la main (surtout toi jnanar) à toutes les étapes du processus ;)

                              Quand j'arriverai à faire des photos j'en posterai une ou deux ici pour vous remercier.

                              • [^] # Re: .

                                Posté par  (site web personnel) . Évalué à 2.

                                En tout cas merci pour ce long échange. Je n'aurais jamais pensé que la compilation était aussi accessible. Il faut dire que vous m'avez pris par la main (surtout toi jnanar) à toutes les étapes du processus ;)

                                Avec plaisir, ces soucis de caméra ont réveillé des traumas anciens haha. Avoir du matériel fonctionnel dont on ne sait rien tirer est super frustrant.

                                Quand j'arriverai à faire des photos j'en posterai une ou deux ici pour vous remercier.

                                N'hésite pas à faire un journal, ça intéressera beaucoup plus de gens que l'audience ici.

                                Bon courage dans ta recherche et n'hésite pas si tu as des soucis. Au cas où, tu peux me joindre arnaud[at]agayon.be si tu as encore des questions.

  • # réponse Tucsen

    Posté par  . Évalué à 3.

    Voici la réponse de Tucsen in extenso :

    Dear John Doe,

    This is Anna Xu, technical support of Tucsen.
    I got your message as below. We have SDK for Ubuntu18.06, please download it from below link.
    https://we.tl/t-7zt5JosO3K 
    Any problems, please let me know. And it is better send me the SN.

    Ils me renvoient eux aussi vers le SDK. Je les ai remerciés en leur précisant que je n'étais pas développeur, mais je crois qu'ils n'ont rien d'autre sinon ils m'auraient probablement envoyé le driver fonctionnel.

    J'attends toujours la réponse de AmScope.

    • [^] # Re: réponse Tucsen

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Ah Gaspard du 42, c'était toi la personne non identifiée

      Dear John Doe,

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: réponse Tucsen

        Posté par  . Évalué à 4.

        Je leur ai écrit avec un mail qui ne fait pas apparaître mon état civil ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.