diff --git a/lib/usb.js b/lib/usb.js index 80ed93c..84c83e0 100644 --- a/lib/usb.js +++ b/lib/usb.js @@ -19,6 +19,7 @@ const VENDOR_DEVICE_LIST = [ { vid: 0x413c, pid: 0x8143 }, // Broadcom BCM20702A0 { vid: 0x0a12, pid: 0x0001 }, // CSR { vid: 0x0b05, pid: 0x17cb }, // ASUS BT400 + { vid: 0x0b05, pid: 0x190e }, // ASUS USB-BT500 (Realtek RTL8761B) { vid: 0x8087, pid: 0x07da }, // Intel 6235 { vid: 0x8087, pid: 0x07dc }, // Intel 7260 { vid: 0x8087, pid: 0x0a2a }, // Intel 7265 @@ -279,6 +280,13 @@ BluetoothHciSocket.prototype.onHciEventEndpointData = function (data) { debug('reset complete'); this._isUp = true; this.emit('state', this._isUp); + } else if (!this._isUp && this._mode === 'raw' && buf.length > 0 && buf.readUInt8(0) === 0x0e) { + // Fallback: accept any Command Complete event as reset acknowledgment. + // Some controllers (e.g. Realtek RTL8761B) don't send the standard reset + // complete response but the device is functional once past initialization. + debug('reset complete (fallback)'); + this._isUp = true; + this.emit('state', this._isUp); } // reset buffer