Getting Started

Supported Devices

Open Apollo supports Universal Audio Apollo Thunderbolt and USB interfaces. Thunderbolt models use a native Linux kernel driver. USB models use a pure-userspace stack (UAC 2.0 audio + patched snd-usb-audio — no kernel module required).


Thunderbolt devices

ModelDevice TypePlaybackRecordPreampsHiZStatus
Apollo 8P (original)0x0A262682Needs Testing
Apollo Solo0x273210Needs Testing
Arrow0x283210Needs Testing
Apollo Twin X0x238822Needs Testing
Apollo Twin X Gen 20x3A8822Needs Testing
Apollo x40x1F242242Partially Verified
Apollo x4 Gen 20x36242242Needs Testing
Apollo x60x1E242242Needs Testing
Apollo x6 Gen 20x35242242Needs Testing
Apollo x80x22262642Needs Testing
Apollo x8 Gen 20x37262642Needs Testing
Apollo x8p0x20262682Needs Testing
Apollo x8p Gen 20x38262682Needs Testing
Apollo x160x21343482Needs Testing
Apollo x16 Gen 20x39343482Needs Testing
Apollo x16D0x2A343400Needs Testing

USB devices

USB Apollo models use UAC 2.0 audio. No kernel module is required — the FX3 firmware is uploaded from userspace on each power-on, and snd-usb-audio (with a 4-patch out-of-tree build) handles audio streaming. See USB RE findings for protocol details.

ModelVIDPID (live)PlaybackRecordPreampsHiZStatus
Apollo Solo USB0x2B5A0x000D61022Verified
Apollo Twin USB0x2B5A0x000222Needs Testing
Apollo Twin X USB0x2B5A0x000F22Needs Testing

USB setup uses sudo bash scripts/install-usb.sh. See Installation for details, or USB RE findings for protocol details.


Column definitions

  • Playback: Number of playback (output) channels at 48 kHz
  • Record: Number of record (input) channels at 48 kHz
  • Preamps: Number of analog preamp inputs with gain/48V/PAD controls
  • HiZ: Number of preamp channels that support Hi-Z (instrument) input
  • Status: Whether the model has been tested on Linux with this driver

What "Verified" means

Thunderbolt (Apollo x4)

The Apollo x4 is the primary development and test device. On this model, the following features are confirmed working:

  • Full duplex audio with 4 analog inputs (Mic 1-4) and 6 analog outputs (Monitor L/R, Line Out 1-4) verified
  • The driver exposes all 24 playback / 22 record ALSA channels, but S/PDIF, ADAT, and virtual (DAW playback) channels are unverified and likely not working
  • All six sample rates (44.1, 48, 88.2, 96, 176.4, 192 kHz)
  • Preamp gain control (all 4 channels)
  • Preamp flags: 48V phantom power, PAD, low cut, phase invert, mic/line switching
  • Monitor volume, mute, dim, mono, talkback
  • DSP mixer routing (analog buses only — digital bus routing untested)
  • ALSA integration with 50+ mixer controls

USB (Apollo Solo USB)

The Apollo Solo USB is fully verified on Ubuntu Studio 24.04 / Intel Tiger Lake-H (confirmed by contributor @stoneiboyz-sys). Full duplex is working with no daemon required:

  • 6ch playback (S32_LE 48kHz) confirmed on Ubuntu Studio 24.04 (kernel 6.17, Intel) and CachyOS (kernel 6.19, AMD)
  • 10ch capture — confirmed working on Ubuntu Studio 24.04; one-shot usb-full-init.py (38 packets, includes DSP program load) then modprobe snd_usb_audio
  • PipeWire capture — mic input working; Discord voice calls and pw-record confirmed
  • PipeWire playback — browser audio, system audio, DAWs working
  • Hardware monitoring — mic → headphones simultaneous with active PipeWire streams
  • Preamp gain, 48V, monitor level/mute — working via vendor control 0x03 (seq counter fix applied)
  • No daemon required — EP6 drain daemon removed; one-shot init is stable

Known limitation: usb-full-init.py crashes at packet 28 on some firmware builds (IIR biquad SRAM address mismatch — observed on CachyOS/AMD with a different Cauldron build). Playback-only still works on those systems.

See USB RE findings for the full protocol details.


What "Needs Testing" means

These models are recognized by the driver and have correct channel count configurations, but have not been tested on actual hardware. They likely work — the Apollo product line shares a common architecture — but may need adjustments to routing tables or feature flags.


How to help

If you own an Apollo model marked "Needs Testing", your contribution would be extremely valuable. Even basic testing (does the driver load? does ALSA see the device? does audio play?) helps us mark models as verified.

See How to Contribute for details, or jump straight to the device capture guides:

You can also run the quick probe script on Linux:

sudo ./tools/contribute/device-probe.sh

This reads basic device information and outputs a report you can submit.

Previous
Installation