diff --git a/components/odrive_ascii/web/odrive_control_panel.html b/components/odrive_ascii/web/odrive_control_panel.html index 5d860a5f3c..4afdd64376 100644 --- a/components/odrive_ascii/web/odrive_control_panel.html +++ b/components/odrive_ascii/web/odrive_control_panel.html @@ -671,11 +671,13 @@

Device

async function connect() { try { - // `{ filters: [] }` is not a valid "any device" request in Chromium's - // WebUSB; use the explicit `acceptAllDevices` flag for that path. + // WebUSB has no `acceptAllDevices` option (that is Web Bluetooth) -- + // `filters` is a required member, and a single empty filter object `{}` + // matches every device. The default filter is VID-only so any espp + // device (VID 0x1209) is offered, not just the ODrive PID. const options = els.anyDevice.checked - ? { acceptAllDevices: true } - : { filters: [{ vendorId: DEFAULT_VID, productId: DEFAULT_PID }] }; + ? { filters: [{}] } + : { filters: [{ vendorId: DEFAULT_VID }] }; device = await navigator.usb.requestDevice(options); } catch (e) { // Only NotFoundError is a user cancel / no-match; anything else is real. @@ -1455,7 +1457,7 @@

Device

setStatus("", "Disconnected"); setConnectedUI(false); logLine("sys", "Ready. Click Connect and pick the ODrive native (vendor) USB device."); - logLine("sys", `Default filter: VID 0x${DEFAULT_VID.toString(16)} / PID 0x${DEFAULT_PID.toString(16)}. Tick "Any device" to see all.`); + logLine("sys", `Default filter: any espp device (VID 0x${DEFAULT_VID.toString(16)}). Tick "Any device" to see all.`); logLine("sys", "This panel speaks the native (Fibre-endpoint) BINARY protocol, not ASCII."); drawPlot(); updateLegend(); } diff --git a/components/odrive_ascii/web/odrive_webusb_console.html b/components/odrive_ascii/web/odrive_webusb_console.html index 1981ce92a6..7387e1dfce 100644 --- a/components/odrive_ascii/web/odrive_webusb_console.html +++ b/components/odrive_ascii/web/odrive_webusb_console.html @@ -674,12 +674,13 @@

Misc

// 1) Ask the user to pick a device. Default filter targets the espp // ODrive vendor VID/PID; "Any device" shows every device instead. try { - // Note: `{ filters: [] }` is NOT a valid "show all devices" request in - // Chromium's WebUSB (it requires at least one filter or the explicit - // `acceptAllDevices` flag). Use `acceptAllDevices: true` for that path. + // WebUSB has no `acceptAllDevices` option (that is Web Bluetooth) -- + // `filters` is a required member, and a single empty filter object `{}` + // matches every device. The default filter is VID-only so any espp + // device (VID 0x1209) is offered, not just the ODrive PID. const options = els.anyDevice.checked - ? { acceptAllDevices: true } - : { filters: [{ vendorId: DEFAULT_VID, productId: DEFAULT_PID }] }; + ? { filters: [{}] } + : { filters: [{ vendorId: DEFAULT_VID }] }; device = await navigator.usb.requestDevice(options); } catch (e) { // Only a NotFoundError means the user dismissed the chooser (or nothing @@ -1184,7 +1185,7 @@

Misc

setStatus("", "Disconnected"); setConnectedUI(false); logLine("sys", "Ready. Click Connect and pick the ODrive vendor USB device."); - logLine("sys", `Default filter: VID 0x${DEFAULT_VID.toString(16)} / PID 0x${DEFAULT_PID.toString(16)}. Tick "Any device" to see all.`); + logLine("sys", `Default filter: any espp device (VID 0x${DEFAULT_VID.toString(16)}). Tick "Any device" to see all.`); drawSpark(); }