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();
}