code: def getAllConnectedInterface():
          
          # find all devices matching the vid/pid specified
          dev = usb.core.find(idVendor=0x2886, idProduct=0x0007)
  
          if not dev:
              logging.debug("No device connected")
              return []
  
          interface_number = -1
  
          # get active config
          config = dev.get_active_configuration()
  
          # iterate on all interfaces:
          #    - if we found a HID interface
          for interface in config:
              if interface.bInterfaceClass == 0x03:
                  interface_number = interface.bInterfaceNumber
                  break
  
          if interface_number == -1:
              return []
  
          try:
              if dev.is_kernel_driver_active(interface_number):
                  dev.detach_kernel_driver(interface_number)
          except Exception as e:
              print(e)
  
          ep_in, ep_out = None, None
          for ep in interface:
              if ep.bEndpointAddress & 0x80:
                  ep_in = ep
              else:
                  ep_out = ep
  
          """If there is no EP for OUT then we can use CTRL EP"""
          if not ep_in:
              logging.error('Endpoints not found')
              return []
  
          board = PyUSB()
          board.ep_in = ep_in
          board.ep_out = ep_out
          board.dev = dev
          board.intf_number = interface_number
          board.start_rx()
  
          return [board]
docs: returns all the connected devices which matches PyUSB.vid/PyUSB.pid.
          returns an array of PyUSB (Interface) objects