Hey mmashaghi - yes, 03e7:2485 is the Myriad X unbooted/ROM state. In our stack it maps to X_LINK_UNBOOTED. After boot, the USB PID changes, e.g. 03e7:f63b for X_LINK_BOOTED.
At a high level, the supported host flow is:
- Discover device in
X_LINK_UNBOOTED
- Load the DepthAI
.mvcmd firmware binary
- Send it with XLink’s boot path, internally
XLinkBootMemory(...)
- Wait for USB re-enumeration into the booted XLink state
- Connect/open XLink streams normally
Relevant source pointers:
depthai-core/src/device/DeviceBase.cpp - handles unbooted / bootloader / booted device states
depthai-core/src/xlink/XLinkConnection.cpp - calls XLinkBootMemory(...)
depthai-core/src/utility/Resources.cpp - loads embedded MyriadX firmware / bootloader firmware
- XLink source:
src/pc/protocols/usb_host.cpp maps 03e7:2485 to X_LINK_UNBOOTED
src/pc/protocols/usb_host.cpp contains the USB boot bulk-write path
src/shared/XLinkDevice.c exposes XLinkBootMemory(...)
The firmware upload protocol itself is not documented as a supported public Android USB Host API protocol. It is an internal implementation detail of XLink/libusb, and we do not currently support bypassing the DepthAI/XLink stack or reimplementing the boot flow directly on Android.
So unfortunately this is outside what we can support/debug. The best reference is the XLink implementation, but we can’t provide a stable packet-level protocol contract for custom Android USB Host API integration.