Giter Club home page Giter Club logo

adat-usb2-audio-interface's Introduction

ADAT USB Audio Interface

FPGA based USB 2.0 High Speed audio interface featuring multiple optical ADAT inputs and outputs

BlockDiagram

Status / current limitations

  • Enumerates as class compliant audio device on Windows and Linux (Mac OS not tested). 2 and 32 channel modes.
  • Audio input and output seems to work glitch free.
  • Only 48kHz sample rate supported
  • Integrated USB2 high speed logic analyzer works
  • Runs without dropouts with FlexASIO with a buffer size of 32 samples (0.67ms latency)
  • Has a hardware roundtrip latency (USB out -> ADAT out -> cable -> ADAT in -> USB in) of 2-3 USB2 microframes which is about 0.25ms to 0.375 ms
  • Both headphone DACs on the board work now. In two channel mode, they are both wired to channels 0/1. In 36 channel mode DAC1 is wired to channels 0/1 and DAC2 to channels 2/3
  • Both USB PHYs now are operational. USB1 has access to all 32 ADAT I/Os and has 4 extra channels to/from USB2. USB2 enumerates as a 4-channel sound card which sends/receives audio to/from USB1
  • Both USB interfaces will also enumerate as USB MIDI devices and send each other MIDI
  • The current board design has not been designed with the case in mind: In the current version of the case, only ADAT-cables with thin connectors will fit into the holes. Cables with fat connectors will hit the case wall before they can be fully inserted. This will be fixed in a future iteration of the PCB and case.
  • The current case design lacks a guide channel for the LED light pipes. Therefore there is considerable bleed from lightpipes into each other, and they also can't be positioned exactly over the LEDs. Will be fixed in the next version of the case.
  • Limitation: Currently audio input will not work properly when audio output is inactive. This should not be a problem for most uses (VoIP, Videoconference, DAW recording). If you have an important use case which needs this, please file an issue.

Hardware

The current board design is a custom development board, based on the QMTech core FPGA boards. Once the chip shortage is over, it is planned to move to a complete custom design, including the FPGA.

P1173938

image

How to build

  1. Download and install Intel Quartus Lite
  2. put the bin/ directory of Quartus into your PATH variable:
export PATH=$PATH:/opt/intelFPGA_lite/21.1/quartus/bin/

Of course you need to adjust this to the install directory and version of your particular installation.

  1. Set up python venv and install requirements:
$ cd gateware/
$ ./initialize-python-environment.sh
$ cd ..
  1. Activate the venv and build
$ source ./gateware/venv/bin/activate
$ python3 gateware/adat_usb2_audio_interface.py --keep

This will create a directory named build/ and after a successful build will directly try to load the generated bitstream into the FPGA, if an USB-Blaster is connected. Or, you can flash the bitstream manually, by opening the Quartus GUI with:

quartus build/*.qpf

and then open the programmer application from there. Alternatively you could directly start the programmer with:

quartus_pgmw

adat-usb2-audio-interface's People

Contributors

hansfbaier avatar nikitalita avatar mstaack avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.