Reproducible USB disconnect (LAN9500A/eth0) triggered by motor current transients — VOXL 2 Mini + Doodle Labs radio, 6S build
-
HARDWARE
- VOXL 2 Mini (M0104), voxl-px4 1.14.0-2.0.133 (PX4 v1.14), voxl-mavlink-server 1.4.14
- Doodle Labs Smart Radio RM-1700-22M3, connected per the Doodle Labs user guide:
Port 1 (USB device) -> custom harness mimicking MCBL-00080 wiring but with
ADDED LENGTH (D-, D+, GND on J3 pins 2/3/4, no VBUS; unshielded discrete
JST-GH wires) -> VOXL J3. Radio appears as SMSC LAN9500A bridge -> eth0 - Radio powered separately: Port 4 from a 5V/5A Pololu buck (battery-fed)
- VOXL 2 Mini powered from the VOXL ESC's regulated output (supported config per docs)
- 6S pack, quad-X, VOXL 4-in-1 ESC (UART), ~40 A peak bench currents
- ESC firmware: as shipped (will attach
voxl-esc scanoutput; can update from
the voxl-esc repo if a newer build is recommended)
SYMPTOM
Every 2-5 s after arming (and reproducibly during motor transients), the USB
device drops off the bus and re-enumerates. ~2.5 s network outage each time ->
QGC loses telemetry, PX4 declares "Manual control lost" -> failsafe. dmesg shows
a clean detach with NO preceding errors:usb 1-1: USB disconnect, device number 7
smsc95xx 1-1:1.0 eth0: unregister 'smsc95xx' ... USB 2.0 Ethernet
QTI:TETHERED link down
usb 1-1: new high-speed USB device number 8 using xhci-hcd
smsc95xx 1-1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1No xhci transaction errors, no resets, no driver messages before any event.
Also occasional spontaneous flaps in the first minutes after boot (motors off),
often in bursts of 2-3 disconnects within seconds ("bounce storms").KEY REPRODUCTION (no arming involved)
Stepping all 4 motors 0 <-> 65% viaactuator test(props off) produces 2-6
disconnects per 8 steps, every run. Holding all 4 motors at a constant 45% for
20+ s produces ZERO disconnects. So it correlates with dI/dt (current change),
not current level, vibration, or the arming software path.ELIMINATED BY DIRECT TEST
- Software: auto suspend disabled at all levels, no USB2 LPM on this kernel,
rx_parse_errors=0, MAVLink v2 both ends, logging (SDLOG) A/B tested, arming
logic excluded by the actuator_test reproduction above - Radio supply headroom: 2.4A regulator replaced with 5A -> no change
- Harness: replaced entirely -> no change (both were unshielded JST harnesses)
- Power lead radiation: 12AWG battery leads bundled/rerouted -> no change
- Mechanical: J3 connector reseat + strain relief cured an earlier
wiggle-to-disconnect sensitivity, but transient-triggered flaps persist - VOXL on bench supply (instead of ESC output): background flaps stopped and
pulse-induced flaps dropped ~6 -> ~2 per run, but not zero
CURRENT HYPOTHESES (in order)
- ESC input bulk capacitor: this is a 6S build and the ESC's provided
capacitor is installed at the battery connector, NOT at the ESC input pads
(about to move it -- per @Alex Kushleyev's note that 6S without the cap
causes "excessive noise") - Common-mode/ground transient across the unshielded USB harness (planning a
bonded ground strap routed with the harness + snap ferrites) - Residual: VOXL-side rail dip when powered from ESC aux during transients
QUESTIONS
- Is this failure signature known on VOXL 2 (Mini) builds with higher-current
ESCs? Any documented fix? - Does ModalAI have a recommended ferrite / common-mode choke or shielded
harness option for the J3 USB link in electrically noisy builds? - Is powering VOXL 2 Mini from the ESC regulated output advisable on a 6S
~40A-transient airframe, or is the M0041-4 power module strongly preferred? - Any known sensitivity of the QRB5165 USB host (xhci) to ground transients
that would argue for specific layout practice? - Is there a current VOXL ESC firmware release with improvements relevant to
6S electrical noise / switching behavior, and is updating recommended here?
(Happy to flash latest from the voxl-esc repo if so.) - Baseline parameters: for a custom 9-inch VOXL 2 Mini build, which platform
file should be the starting baseline? The candidates in
voxl-px4-params/params/v1.14/platforms are:- VOXL_2_defaults.params
- VOXL_2_fpv_defaults.params
- M500_FCV1.params
- M500_FCV2.params
My understanding is the M500_FCV* files target Flight Core hardware and
should NOT be loaded on a VOXL 2 Mini -- can you confirm VOXL_2_defaults is
the correct base for this board, plus frame-specific CA_/VOXL_ESC_ on top?
- USB harness between the radio and VOXL J3: ours is a custom cable that
mimics the MCBL-00080 wiring but is LONGER than the stock cable (unshielded
discrete JST-GH conductors, no twisted pair). Is there a maximum recommended
length for the J3 USB 2.0 HS harness in a noisy airframe? Does ModalAI offer
(or recommend building) a shielded and/or twisted-pair version for longer
runs, and could the added length alone plausibly account for transient-
induced disconnects like the above?
Happy to provide full dmesg logs, ulogs, and the reproduction script.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login