docs: def start_detection(cls, on_attached=None, on_detached=None):
          """
          Starts the device detection thread.
  
          :param on_attached: function to be called when a device is attached  **Callback definition:** *def callback(thread, device)*
          :type on_attached: function
          :param on_detached: function to be called when a device is detached  **Callback definition:** *def callback(thread, device)*
  
          :type on_detached: function
          """
          if not have_pyftdi:
              raise ImportError('The USBDevice class has been disabled due to missing requirement: pyftdi or pyusb.')
  
          cls.__detect_thread = USBDevice.DetectThread(on_attached, on_detached)
  
          try:
              cls.find_all()
          except CommError:
              pass
  
          cls.__detect_thread.start()