Desktop controller for FiiO K13 R2R DAC/AMP with full EQ management and AutoEQ integration.
FiiO K13 R2R Control is a native desktop application for controlling the FiiO K13 R2R DAC/AMP via USB HID. Built by reverse-engineering the FiiO Control web app, it communicates directly with the device over USB ā no Bluetooth required.
The app provides a full 10-band parametric EQ editor, preset management, and one-click headphone correction from the AutoEQ database.
rusbUSB permissions: You may need a udev rule to access the device without root. Create
/etc/udev/rules.d/99-fiio.rules:SUBSYSTEM=="usb", ATTR{idVendor}=="2972", MODE="0666"Then run
sudo udevadm control --reload-rules && sudo udevadm trigger.
git clone https://github.com/SmookeyDev/fiio-k13-control.git
cd fiio-k13-control
bun install
sudo dnf install rust cargo webkit2gtk4.1-devel libusb1-devel libappindicator-gtk3-devel
bun run tauri dev
bun run tauri build
The K13 R2R communicates over USB HID on interface 3 using interrupt transfers (EP OUT 0x02, EP IN 0x83, Report ID 0x07).
Packets follow a fixed structure:
TX: [0xAA] [DIR] [00] [LEN] [CMD] [SUB] [DATA...] [zero-padded to 64 bytes]
RX: [0xBB] [DIR] [00] [LEN] [CMD] [SUB] [DATA...]
DIR ā 0x01 = GET (read from device), 0x02 = SET (write to device)CMD ā Command ID (e.g., 0x07 = EQ band, 0x09 = preset selection)SUB ā Sub-command or band index[sign_byte][abs_value Ć 10], where sign 0x01 = negative[integer_part][decimal Ć 10]0=Peak, 1=LSC, 2=HSC, 3=BPF, 4=LPF, 5=HPF, 6=APFāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Svelte 5 Frontend ā
ā (Runes + SvelteKit) ā
ā ā ā
ā invoke() āāāŗ Tauri IPC ā
āāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāā
ā Rust Backend ā
ā commands.rs ā device.rs ā
ā ā ā
ā rusb āāāŗ USB HID ā
āāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāā
ā FiiO K13 R2R ā
ā (Interface 3, EP 0x02/83) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ParametricEQ.txt for that modelThis project is licensed under the MIT License - see the LICENSE file for details.