Skip to content

04 — Audio I/O

  • Full-duplex PCIe audio through the Tang Mega 138K Pro, presented to Linux as standard ALSA PCM by an Auvra-owned driver (17).
  • Initially 2 analog inputs and 4 analog outputs, each available at the instrument panel as balanced XLR and unbalanced jack line I/O. Connector wiring, level, impedance, protection and whether both outputs may be active together require an analog-front-end design; neither module alone proves it.
  • Low measured round-trip and key-to-sound latency, stable at small buffers.
  • The N100’s onboard ALC897 is unbalanced consumer audio and is not used.1

The N100DC-ITX has a PCIe 3.0 x4 slot with x2 electrical lanes. The exact negotiated width/speed with the Tang board is a bring-up measurement, not an assumption from the card’s x4 capability.1

One Sure Electronics AA-AB41164 A2D-PCM1822 stereo ADC provides the first two inputs; two AA-AB41166 ASCM-D2A-PCM5122 stereo DAC boards provide four outputs. The ADC supports differential and single-ended input; the DAC is described with differential XLR and single-ended analog output.23 These are I²S converter modules, not a finished ALSA card. FPGA I²S/TDM, clock distribution, PCIe DMA, the kernel driver, analog-panel conditioning, power and fault recovery remain implementation work. The initial three boards do not populate the 16-in/16-out digital fabric capacity in doc 17.

Balanced XLR and unbalanced jack are separate product connections for both input and output. Do not hard-wire balanced and unbalanced outputs in parallel without verifying drive/load behaviour; do not connect phantom power to these line inputs. Sample rates, common clocking, digital voltage, analog levels, noise, thermal behaviour and full-duplex RTL are acceptance measurements.

Interface Bus Balanced out Linux RTL @ 48 kHz ≈ Price Notes
RME Babyface Pro FS USB 2× XLR (+2 phones) Class-compliant (CC mode)4 ~3.85 ms (good USB) – ~6 ms5 $749 Gold-standard Linux behaviour; compact.
RME HDSPe AIO Pro PCIe via breakout (XLR opt.) Driver snd-hdspe (DKMS) — not snd-hdspm6 lowest (PCIe DMA) ~$800 Uses the PCIe slot; buy XLR breakout separately.
RME Fireface UCX II USB 8× balanced TRS Class-compliant4 ~3–6 ms ~$1300 Overkill on I/O; rackmount.
MOTU UltraLite mk5 USB 10× balanced TRS Class-compliant7 ~5–8 ms $699.95 Lots of balanced outs; mixer/DSP onboard.
MOTU M4 USB 4× balanced TRS Class-compliant8 ~8–12 ms (48 k); ~6.5 ms @ 96 k/645 $279.95 Best budget balanced pick.
Focusrite Scarlett (4th gen, large) USB balanced TRS Large 4th-gen (18i16/18i20) need kernel ≥ 6.14 + fcp-server; small/3rd-gen use in-kernel scarlett29 ~5–8 ms $300–650 More Linux moving parts than RME/MOTU.
flowchart TD
    Q{"Priority?"}
    Q -->|"Best all-round<br/>(balanced + Linux + latency)"| BF["RME Babyface Pro FS<br/>USB · class-compliant · 2× XLR"]
    Q -->|"Absolute lowest latency<br/>& OK with DKMS"| HD["RME HDSPe AIO Pro<br/>PCIe · snd-hdspe"]
    Q -->|"Tight budget"| M4["MOTU M4<br/>USB · 4× balanced TRS · $280"]
  • Bench baseline: RME Babyface Pro FS (USB). Class-compliant on Linux, balanced XLR stereo out, and useful as the measured comparator for the FPGA card.45
  • Budget: MOTU M4 (USB). Four balanced TRS outs, class-compliant, ~$280; accept higher Linux latency or run 96 kHz/64 frames for ~6.5 ms.85
  • Lowest-latency / PCIe: RME HDSPe AIO Pro. PCIe DMA gives the tightest RTL and frees all USB ports, but requires the out-of-tree snd-hdspe DKMS module (the in-tree snd-hdspm does not cover the AIO Pro — verified against kernel source) and a separately-purchased XLR breakout.6

Bench versus product: start software and latency testing on USB; the selected integrated target is the Tang PCIe card. Preserve the external device as a fallback until the FPGA path meets the measured gates in doc 17. The RME HDSPe is a comparison option, not an intermediate product commitment.

  • Reboot state (RME CC mode): in class-compliant mode some settings (mic gain, phantom power) reset on power-cycle. Add a small startup script to restore them.5
  • USB port quality: for best USB RTL, give the interface its own controller/port; a discrete Renesas µPD720201 USB card measurably lowered RME RTL in testing — but that would consume the single PCIe slot, so only relevant if not using PCIe audio.5
  • Balanced wiring into the panel: bring the XLR/TRS outs to panel-mount connectors on the S90 rear; keep analog runs away from the 19 V switching and the digital harness (08).
  • Inputs: the integrated target requires two line-level inputs. Microphone preamps and phantom-power support are separate decisions, not implicit in an XLR socket.
  1. ASRock, “N100DC-ITX” specification (ALC897, PCIe x2, USB count). https://www.asrock.com/mb/Intel/N100DC-ITX/index.asp ↩ ↩2

  2. Sure Electronics, “AA-AB41164 A2D-PCM1822” stereo ADC. https://store.sure-electronics.com/product/813 ↩

  3. Sure Electronics, “AA-AB41166 ASCM-D2A-PCM5122” stereo DAC. https://store.sure-electronics.com/product/829 ↩

  4. RME, “Babyface Pro FS” — Class Compliant mode, 2× XLR balanced + 2 phones. https://rme-audio.de/babyface-pro-fs.html ↩ ↩2 ↩3

  5. RTL figures and CC-mode/USB-port notes per research synthesis (RME ~3.85–6 ms; MOTU M4 ~8–12 ms @ 48 k, ~6.5 ms @ 96 k/64). See references.md. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  6. snd-hdspe out-of-tree driver for RME HDSPe AIO/AIO Pro (the in-tree snd-hdspm does not cover the AIO Pro). Original: PhilippeBekaert/snd-hdspe; actively maintained fork: Schroedingers-Cat/snd-hdspe. https://github.com/PhilippeBekaert/snd-hdspe ↩ ↩2

  7. MOTU, “UltraLite-mk5” — 10 balanced TRS line outs, USB class-compliant, $699.95. https://motu.com/en-us/products/gen5/ultralite-mk5/specs/ ↩

  8. MOTU, “M4” — 4 balanced TRS outs, class-compliant, $279.95. https://motu.com/en-us/products/m-series/m4/ ↩ ↩2

  9. Large Focusrite Scarlett 4th-gen models require kernel ≥ 6.14 (in-tree FCP driver) plus the fcp-server userspace daemon; smaller/3rd-gen use the in-kernel scarlett2 driver. https://github.com/geoffreybennett/fcp-support ↩