respeaker
Rust USB control library for Seeed ReSpeaker microphone arrays:
Example
use respeaker::{Model, ReSpeaker};
fn main() -> respeaker::Result<()> {
let dev = ReSpeaker::open()?;
println!("model: {}", dev.model());
dev.led().off()?;
println!("DOA: {}° voice={}", dev.tuning().doa_angle()?, dev.tuning().is_voice()?);
Ok(())
}
Unified helpers (led(), tuning().doa_angle(), is_voice(), version_string()) work on both models. Model-specific APIs:
- Mic Array v2:
dev.pixel_ring(), tuning().read("AGCONOFF")
- XVF3800:
dev.xvf3800(), tuning().read_xvf("DOA_VALUE"), save_configuration()
CLI example
cargo run --example cli -- model
cargo run --example cli -- test-all
cargo run --example cli -- --model xvf3800 led mono --color ff8800
cargo run --example cli -- --model xvf3800 led effect rainbow
cargo run --example cli -- param get DOA_VALUE
cargo run --example cli -- param set LED_COLOR 0xff8800
cargo run --example cli -- param set LED_DOA_COLOR 0x202020 0x00ff00
cargo run --example cli -- save-config
Permissions (Linux)
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2886", ATTR{idProduct}=="0018", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="2886", ATTR{idProduct}=="001a", MODE="0666"' \
| sudo tee /etc/udev/rules.d/60-respeaker.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
On macOS, grant the binary access if the system claims the USB device, or run with appropriate privileges.