public static bool USBConnect(ref int version)
        {
            var usbDataIn = new byte[64];

            if (_usbDevice.IsWindowsXpOrLater())
            {
                FindMyDevice();
            }
            if (DeviceDetected)
            {
                _usbDevice.DoControlReadTransfer(ref usbDataIn, Convert.ToByte('a'), 0, 0);
                usbDataIn[4] = 0;

                var str = Encoding.UTF8.GetString(usbDataIn, 0, 4);

                str     = str.Replace(",", "."); // Different languages use different punctuation
                version = (UInt16)(Convert.ToDecimal(str) * 100);

                // read settings
                var settings = ReadSettings();
                DeviceSettingsManager.FromDeviceData(settings);
                return(true);
            }

            return(false);
        }