Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gestion de flux pour caméras thermique , USB

Informations bienvenue pour gestion de ports USB périphériques caméras

    6 août 2021 à 10:49:04

    Bonjour à tous,

    J'ai acheté une caméra thermique IRepair (chère mais beaucoup moins qu' en Europe ) sur aliexpress et elle ne fonctionne pas, le service après vente,les chinois ne connaissent pas.
    L' application seulement disponible sous windows est disont "très sommaire". Le problème est les drivers qui ne s' installent pas.
    J' ai donc commencé une application avec Qt avec l' intention de gérer les flux vidéos avec gstreamer, ce qui permettrait une gestion plus affinée des flux vidéos, voir l' utilisation de l' IA qui offrirait une détection optimisée des courts circuits sur pcb et en plus sous Linux.
    Mais je découvre l' USB composite et je n' avais jamais jusqu' à aujourdhui eu l' occasion de disséquer et je trouve abérrant ce choix pour une double connexion vidéo et commandes.
    Pour détecter les ports USB j' ai utilisé Libusb et cela fonctionne, sauf que je n' ai pas pu trouver d' informations exploitables sur l' adresse fournie de l' USB.
    L' utilisation de port USB devrait être simple, mais ce n' est visiblement pas le cas, et j' ai le secret espoir qu' un aimable développeur bien au fait du sujet me donne des pistes sérieuses pour orienter mes recherches... cela m' éviterait de perdre un temps précieux, en exploitant des voies sans issues.

    Les flux vidéos multiples je connais un peu abccamips

    -
    Edité par caribert 6 août 2021 à 13:19:14

    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2021 à 13:45:16

      Bonjour,

      Tu devrais chercher le VendorID:ProductID de l'appareil sur un moteur de recherche pour savoir s'il n'y a pas de driver existant pour linux. D'après le manuel sur le site irepairbox.com, le nom renvoyé par la caméra est "PIR324 Thermal Camera" et ça semble être le même nom que la Compact Pro de SeekThermal (d'après ce message) pour laquelle il existe des drivers avec libusb + opencv: https://github.com/OpenThermal/libseek-thermal 

      • Partager sur Facebook
      • Partager sur Twitter
        6 août 2021 à 15:51:02

        Merci pour ta réponse Alexis, très détaillée,

        Avec Libusb en branchant débranchant le cable USB j' identifie aisément VendorID:ProductID en listant les manquants. Par contre je ne trouve pas de fonctions capable de me donner des adresses directement exploitable par gestreamer, et je bute sur cet aspect.

        Et en effet il est très probable que la camera IRepair RC10  soit équivalent à Compact Pro de SeekThermal. et j ' ai déjà tenté de compiler la lbrairie libseek-thermal mais je bute sur des problèmes de paramétrages, en effet j' ai une carte graphique une peu ancienne, ça paye pas l' informatique, et nvidia+cuda n' est plus géré aussi le cmake s' obstine à me réclamer cuda-11.2.Paramétrer opencv+cuda sous debian c' est pas simple et j' hésite à me lancer à nouveau dans une modification de paramètres.

        Malgré tout je détaille le code pour m' en inspirer. Je n' avais pas trouver cette information "PIR324 Thermal Camera" sur leur site et je pense qu' elle peut être importante pour la suite

        Je parviens avec une instruction gstreamer basique., à visualiser le flux vidéo de la caméra de spectre normal, mais pas celui infra-rouge.

        Avec Libusb ....

        static const uint16_t VENDOR_ID  = 0x2AB8;
        static const uint16_t PRODUCT_ID = 0xA101;
        static const uint16_t iVENDOR_ID = 0x05E3;
        static const uint16_t iPRODUCT_ID = 0x0608;
        while ((dev = devs[i++]) != NULL) {
                struct libusb_device_descriptor desc;
                int r = libusb_get_device_descriptor(dev, &desc);
                if (r < 0) {
                    qDebug( "failed to get device descriptor");
                    return;
                }
                r = libusb_get_port_numbers(dev, path, sizeof(path));
                if (r > 0) {
                    qDebug(" path: %d", path[0]);
                    for (j = 1; j < r; j++)
                        qDebug(".%d", path[j]);
                }
            
                if ( (desc.idVendor == VENDOR_ID) && (desc.idProduct == PRODUCT_ID) )
                {
                    qDebug("Camera normale Cnt : %zu",cnt);
        
        ///...................
             if ( (desc.idVendor == iVENDOR_ID) && (desc.idProduct == iPRODUCT_ID) )
                {
                    qDebug("Camera infra-rouge Cnt : %zu",cnt);
        

        je détecte mes deux périphériques sur un même port USB, mais comment transformer cela en deux adresses  ?  Il existe plusieurs fonctions dans libusb mais aucune ne le permet directement .

        J' ai démonté la caméra et testé l' alimentation et les deux caméras sont alimentés. Je n' exclut pas une défaillance matériel d' autant que la non installation des drivers est très suspectes mais je n' ai aucune certitude.

        L' infrarouge utilise des leds généralement montées en série, il suffit d' une grillée pour que l' ensemble ne fonctionne pas.

        -
        Edité par caribert 6 août 2021 à 17:32:04

        • Partager sur Facebook
        • Partager sur Twitter
          7 août 2021 à 0:16:34

          Ca ne doit pas être les bons identifiants de périphérique. Sur le site de irepair, dans le driver: https://www.irepairbox.com/xzzx (après décompression de l'archive et de l'exécutable qu'elle contient), les fichiers .inf ne contiennent que 2 identifiants VendorID:ProductID : 289D:0010 et 289D:0011.

          Le second identifiant que tu as trouvé 0x05E3:0x0608 correspond à un hub USB 2.0, pas à une caméra.

          Pour avoir ces identifiants, il vaut mieux utiliser la commande "lsusb" avant et après branchement de la caméra, puis par exemple "lsusb -v -d 289D:0011" pour avoir des détails sur un des périphériques (son nom, sa classe...).

          caribert a écrit:

          nvidia+cuda n' est plus géré aussi le cmake s' obstine à me réclamer cuda-11.2.Paramétrer opencv+cuda sous debian c' est pas simple et j' hésite à me lancer à nouveau dans une modification de paramètres.

          Y-a-t'il une raison pour laquelle tu n'installes pas simplement le paquet debian déjà compilé "libopencv-dev" ?
          • Partager sur Facebook
          • Partager sur Twitter
            7 août 2021 à 11:27:09

            alexisdm a écrit:

            Ca ne doit pas être les bons identifiants de périphérique. Sur le site de irepair, dans le driver: https://www.irepairbox.com/xzzx (après décompression de l'archive et de l'exécutable qu'elle contient), les fichiers .inf ne contiennent que 2 identifiants VendorID:ProductID : 289D:0010 et 289D:0011.

            En effet mais à aucun moment je ne parviens à obtenir des informations sur le ProductID avec mon code.

            En ligne de commande « lsusb -v -d 289D:0010 » ou « lsusb -v -d 289D:0011 » me donne une ligne vide.

            Mais je crois que tu mets le doigt sur une anomalie intéressante…

            xxxxxx@xxxx:~$ lsusb -v -d  05e3:0608
            
            Bus 007 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
            Couldn't open device, some information will be missing
            Device Descriptor:
              bLength                18
              bDescriptorType         1
              bcdUSB               2.00
              bDeviceClass            9 Hub
              bDeviceSubClass         0 
              bDeviceProtocol         1 Single TT
              bMaxPacketSize0        64
              idVendor           0x05e3 Genesys Logic, Inc.
              idProduct          0x0608 Hub
              bcdDevice           85.36
              iManufacturer           0 
              iProduct                1 
              iSerial                 0 
              bNumConfigurations      1
              Configuration Descriptor:
                bLength                 9
                bDescriptorType         2
                wTotalLength       0x0019
                bNumInterfaces          1
                bConfigurationValue     1
                iConfiguration          0 
                bmAttributes         0xe0
                  Self Powered
                  Remote Wakeup
                MaxPower              100mA
                Interface Descriptor:
                  bLength                 9
                  bDescriptorType         4
                  bInterfaceNumber        0
                  bAlternateSetting       0
                  bNumEndpoints           1
                  bInterfaceClass         9 Hub
                  bInterfaceSubClass      0 
                  bInterfaceProtocol      0 Full speed (or root) hub
                  iInterface              0 
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x81  EP 1 IN
                    bmAttributes            3
                      Transfer Type            Interrupt
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0001  1x 1 bytes
                    bInterval              12
             
            il existe une fonction dans libusb pour avoir accès au périphérique en connaissant VENDOR_ID,PRODUCT_ID
            dev_handle = libusb_open_device_with_vid_pid(context,VENDOR_ID,PRODUCT_ID);

            mais le handle est null et je ne comprend pas pourquoi, d' autant que la caméra spectre visible est accessible.

            alexisdm a écrit:

            Y-a-t'il une raison pour laquelle tu n'installes pas simplement le paquet debian déjà compilé "libopencv-dev" ?


            J’ ai oublié le déroulement de l’ installation mais si on possède une carte graphique nvidia, il est souhaitable d’ installer CUDA. Et opencv doit être compilé avec les instructions WITH CUDA. Mon application utilise l’ IA très gourmande en ressource donc, et si l’ on a une carte graphique récente les performances sont censés être très supérieur. Ceci dit, actuellement mon appli gère 4 caméras et 4 détections IA en permanence et cela fonctionne.

            J’ ai un portable, intel I3, carte graphique AMD radeon, 4 GO de ram et supporte bien la même configuration, c’ est la limite mais cela fonctionne bien.

            Je trouve que nvidia ne soigne pas suffisamment leur installation en fonction du matériel utilisé.

            -
            Edité par caribert 8 août 2021 à 8:23:54

            • Partager sur Facebook
            • Partager sur Twitter
              8 août 2021 à 22:46:10

              caribert a écrit:

              En ligne de commande « lsusb -v -d 289D:0010 » ou « lsusb -v -d 289D:0011 » me donne une ligne vide.

              J'ai peut-être mal expliqué:

              Avant d'utiliser lsusb avec des paramètres, il faut le lancer sans paramètre, sans brancher la caméra, pour voir la liste des périphériques qui ne sont déjà présents. Ensuite, tu branches la caméra, et tu relances lsusb, toujours sans paramètre, ce qui permet de savoir sous quel(s) identifiant(s) est déclarée la caméra en comparant la nouvelle liste avec la liste précédente.

              Comme la caméra normale est reconnue, peut-être qu'elle apparaît également dans le log du kernel (commande "dmesg", "sudo dmesg" ou "journalctl -k -n 50" (pour voir les 50 dernières lignes parce que sans ça, journalctl peut être très long)) avec le nom du driver utilisé.

              • Partager sur Facebook
              • Partager sur Twitter
                9 août 2021 à 17:59:31

                alexisdm a écrit:

                caribert a écrit:

                En ligne de commande « lsusb -v -d 289D:0010 » ou « lsusb -v -d 289D:0011 » me donne une ligne vide.

                J'ai peut-être mal expliqué:

                Si, si tu expliques très bien… :D

                J’ ai en fait tenté à nouveau toutes les soumissions de commandes que tu avais faites, dans tous les sens et testé les variantes mais sans grand effet.

                Je t’ envoi les résultats, peut être y décèleras tu une anomalie qui m’ échappe. Aucun vendor_id ou product_id est accessible. Ceci dit la fonction libusb_open_device_with_vid_pid semble ne pas fonctionner au vue des retours de certains utilisateurs.

                Parmi les anomalies que j’ ai pu noter sous windows 10 Home impossible d’ installer les drivers, mais en le faisant manuellement je parviens à le faire et ils apparaissent dans la liste des pilotes, Seek Thermal, mais windows indique qu’ ils ne fonctionneront pas.

                Sous windows pro les drivers ne s’ installent pas complètement, et windows refuse de les installer mais par contre la caméra spectre visible fonctionne, mais elle utilise le driver de la webcam.

                FYRGB est la caméra spectre visible

                HJ_5MUSB est la caméra spectre infrarouge.

                Le driver est développé par Sonix.

                Je vais démonter la caméra à nouveau et repérer les puces et si elles sont identifiables avec de la chance, et avec leur datasheet je comprendrai mieux le fonctionnement, et éventuellement les changer si défectueuses.

                Ici une vidéo qui détaille la non installation .

                xxxxx@xxxxxx:~$ lsusb
                Bus 003 Device 007: ID 2ab8:a101  
                Bus 003 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
                Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
                Bus 008 Device 003: ID 04f3:152e Elan Microelectronics Corp. 
                Bus 008 Device 002: ID 04d9:a09f Holtek Semiconductor, Inc. E-Signal LUOM G10 Mechanical Gaming Mouse
                Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
                Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
                Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                xxxxx@xxxxxx:~$ lsusb
                Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
                Bus 008 Device 003: ID 04f3:152e Elan Microelectronics Corp. 
                Bus 008 Device 002: ID 04d9:a09f Holtek Semiconductor, Inc. E-Signal LUOM G10 Mechanical Gaming Mouse
                Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
                Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
                Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
                xxxx@xxxxxxxxx# journalctl -k -n 50
                -- Logs begin at Mon 2021-08-09 13:45:20 CEST, end at Mon 2021-08-09 15:40:31 CEST. --
                août 09 13:45:26 ai-build kernel: input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/000
                août 09 13:46:52 ai-build kernel: resource sanity check: requesting [mem 0x000c0000-0x000fffff], which sp
                août 09 13:46:52 ai-build kernel: caller _nv000722rm+0x1ad/0x200 [nvidia] mapping multiple BARs
                août 09 13:46:59 ai-build kernel: IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
                août 09 13:46:59 ai-build kernel: sky2 0000:04:00.0 enp4s0: enabling interface
                août 09 13:46:59 ai-build kernel: IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
                août 09 13:47:01 ai-build kernel: sky2 0000:04:00.0 enp4s0: Link is up at 1000 Mbps, full duplex, flow co
                août 09 13:47:01 ai-build kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp4s0: link becomes ready
                août 09 13:47:22 ai-build kernel: fuse init (API version 7.27)
                août 09 13:49:24 ai-build kernel: usb 3-2: new high-speed USB device number 4 using ehci-pci
                août 09 13:49:24 ai-build kernel: usb 3-2: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice
                août 09 13:49:24 ai-build kernel: usb 3-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
                août 09 13:49:24 ai-build kernel: usb 3-2: Product: USB2.0 Hub
                août 09 13:49:24 ai-build kernel: hub 3-2:1.0: USB hub found
                août 09 13:49:24 ai-build kernel: hub 3-2:1.0: 4 ports detected
                août 09 13:49:24 ai-build kernel: usb 3-2.1: new high-speed USB device number 5 using ehci-pci
                août 09 13:49:25 ai-build kernel: usb 3-2.1: New USB device found, idVendor=2ab8, idProduct=a101, bcdDevi
                août 09 13:49:25 ai-build kernel: usb 3-2.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
                août 09 13:49:25 ai-build kernel: usb 3-2.1: Product: HJ_5MUSB
                août 09 13:49:25 ai-build kernel: usb 3-2.1: Manufacturer: Sonix Technology Co., Ltd.
                août 09 13:49:25 ai-build kernel: media: Linux media interface: v0.10
                août 09 13:49:25 ai-build kernel: videodev: Linux video capture interface: v2.00
                août 09 13:49:25 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 13:49:25 ai-build kernel: usbcore: registered new interface driver snd-usb-audio
                août 09 13:49:25 ai-build kernel: uvcvideo: Found UVC 1.00 device HJ_5MUSB (2ab8:a101)
                août 09 13:49:25 ai-build kernel: input: HJ_5MUSB: FYRGB as /devices/pci0000:00/0000:00:1d.7/usb3/3-2/3-2
                août 09 13:49:25 ai-build kernel: usbcore: registered new interface driver uvcvideo
                août 09 13:49:25 ai-build kernel: USB Video Class driver (1.1.1)
                août 09 13:49:25 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 13:49:25 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 13:53:39 ai-build kernel: usb 3-2: USB disconnect, device number 4
                août 09 13:53:39 ai-build kernel: usb 3-2.1: USB disconnect, device number 5
                août 09 13:54:10 ai-build kernel: perf: interrupt took too long (2503 > 2500), lowering kernel.perf_event
                août 09 13:54:51 ai-build kernel: usb 3-2: new high-speed USB device number 6 using ehci-pci
                août 09 13:54:51 ai-build kernel: usb 3-2: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice
                août 09 13:54:51 ai-build kernel: usb 3-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
                août 09 13:54:51 ai-build kernel: usb 3-2: Product: USB2.0 Hub
                août 09 13:54:51 ai-build kernel: hub 3-2:1.0: USB hub found
                août 09 13:54:51 ai-build kernel: hub 3-2:1.0: 4 ports detected
                août 09 13:54:52 ai-build kernel: usb 3-2.1: new high-speed USB device number 7 using ehci-pci
                août 09 13:54:52 ai-build kernel: usb 3-2.1: New USB device found, idVendor=2ab8, idProduct=a101, bcdDevi
                août 09 13:54:52 ai-build kernel: usb 3-2.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
                août 09 13:54:52 ai-build kernel: usb 3-2.1: Product: HJ_5MUSB
                août 09 13:54:52 ai-build kernel: usb 3-2.1: Manufacturer: Sonix Technology Co., Ltd.
                août 09 13:54:52 ai-build kernel: uvcvideo: Found UVC 1.00 device HJ_5MUSB (2ab8:a101)
                août 09 13:54:52 ai-build kernel: input: HJ_5MUSB: FYRGB as /devices/pci0000:00/0000:00:1d.7/usb3/3-2/3-2
                août 09 13:54:52 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 13:54:52 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 13:54:52 ai-build kernel: usb 3-2.1: 3:1: cannot get freq at ep 0x84
                août 09 14:25:16 ai-build kernel: perf: interrupt took too long (3395 > 3128), lowering kernel.perf_event




                -
                Edité par caribert 9 août 2021 à 20:35:04

                • Partager sur Facebook
                • Partager sur Twitter
                  10 août 2021 à 13:31:39

                  Au moins, il semble qu'il y ai vraiment un hub à l'intérieur, vu la numérotation détectée par linux ("3-2" pour le hub et "3-2.1" pour la caméra), à moins que tu l'aies connectée sur un hub ?

                  Il faudrait voir la sortie de "lsusb -v -d 2ab8:a101" pour savoir s'il y a d'autres éléments bizarres. Il y a une possibilité pour que le firmware soit légèrement corrompu, et dans ce cas tu ne peux rien faire sans l'aide du fabricant. 

                  Tu peux aussi essayer de forcer l'installation du driver, parce que dans ta vidéo, tu as laissé Windows vérifier que le VID:PID du driver et du périphérique correspondaient. Juste après "Parcourir mon poste de travail pour rechercher des pilotes", tu avais l'option "Choisir parmi une liste de pilotes disponibles sur mon ordinateur", qui devrait permettre de forcer l'installation du driver même si le VID:PID ne correspond pas.

                  Mais si tu es dans les 15 jours après la réception de la caméra, tu peux ouvrir un litige auprès d'aliexpress en fournissant les preuves que le VID:PID de la caméra ne correspond pas à celui qui se trouve dans le fichier .inf du driver, captures d'écran à l'appui (le VID:PID sous Windows se trouve dans un des onglets  du périphérique: détails sur cette page). Généralement, Aliexpress tranche en faveur de l'acheteur.

                  Beaucoup de vendeurs essayent de convaincre de fermer les litiges, mais après clôture, il n'y a plus aucun recours possible.

                  -
                  Edité par alexisdm 25 novembre 2021 à 11:15:45

                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 août 2021 à 17:13:56

                    alexisdm a écrit:

                    Au moins, il semble qu'il y ai vraiment un hub à l'intérieur, vu la numérotation détectée par linux ("3-2" pour le hub et "3-2.1" pour la caméra), à moins que tu l'es connectée sur un hub ?

                    Je suis connecté directement sur port USB et en effet le hub répond.

                    alexisdm a écrit:

                    Il faudrait voir la sortie de "lsusb -v -d 2ab8:a101" pour savoir s'il y a d'autres éléments bizarres. Il y a une possibilité pour que le firmware soit légèrement corrompu, et dans ce cas tu ne peux rien faire sans l'aide du fabricant.

                     Alors là oh miracle j’ ai une réponse à cette adresse, alors que j’ ai essayé 10 fois 20 fois sans résultat.

                    Le firmware corrompu est semble t’ il l’ explication la plus probable, et ce que je soupçonne de plus en plus mais pas forcement la meilleure nouvelle, quoique s’ il répond de manière aléatoire  ?

                    xxxx@xxxxx~$ lsusb -v -d 2ab8:a101
                    
                    Bus 003 Device 004: ID 2ab8:a101  
                    Couldn't open device, some information will be missing
                    Device Descriptor:
                      bLength                18
                      bDescriptorType         1
                      bcdUSB               2.01
                      bDeviceClass          239 Miscellaneous Device
                      bDeviceSubClass         2 
                      bDeviceProtocol         1 Interface Association
                      bMaxPacketSize0        64
                      idVendor           0x2ab8 
                      idProduct          0xa101 
                      bcdDevice            1.00
                      iManufacturer           2 
                      iProduct                1 
                      iSerial                 0 
                      bNumConfigurations      1
                      Configuration Descriptor:
                        bLength                 9
                        bDescriptorType         2
                        wTotalLength       0x048b
                        bNumInterfaces          4
                        bConfigurationValue     1
                        iConfiguration          0 
                        bmAttributes         0x80
                          (Bus Powered)
                        MaxPower              256mA
                        Interface Association:
                          bLength                 8
                          bDescriptorType        11
                          bFirstInterface         0
                          bInterfaceCount         2
                          bFunctionClass         14 Video
                          bFunctionSubClass       3 Video Interface Collection
                          bFunctionProtocol       0 
                          iFunction               5 
                        Interface Descriptor:
                          bLength                 9
                          bDescriptorType         4
                          bInterfaceNumber        0
                          bAlternateSetting       0
                          bNumEndpoints           1
                          bInterfaceClass        14 Video
                          bInterfaceSubClass      1 Video Control
                          bInterfaceProtocol      0 
                          iInterface              5 
                          VideoControl Interface Descriptor:
                            bLength                13
                            bDescriptorType        36
                            bDescriptorSubtype      1 (HEADER)
                            bcdUVC               1.00
                            wTotalLength       0x006c
                            dwClockFrequency       15.000000MHz
                            bInCollection           1
                            baInterfaceNr( 0)       1
                          VideoControl Interface Descriptor:
                            bLength                 9
                            bDescriptorType        36
                            bDescriptorSubtype      3 (OUTPUT_TERMINAL)
                            bTerminalID             5
                            wTerminalType      0x0101 USB Streaming
                            bAssocTerminal          0
                            bSourceID               4
                            iTerminal               0 
                          VideoControl Interface Descriptor:
                            bLength                28
                            bDescriptorType        36
                            bDescriptorSubtype      6 (EXTENSION_UNIT)
                            bUnitID                 3
                            guidExtensionCode         {28f03370-6311-4a2e-ba2c-6890eb334016}
                            bNumControl            24
                            bNrPins                 1
                            baSourceID( 0)          2
                            bControlSize            3
                            bmControls( 0)       0xff
                            bmControls( 1)       0xff
                            bmControls( 2)       0xff
                            iExtension              0 
                          VideoControl Interface Descriptor:
                            bLength                29
                            bDescriptorType        36
                            bDescriptorSubtype      6 (EXTENSION_UNIT)
                            bUnitID                 4
                            guidExtensionCode         {bd5321b4-d635-ca45-b203-4e0149b301bc}
                            bNumControl            32
                            bNrPins                 1
                            baSourceID( 0)          3
                            bControlSize            4
                            bmControls( 0)       0x03
                            bmControls( 1)       0x80
                            bmControls( 2)       0x3f
                            bmControls( 3)       0x9f
                            iExtension              0 
                          VideoControl Interface Descriptor:
                            bLength                18
                            bDescriptorType        36
                            bDescriptorSubtype      2 (INPUT_TERMINAL)
                            bTerminalID             1
                            wTerminalType      0x0201 Camera Sensor
                            bAssocTerminal          0
                            iTerminal               0 
                            wObjectiveFocalLengthMin      0
                            wObjectiveFocalLengthMax      0
                            wOcularFocalLength            0
                            bControlSize                  3
                            bmControls           0x0000000e
                              Auto-Exposure Mode
                              Auto-Exposure Priority
                              Exposure Time (Absolute)
                          VideoControl Interface Descriptor:
                            bLength                11
                            bDescriptorType        36
                            bDescriptorSubtype      5 (PROCESSING_UNIT)
                          Warning: Descriptor too short
                            bUnitID                 2
                            bSourceID               1
                            wMaxMultiplier          0
                            bControlSize            2
                            bmControls     0x0000177f
                              Brightness
                              Contrast
                              Hue
                              Saturation
                              Sharpness
                              Gamma
                              White Balance Temperature
                              Backlight Compensation
                              Gain
                              Power Line Frequency
                              White Balance Temperature, Auto
                            iProcessing             0 
                            bmVideoStandards     0x00
                          Endpoint Descriptor:
                            bLength                 7
                            bDescriptorType         5
                            bEndpointAddress     0x83  EP 3 IN
                            bmAttributes            3
                              Transfer Type            Interrupt
                              Synch Type               None
                              Usage Type               Data
                            wMaxPacketSize     0x0010  1x 16 bytes
                            bInterval               6
                        Interface Descriptor:
                          bLength                 9
                          bDescriptorType         4
                          bInterfaceNumber        1
                          bAlternateSetting       0
                          bNumEndpoints           1
                          bInterfaceClass        14 Video
                          bInterfaceSubClass      2 Video Streaming
                          bInterfaceProtocol      0 
                          iInterface              0 
                          Endpoint Descriptor:
                            bLength                 7
                            bDescriptorType         5
                            bEndpointAddress     0x82  EP 2 IN
                            bmAttributes            2
                              Transfer Type            Bulk
                              Synch Type               None
                              Usage Type               Data
                            wMaxPacketSize     0x0200  1x 512 bytes
                            bInterval               1
                            INTERFACE CLASS:  0f 24 01 02 67 03 82 00 05 02 01 01 01 00 00
                            INTERFACE CLASS:  0b 24 06 01 0c 00 01 00 00 00 00
                            INTERFACE CLASS:  1e 24 07 01 00 20 0a 98 07 00 d0 14 48 00 d0 14 48 4d c8 99 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 02 00 00 08 00 06 00 00 00 2d 00 00 00 2d 4d 02 60 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 03 00 80 07 38 04 00 c0 a9 1d 00 c0 a9 1d 4d 4a 3f 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 04 00 40 06 b0 04 00 40 77 1b 00 40 77 1b 4d 9a 3a 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 05 00 00 05 00 04 00 00 c0 12 00 00 c0 12 4d 02 28 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 06 00 00 05 c0 03 00 00 94 11 00 00 94 11 4d 82 25 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 07 00 00 05 d0 02 00 00 2f 0d 00 00 2f 0d 4d 22 1c 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 08 00 00 04 00 03 00 00 40 0b 00 00 40 0b 4d 02 18 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 09 00 20 03 58 02 00 d0 dd 06 00 d0 dd 06 4d a8 0e 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 0a 00 80 02 e0 01 00 00 65 04 00 00 65 04 4d 62 09 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 0b 00 40 01 f0 00 00 40 19 01 00 40 19 01 4d 5a 02 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 07 0c 00 20 0a 98 07 00 d0 14 48 00 d0 14 48 4d c8 99 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  2a 24 03 00 09 20 0a 98 07 00 08 00 06 80 07 38 04 40 06 b0 04 00 05 c0 03 00 05 d0 02 00 04 00 03 20 03 58 02 80 02 e0 01 00
                            INTERFACE CLASS:  1b 24 04 02 0c 59 55 59 32 00 00 10 00 80 00 00 aa 00 38 9b 71 10 01 00 00 00 00
                            INTERFACE CLASS:  1e 24 05 01 00 20 0a 98 07 00 90 6a 0e 00 90 6a 0e 00 c6 99 00 d5 dc 32 00 01 d5 dc 32 00
                            INTERFACE CLASS:  1e 24 05 02 00 00 08 00 06 00 00 00 0c 00 00 00 0c 00 00 60 00 a0 25 26 00 01 a0 25 26 00
                            INTERFACE CLASS:  1e 24 05 03 00 80 07 38 04 00 40 e3 09 00 40 e3 09 00 48 3f 00 80 84 1e 00 01 80 84 1e 00
                            INTERFACE CLASS:  1e 24 05 04 00 40 06 b0 04 00 c0 27 09 00 c0 27 09 00 98 3a 00 80 84 1e 00 01 80 84 1e 00
                            INTERFACE CLASS:  1e 24 05 05 00 00 05 00 04 00 00 40 0b 00 00 40 0b 00 00 28 00 47 f4 10 00 01 47 f4 10 00
                            INTERFACE CLASS:  1e 24 05 06 00 00 05 c0 03 00 00 8c 0a 00 00 8c 0a 00 80 25 00 47 f4 10 00 01 47 f4 10 00
                            INTERFACE CLASS:  1e 24 05 07 00 00 05 d0 02 00 00 ca 08 00 00 ca 08 00 20 1c 00 40 42 0f 00 01 40 42 0f 00
                            INTERFACE CLASS:  1e 24 05 08 00 00 04 00 03 00 00 80 07 00 00 80 07 00 00 18 00 40 42 0f 00 01 40 42 0f 00
                            INTERFACE CLASS:  1e 24 05 09 00 20 03 58 02 00 d0 dd 06 00 d0 dd 06 00 a6 0e 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 05 0a 00 80 02 e0 01 00 00 65 04 00 00 65 04 00 60 09 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 05 0b 00 40 01 f0 00 00 40 19 01 00 40 19 01 00 58 02 00 2a 2c 0a 00 01 2a 2c 0a 00
                            INTERFACE CLASS:  1e 24 05 0c 00 20 0a 98 07 00 90 6a 0e 00 90 6a 0e 00 c6 99 00 d5 dc 32 00 01 d5 dc 32 00
                            INTERFACE CLASS:  32 24 03 00 0b 20 0a 98 07 00 08 00 06 80 07 38 04 40 06 b0 04 00 05 00 04 00 05 c0 03 00 05 d0 02 00 04 00 03 20 03 58 02 80 02 e0 01 40 01 f0 00 00
                            INTERFACE CLASS:  06 24 0d 01 01 04
                        Interface Association:
                          bLength                 8
                          bDescriptorType        11
                          bFirstInterface         2
                          bInterfaceCount         2
                          bFunctionClass          1 Audio
                          bFunctionSubClass       0 
                          bFunctionProtocol       0 
                          iFunction               0 
                        Interface Descriptor:
                          bLength                 9
                          bDescriptorType         4
                          bInterfaceNumber        2
                          bAlternateSetting       0
                          bNumEndpoints           0
                          bInterfaceClass         1 Audio
                          bInterfaceSubClass      1 Control Device
                          bInterfaceProtocol      0 
                          iInterface              0 
                          AudioControl Interface Descriptor:
                            bLength                 9
                            bDescriptorType        36
                            bDescriptorSubtype      1 (HEADER)
                            bcdADC               1.00
                            wTotalLength       0x002b
                            bInCollection           1
                            baInterfaceNr(0)        3
                          AudioControl Interface Descriptor:
                            bLength                12
                            bDescriptorType        36
                            bDescriptorSubtype      2 (INPUT_TERMINAL)
                            bTerminalID             1
                            wTerminalType      0x0201 Microphone
                            bAssocTerminal          0
                            bNrChannels             2
                            wChannelConfig     0x0000
                            iChannelNames           0 
                            iTerminal               0 
                          AudioControl Interface Descriptor:
                            bLength                13
                            bDescriptorType        36
                            bDescriptorSubtype      6 (FEATURE_UNIT)
                            bUnitID                 2
                            bSourceID               1
                            bControlSize            2
                            bmaControls(0)     0x0001
                              Mute Control
                            bmaControls(1)     0x0002
                              Volume Control
                            bmaControls(2)     0x0002
                              Volume Control
                            iFeature                0 
                          AudioControl Interface Descriptor:
                            bLength                 9
                            bDescriptorType        36
                            bDescriptorSubtype      3 (OUTPUT_TERMINAL)
                            bTerminalID             3
                            wTerminalType      0x0101 USB Streaming
                            bAssocTerminal          0
                            bSourceID               2
                            iTerminal               0 
                        Interface Descriptor:
                          bLength                 9
                          bDescriptorType         4
                          bInterfaceNumber        3
                          bAlternateSetting       0
                          bNumEndpoints           0
                          bInterfaceClass         1 Audio
                          bInterfaceSubClass      2 Streaming
                          bInterfaceProtocol      0 
                          iInterface              0 
                        Interface Descriptor:
                          bLength                 9
                          bDescriptorType         4
                          bInterfaceNumber        3
                          bAlternateSetting       1
                          bNumEndpoints           1
                          bInterfaceClass         1 Audio
                          bInterfaceSubClass      2 Streaming
                          bInterfaceProtocol      0 
                          iInterface              0 
                          AudioStreaming Interface Descriptor:
                            bLength                 7
                            bDescriptorType        36
                            bDescriptorSubtype      1 (AS_GENERAL)
                            bTerminalLink           3
                            bDelay                  1 frames
                            wFormatTag         0x0001 PCM
                          AudioStreaming Interface Descriptor:
                            bLength                29
                            bDescriptorType        36
                            bDescriptorSubtype      2 (FORMAT_TYPE)
                            bFormatType             1 (FORMAT_TYPE_I)
                            bNrChannels             2
                            bSubframeSize           2
                            bBitResolution         16
                            bSamFreqType            7 Discrete
                            tSamFreq[ 0]         8000
                            tSamFreq[ 1]        11025
                            tSamFreq[ 2]        16000
                            tSamFreq[ 3]        22050
                            tSamFreq[ 4]        24000
                            tSamFreq[ 5]        44100
                            tSamFreq[ 6]        48000
                          Endpoint Descriptor:
                            bLength                 9
                            bDescriptorType         5
                            bEndpointAddress     0x84  EP 4 IN
                            bmAttributes            5
                              Transfer Type            Isochronous
                              Synch Type               Asynchronous
                              Usage Type               Data
                            wMaxPacketSize     0x0192  1x 402 bytes
                            bInterval               4
                            bRefresh                0
                            bSynchAddress           0
                            AudioStreaming Endpoint Descriptor:
                              bLength                 7
                              bDescriptorType        37
                              bDescriptorSubtype      1 (EP_GENERAL)
                              bmAttributes         0x01
                                Sampling Frequency
                              bLockDelayUnits         0 Undefined
                              wLockDelay         0x0192
                    
                    
                    

                    alexisdm a écrit:

                    Tu peux aussi essayer de forcer l'installation du driver, parce que dans ta vidéo, tu as laissé Windows vérifier que le VID:PID du driver et du périphérique correspondaient. Juste après "Parcourir mon poste de travail pour rechercher des pilotes", tu avais l'option "Choisir parmi une liste de pilotes disponibles sur mon ordinateur", qui devrait permettre de forcer l'installation du driver même si le VID:PID ne correspond pas (je ne

                    C’ est une option que j’ ai tenté à mainte reprise, mais pour éviter une vidéo trop longue je n’ ai pas filmé toutes ces tentatives.

                    alexisdm a écrit:

                    Mais si tu es dans les 15 jours après la réception de la caméra, tu peux ouvrir un litige auprès d'aliexpress en fournissant les preuves que le VID:PID de la caméra ne correspond pas à celui qui se trouve dans le fichier .inf du driver, captures d'écran à l'appui (le VID:PID sous Windows se trouve dans un des onglets  du périphérique: détails sur cette page). Généralement, Aliexpress tranche en faveur de l'acheteur.
                    Beaucoup de vendeurs essayent de convaincre de fermer les litiges, mais après clôture, il n'y a plus aucun recours possible.

                    J’ avais ouvert un litige dans les délais mais à ce moment je manquais d’ informations et j’ hésitais entre un problème Windows ou driver. J’ ai demandé directement un remboursement, surtout que j’ accusai le vendeur de m’ avoir envoyé le coûteux colis sans aucune protection. Ils ont refusé et demandé un renvoi du colis, mais cela m’ aurait coûté 160 € et pour moi sans aucune garantie de satisfaction, d’ autant que le vendeur faisait preuve de mauvaise foie, je trouvai que cette caméra m’ avait coûté assez chère. Aujourd’hui il est évident que le VID:PROD ne correspondent pas et j’ aurais des arguments plus solides.

                    -
                    Edité par caribert 10 août 2021 à 17:37:27

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 août 2021 à 2:37:19

                      J'ai regardé un peu le code de libseek-thermal et la fonction qui récupère une image, SeekDevice::fetch_frame, utilise le endpoint 0x81 qui a un type de transfert bulk, qui n'est pas présent dans le descripteur du périphérique 2ab8:a101, ça suppose qu'il devrait y avoir un autre périphérique USB derrière le hub.

                      Peut-être qu'il y a un problème de connexion au niveau du PCB entre la puce du hub USB (peut être une GL850 ou GL852, d'après le PID) et la puce qui gère la partie caméra thermique (une puce ARM NXP si c'est la même que la compact pro), comme une piste coupée, un connecteur mal enfiché, ou un composant grillé.

                      Ce qui est bizarre c'est que sous Windows, il semble que tu as 2 périphériques séparés non reconnus, alors que sous linux, il n'y a que le hub et la caméra visible et il n'y a apparemment pas d'erreur de connexion qui indiquerait que d'autres périphériques seraient présents. De plus, les 2 noms HJ_5MUSB et FYRGB apparaissent dans les messages du kernel sous linux, pour la caméra visible, alors que sous windows ces 2 noms semblent être liés à 2 périphériques différents.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 août 2021 à 11:17:38

                        alexisdm a écrit:

                        J'ai regardé un peu le code de libseek-thermal et la fonction qui récupère une image, SeekDevice::fetch_frame, utilise le endpoint 0x81 qui a un type de transfert bulk, qui n'est pas présent dans le descripteur du périphérique 2ab8:a101, ça suppose qu'il devrait y avoir un autre périphérique USB derrière le hub.

                        Ce modèle se branche sur smatphone, et il n’ y a qu’ une seule caméra ( a priori ) et donc la structure de fonctionnement est sensiblement différente, malgré tout il existe des points communs.

                        alexisdm a écrit:

                        Peut-être qu'il y a un problème de connexion au niveau du PCB entre la puce du hub USB (peut être une GL850 ou GL852, d'après le PID) et la puce qui gère la partie caméra thermique (une puce ARM NXP si c'est la même que la compact pro), comme une piste coupée, un connecteur mal enfiché, ou un composant grillé.

                        La puce est très exactement  GL850G de Genesys logic

                        Je joins des photos... GL850G

                        Je vais tester les retours data pour voir si elle est en cause. en supposant que la caméra spectre infrarouge est fonctionnelle.

                        Une bizarrerie me questionne, de la colle UV rouge  ? sur les entrées sorties des data .

                        Spectre infrarouge petite caméra

                        Aliementation - Hub

                        -
                        Edité par caribert 12 août 2021 à 11:31:39

                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 août 2021 à 16:00:26

                          Il manque semble t' il une résistance, sans schéma cela ne va pas être simple. Malheureusement ce manque peut jouer un rôle mineur. A voir...

                          La caméra à été visiblement démontée après sa fabrication.

                          un condensateur sur la caméra spectre infrarouge semble en court circuit, mais au vue du prix de la dite caméra le changement se fera en dernier.

                          Le prix de la caméra spectre infrarouge, impact lourdement le prix final. Et les marges sont en définif très inférieures à ce que l' on peut penser au premier abord.

                          -
                          Edité par caribert 13 août 2021 à 16:15:14

                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 août 2021 à 16:21:48

                            La programmation d’ une application en Qt communicant avec un périphérique connecté à un USB Universal Serial Bus s’ avère fréquente au final et mettre les mains dans le cambouis ne peut être que profitable pour un développeur, d’ autant que l’ USB ne peut que progresser et s’ avère une solution très pratique.

                            Le hub GL850G n’ est en fait pas en cause, ( j’ aurais en fait un petit stock ).

                            Par contre ce qui est défaillant est l'EEPROM qui devrait être programmé pour fournir des infos nécessaire et notamment les IdVendor et IdProduct.

                            Tout n’ est donc pas perdu puisque le datasheet du GL850G donne toutes les infos de programmation de cette EEPROM.

                            J’ ai d’ ailleurs modifier le fichier SeekWare.inf pour lui faire accepter les infos seulement disponibles et en forçant un peu la main à Windows il installe enfin ce driver mais l’ application ne fonctionne évidemment pas.

                            -
                            Edité par caribert 19 août 2021 à 19:54:43

                            • Partager sur Facebook
                            • Partager sur Twitter
                              20 août 2021 à 20:22:41

                              caribert a écrit:

                              Par contre ce qui est défaillant est l'EEPROM qui devrait être programmé pour fournir des infos nécessaire et notamment les IdVendor et IdProduct.

                              A priori, ce n'est pas un problème d'EEPROM, en tout cas pas celui de la puce du hub, il n'intervient pas dans l'affichage des idVendor/idProduct de ce qui est branché derrière.

                              Je pense qu'il est censé y avoir 2 périphériques USB distincts, en plus du hub:

                              • la caméra de spectre visible, qui n'a pas besoin de driver pour fonctionner, puisque c'est un périphérique UVC (USB Video Class) d'après ce que renvoie lsusb, et 
                              • la caméra de spectre thermique, qui là n'apparaît pas du tout, du moins sous linux.
                              Il faudrait voir les idVendor/IdProduct affiché sous Windows pour les périphériques FYRGB et HJ_5MUSB, mais je suppose que l'absence d'erreur sous linux indique que ces 2 périphériques sont des sous-périphériques de la caméra de spectre visible (ex: audio et vidéo séparés).

                              As tu vérifié qu'il y avait bien continuité entre les broches USBM, USBP de la puce GL850G (les broches 2,3 ou 8,9, ou 11,12 en fonction du port qu'ils ont utilisé) ainsi que sa broche 23 (5V) ou 24 (sortie du régulateur 3.3V du hub), et 3 des broches du connecteur J2 sur la petite carte de la caméra thermique quand tout est connecté ?

                              D'après la photo de la carte principale, on pourrait croire qu'il y a un défaut de soudure au niveau du connecteur J1, sur la broche centrale, mais comme c'est flou, c'est difficile d'être sûr (et tu l'aurais probablement remarqué en inspectant la carte).

                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 août 2021 à 20:20:32

                                alexisdm a écrit:

                                A priori, ce n'est pas un problème d'EEPROM, en tout cas pas celui de la puce du hub, il n'intervient pas dans l'affichage des idVendor/idProduct de ce qui est branché derrière.

                                5.2.5 EEPROM Setting

                                GL850Greplies to host commands by the default settings in the internal ROM. GL850Galso offers the ability to reply to the host according to the settings in the external EEPROM (LQFP48 supports 93C46 andQFN28/SSOP28only supports24C02). The detail setting information please refers to the USB 2.0 HubAP Note_EEPROM Infodocument

                                Dans le datasheet il est indiqué que l’ EEPROM externe est l’ informateur du hub pour notamment le VID et le PID entre autre. Le protocole de communication utilisé est l’ I2C.

                                En plus c’ est tout à fait cohérent avec les anomalies. Puisque l’ absence du VID et du PROD est le problème cela provient donc soit de l’ EEPROM soit de G850G, mais je pencherais plutôt pour l’ EEPROM.

                                Petit soucis « SSOP28 only supports 24C02 » et comme EEPROM externe C06AB, celle effectivement installée de (MITSUMI semble t’ il) mais avec datasheet introuvable.

                                Celle dont ils parlent sont des 8 pins mais celle installée est 5 pins, existe ou a existée mais est introuvable également.

                                Ceci dit je n’ exclus aucune autre piste.

                                Sous windows le driver ne s’ est installé seulement que lorsque j’ ai modifié l’ idVendor et idProduct et donc en trompant l’ installateur. Mais cela ne peut pas fonctionner bien sûr.

                                Le Hub pilote la distribution des flux de retour, mais également informe l’ installateur après avoir identifié les périphériques dans l’ EEprom externe.

                                D'après la photo de la carte principale, on pourrait croire qu'il y a un défaut de soudure au niveau du connecteur J1, sur la broche centrale, mais comme c'est flou, c'est difficile d'être sûr (et tu l'aurais probablement remarqué en inspectant la carte).

                                J’ ai inspecté l’ ensemble de la carte au microscope et détecté aucun problème, tout semble correct. à ce niveau là.



                                -
                                Edité par caribert 22 août 2021 à 8:35:19

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 août 2021 à 16:38:29

                                  caribert a écrit:

                                  Dans le datasheet il est indiqué que l’ EEPROM externe est l’ informateur du hub pour notamment le VID et le PID entre autre. Le protocole de communication utilisé est l’ I2C.

                                  Oui, mais c'est le VID PID du hub uniquement que tu peux changer par ce biais, pas des périphériques qui sont branchés derrière. Le hub est complètement transparent de ce point de vue. S'il n'y a pas de périphérique  289D:0010 PIR324 détecté par le PC, c'est qu'il n'est pas correctement connecté au hub, ou qu'il ne répond pas correctement, voire qu'il n'est pas alimenté. 

                                  caribert a écrit:

                                  Celle dont ils parlent sont des 8 pins mais celle installée est 5 pins, existe ou a existé mais est introuvable également.

                                  La puce à 5 broches est plus probablement un régulateur LDO. S'il y avait une eeprom, 24C02, elle serait connectée sur les broches TEST/14 pour SCL et PWREN1# pour SDA (d'après ce schéma, parce que la datasheet n'est pas claire la dessus pour la puce en SSOP28). Or, aucune des 2 broches n'est connectée.

                                  Si la grosse piste qui passe sous la puce GL850G est connectée au 5V (broche 23) et pas au 3.3V (broche 24), tu pourrais souder temporairement un câble USB directement à l'arrière du connecteur de la petite carte de la caméra thermique et tester cette caméra séparément, sinon, il faut trouver un moyen de l'alimenter en 3.3V, tout en connectant USBP, USBM et la masse directement.

                                  -
                                  Edité par alexisdm 22 août 2021 à 16:38:54

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 août 2021 à 20:39:09

                                    alexisdm a écrit:

                                    Oui, mais c'est le VID PID du hub uniquement que tu peux changer par ce biais, pas des périphériques qui sont branchés derrière. Le hub est complètement transparent de ce point de vue. S'il n'y a pas de périphérique  289D:0010 PIR324 détecté par le PC, c'est qu'il n'est pas correctement connecté au hub, ou qu'il ne répond pas correctement, voire qu'il n'est pas alimenté. 

                                    J’ ai du en parler dans mes premiers posts, j’ ai testé l’ alimentation de la caméra thermique et elle est bien alimentée.

                                    Je n’ envisage pas de modifier le VID :PID du hub, ce qui n’ aurait aucun intérêt mais de renseigner l’ EEPROM pour que le hub identifie les caméras derrières. U2 signifie CI, circuit intégré.

                                    J’ ai commandé une EEPROM 24C02 5 pins et nous allons être fixé assez rapidement, je vais procéder par étape.

                                    La puce à 5 broches est plus probablement un régulateur LDO. S'il y avait une eeprom, 24C02, elle serait connectée sur les broches TEST/14 pour SCL et PWREN1# pour SDA (d'après ce schéma, parce que la datasheet n'est pas claire la dessus pour la puce en SSOP28). Or, aucune des 2 broches n'est connectée.

                                    Tu ne peux pas le voir sur la photo mais ces deux broches sont bien connectées , l’ inverse n’ aurait aucun sens. Il y a deux couches et la seconde couche n’ est pas visible recto/verso, ce qui rend la lecture des pistes plus difficile encore.

                                    -
                                    Edité par caribert 23 août 2021 à 21:23:12

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      24 août 2021 à 13:28:13

                                      caribert a écrit:

                                      Je n’ envisage pas de modifier le VID :PID du hub, ce qui n’ aurait aucun intérêt mais de renseigner l’ EEPROM pour que le hub identifie les caméras derrières. I2 signifie CI, circuit intégré.

                                      Ce que je te répète, c'est qu'un hub USB n'a pas la possibilité de changer le VID:PID des périphériques qui sont branchés derrière. La doc du GL850G n'indique d'ailleurs que la possibilité de changer le VID:PID du hub lui-même:

                                      - Support customized PID, VID by reading external EEPROM

                                      Et tous les détails  dans le reste de la documentation concernent cette même fonctionnalité. Les autres éléments qui semblent être modifiables par l'eeprom sont les numéros des ports, leur activation/désactivation et leur vitesse.

                                      La raison pour laquelle je pense que ce serait un LDO plutôt qu'une eeprom est qu'il semble qu'il y a un pont diviseur sur une des broches, ce qui suggère une puce analogique, même si cette partie de la photo n'est pas très claire. Mais le schéma semble plutôt correspondre à une puce de protection contre les surintensités comme celle là: https://datasheet.lcsc.com/lcsc/1810121532_Silergy-Corp-SY6280AAC_C55136.pdf, l"organisation des résistances et condensateurs autour de la puce est quasi identique au schéma d'application, avec REN=R12, R13 comme résistance de pull-up pour activer la puce et la résistance Rset=R11 de 6800Ω correspond à un réglage de courant maximum de 1A.

                                      caribert a écrit:

                                      J’ ai du en parler dans mes premiers posts, j’ ai testé l’ alimentation de la caméra thermique et elle est bien alimentée.

                                      Oui, ça fait un point sur les 3 (connectée, alimentée, répond au hub), et tu n'as toujours pas indiqué si tu avais testé, la continuité des pistes USBP et USBM avec un multimètre entre les broches du hub sur le PCB principal et la sortie du connecteur FPC sur le PCB de la caméra thermique (voire même après le composant qui se trouve entre le connecteur et la puce de la carte de la caméra thermique qui est soit un réseau de filtres soit un réseau de résistances et/ou de diodes d'écrêtage), quand la nappe est connectée. Si la caméra est correctement alimentée et connectée, mais qu'elle ne répond pas, là tu ne pourras pas faire grand chose. 

                                      caribert a écrit:

                                      Il y a deux couches et la seconde couche n’ est pas visible recto/verso, ce qui rend la lecture des pistes plus difficile encore.

                                      J'avais compris qu'il y avait une face arrière, mais d'après le peu de vias visibles, il ne semble y avoir qu'un plan de masse et quelques pistes correspondant au moins au +5V  (en tout cas, il ne devrait pas y avoir de couche intermédiaire cachée si c'est ce que tu suggères, le marquage "FR4 2L" correspond à 2 couches en tout, 1 recto, 1 verso, mais j'ai peut-être mal compris ta phrase :)). Mais il ne semble pas qu'il y ai une résistance en plus qui correspondrait à la résistance de pullup sur PWREN1# pour une eeprom.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        20 novembre 2021 à 11:09:27

                                        J' avais mis de coté la recherche de panne, pour avoir déjà passé beaucoup trop de temps dessus. En abordant la recherche différemment je me suis concentré uniquement sur la caméra spectre thermique, en effet je pensais au départ que la gestion des deux flux était gérée en aval mais ce n' est pas le cas. Détectant un court circuit de très faible intensité je me suis concentré sur la puce couverte par un autocollant et pâte thermique et en lumière rasante j' ai découvert une fêlure qui s' avère être une fracture.

                                        Il s' agit d' un microcontrôleur basé sur le Cortex-M4 d'Arm, NXP LPC43S30FET100

                                        La détérioration de ce composant est très facile à expliquer, par la conception même du dissipateur excroissance du boîtier.

                                        En regardant le datasheet du microcontrôleur tout s’ explique.

                                        Malheureusement ce composant n ‘ est plus disponible, sauf à en commander plusieurs centaines.

                                        Je vais chercher vers des matériels au rebut, il a été beaucoup utilisé en médecine et en automobile notamment, semble t’ il.

                                        Je m’ interroge sur la programmation  du composant, j’ imagine que l’ installation du driver enregistre les données nécessaires.

                                        J’ avais commencé une application gérant les deux caméras, et on peut trouver des infos sur la gestion du protocole I2C, mais commencer un tel travail pour se concentrer sur une utilisation unique et maintenant obsolète ne me paraît pas judicieux. Je vais étudier plus attentivement ce projet.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          20 novembre 2021 à 17:11:07

                                          Ce n'est pas le driver qui programme le module, puisque le driver ne fait qu'enregistrer le périphérique USB dans la base de registre pour que l'application puisse y accéder par la bibliothèque libusb, le driver en lui-même n'est constitué que d'un fichier texte sans code. S'il y a une possibilité de mise à jour, elle doit être soit dans l'application de contrôle, soit dans un autre programme dédié.

                                          Le module semble faire partie de la gamme Mosaic Core de SeekThermal, d'après ce billet de blog, donc même si tu trouvais un microcontrôleur de remplacement, que tu arrivais à le souder et que tu avais les outils pour le flasher (stlink/jlink...), tu devras trouver un moyen de récupérer le firmware auprès de SeekThermal. Ils ont un portail de développement, mais il faut probablement avoir acheté un de leur kit de développement avant (440€ HT) pour y avoir accès et ces kits contiennent déjà un module Mosaic.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 novembre 2021 à 11:31:08

                                            alexisdm a écrit:

                                            Ce n'est pas le driver qui programme le module, puisque le driver ne fait qu'enregistrer le périphérique USB dans la base de registre pour que l'application puisse y accéder par la bibliothèque libusb, le driver en lui-même n'est constitué que d'un fichier texte sans code. S'il y a une possibilité de mise à jour, elle doit être soit dans l'application de contrôle, soit dans un autre programme dédié.

                                            Le module semble faire partie de la gamme Mosaic Core de SeekThermal, d'après ce billet de blog, donc même si tu trouvais un microcontrôleur de remplacement, que tu arrivais à le souder et que tu avais les outils pour le flasher (stlink/jlink...), tu devras trouver un moyen de récupérer le firmware auprès de SeekThermal. Ils ont un portail de développement, mais il faut probablement avoir acheté un de leur kit de développement avant (440€ HT) pour y avoir accès et ces kits contiennent déjà un module Mosaic.


                                            L’ installateur semble faire plus qu’ installer le driver, puisqu’ il communique avec le périphérique, avec comparaison de données, mais peu importe au final.

                                            Le vrai problème est de trouver un microcontrôleur de ce type et ce n’ est pas dans la poche. Ce composant à vraiment disparu, peut être traîne t’ il encore dans des fonds de tiroir d’ aliexpress mais je n’ ai trouvé aucune proposition, ni chez aucun autre fournisseur.

                                            Pour le rebillage et soudure, je peux faire aisément quand aux données préenregistrées dans le composant il semble que certaines soient malgré tout accessibles au vue des informations lors des tentatives d’ installation. J’ ai un programmateur avec amplificateur de signaux, ce sera le moment de le tester. Et ce composant semble être pré-programmé pour plusieurs utilisations possibles bien définies, mais on verra ce qui est possible le moment venu.

                                            « Le module semble faire partie de la gamme Mosaic Core de SeekThermal »

                                            En effet c’ est bien la totalité du module qui est intégré dans la caméra.

                                            -
                                            Edité par caribert 22 novembre 2021 à 11:32:34

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 novembre 2021 à 20:02:59

                                              caribert a écrit:

                                              L’ installateur semble faire plus qu’ installer le driver, puisqu’ il communique avec le périphérique, avec comparaison de données, mais peu importe au final.

                                              quand aux données préenregistrées dans le composant il semble que certaines soient malgré tout accessibles au vue des informations lors des tentatives d’ installation.

                                              Je ne sais pas si tu veux dire que la partie caméra thermique a marché à un moment, où si tu parles de la partie caméra optique qui fonctionne et pour laquelle tu as tenté de forcer l'installation du driver thermique... Comme ces 2 parties sont des périphériques USB distincts derrière un hub USB, le fonctionnement de l'un ne veut pas dire que l'autre fonctionne même un peu. Dans tout ce que tu as décrit, rien ne laisse penser que Windows ou Linux aient détecté la caméra thermique (et il n'y a pas d'erreur qui pourrait indiquer que la puce fonctionnerait, mais n'enverrait pas les bonnes informations).

                                              Un truc que je n'avais pas vu, c'est que le LPC43S30 n'a pas de mémoire flash, donc le programme est stocké dans la puce mémoire au dos du PCB (je l'avais lu dans le billet de blog, mais je pensais que l'auteur confondait avec une puce de RAM), sauf que si c'est un LPC43S30 et pas un LPC4330, le S signifie qu'elle a des extensions de sécurité, et donc le programe contenu dans cette mémoire est peut-être chiffrée en AES, avec une clé unique stockée dans la mémoire OTP (inscriptible une seule fois) du LPC43S30, donc pourrait rester illisible par une autre puce de même modèle sans cette clé. 

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                24 novembre 2021 à 11:13:05

                                                alexisdm a écrit:

                                                caribert a écrit:

                                                L’ installateur semble faire plus qu’ installer le driver, puisqu’ il communique avec le périphérique, avec comparaison de données, mais peu importe au final.

                                                quand aux données préenregistrées dans le composant il semble que certaines soient malgré tout accessibles au vue des informations lors des tentatives d’ installation.

                                                Je ne sais pas si tu veux dire que la partie caméra thermique a marché à un moment, où si tu parles de la partie caméra optique qui fonctionne et pour laquelle tu as tenté de forcer l'installation du driver thermique... Comme ces 2 parties sont des périphériques USB distincts derrière un hub USB, le fonctionnement de l'un ne veut pas dire que l'autre fonctionne même un peu. Dans tout ce que tu as décrit, rien ne laisse penser que Windows ou Linux aient détecté la caméra thermique (et il n'y a pas d'erreur qui pourrait indiquer que la puce fonctionnerait, mais n'enverrait pas les bonnes informations).

                                                Un truc que je n'avais pas vu, c'est que le LPC43S30 n'a pas de mémoire flash, donc le programme est stocké dans la puce mémoire au dos du PCB (je l'avais lu dans le billet de blog, mais je pensais que l'auteur confondait avec une puce de RAM), sauf que si c'est un LPC43S30 et pas un LPC4330, le S signifie qu'elle a des extensions de sécurité, et donc le programe contenu dans cette mémoire est peut-être chiffrée en AES, avec une clé unique stockée dans la mémoire OTP (inscriptible une seule fois) du LPC43S30, donc pourrait rester illisible par une autre puce de même modèle sans cette clé. 


                                                Mon doute sur l’ accès partiel aux données de LPC43S30 n’ est pas du au fonctionnement de la caméra à spectre normal , puisque les deux périphériques sont très clairement autonomes, avec deux alimentations distinctes. Le codage I2C leur permet d’ utiliser une connexion communes USB et le décodage se fait par l’ application qui sépare les signaux en deux canaux distinct.

                                                De mémoire, pendant l’ installation sur un ordinateur, windows installait systématiquement des drivers son, dont un microphone, ce qui correspond à une capacité incluse dans LPC43S30, Sur un autre ordinateur les drivers ne pouvait pas être installé mais il détectait nommément SeekThermal.

                                                Au vue de la politique commerciale de SeekThermal le chiffrage des données est très probable. Ce module est vendu en quantité pour l’ intégration dans une fabrication d’ autres appareils, à détection thermique.

                                                Le fabricant doit pouvoir valider le fonctionnement du module à un moment donné, aussi j’ espère que ces données sont encore accessibles, tous cela n’ est que supposition bien entendu.

                                                Si je peux dénicher un microcontrôleur NXP LPC43S30FET100, voir un module et seulement dans ce cas je poursuivrai mes investigations.

                                                Je dois me résoudre à me procurer une autre caméra thermique, et cela me contrarie beaucoup. Mais je me la procurerais en Europe.

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Gestion de flux pour caméras thermique , USB

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown