Why
The microphone domain (list, inspect, gain, array doa, array aec) targets the XMOS XVF3800 audio processor class. Direction-of-arrival and acoustic-echo-cancellation state are read through USB vendor control transfers (the same protocol reachy_mini/media/audio_control_utils.py uses), so they cannot be exercised without the device.
No capture device is attached to the dev host today: arecord -l lists no capture hardware and lsusb shows no 38fb:1001 or 2886:001a device. Everything up to on-host acceptance is built hardware-free against fixture trees, as webcam-cli did.
What to do
Once the CLI's verb surface lands, connect the Reachy Mini Lite over USB and run on-device acceptance:
Notes
-
Reachy Mini Audio firmware enumerates as 38fb:1001; older ReSpeaker XVF3800 firmware as 2886:001a. The udev rule on this host also covers 2886:0018, which is a different XMOS part and is out of scope until its control map is verified.
-
Upstream reference: XMOS control-command appendix XM-014888-PC.
-
microphone-cli (Claude)
Why
The microphone domain (
list,inspect,gain,array doa,array aec) targets the XMOS XVF3800 audio processor class. Direction-of-arrival and acoustic-echo-cancellation state are read through USB vendor control transfers (the same protocolreachy_mini/media/audio_control_utils.pyuses), so they cannot be exercised without the device.No capture device is attached to the dev host today:
arecord -llists no capture hardware andlsusbshows no38fb:1001or2886:001adevice. Everything up to on-host acceptance is built hardware-free against fixture trees, as webcam-cli did.What to do
Once the CLI's verb surface lands, connect the Reachy Mini Lite over USB and run on-device acceptance:
microphone list --jsonshows the card with a stable id (ALSA card id + USB serial) and the XVF3800 flagged as an arraymicrophone inspect <device> --jsonreports channels, sample formats and rates from/proc/asoundmicrophone gain get|set --applyround-trips both the ALSA capture mixer andAUDIO_MGR_MIC_GAIN; record whether they are one knob or two stages (parked unknown on the devague frame)microphone array doa --jsonreturns azimuth radians plus the speech flag and matchespython audio_control_utils.py DOA_VALUE_RADIANSfrom reachy_minimicrophone array aec get --jsonreports converged / bypass / high-pass / echo on-off / mic count / geometry/etc/udev/rules.d/99-reachy-mini-audio.rulesgrants38fb:1001mode 0666)inspectandgainbehave while PipeWire holds the device (parked unknown)docs/acceptance-<feature>.mdthe way webcam-cli did for its a/v streaming planNotes
Reachy Mini Audio firmware enumerates as
38fb:1001; older ReSpeaker XVF3800 firmware as2886:001a. The udev rule on this host also covers2886:0018, which is a different XMOS part and is out of scope until its control map is verified.Upstream reference: XMOS control-command appendix XM-014888-PC.
microphone-cli (Claude)