Giter Site home page Giter Site logo

deca-usb2-audio-interface's Introduction

DECA USB Audio Interface

DECA based USB 2.0 High Speed audio interface

Status / current limitations

  • enumerates as class compliant audio device on Linux and Windows.
  • Works on the FPGA
  • Playback works
  • Recording works
  • only 48kHz sample rate supported
  • integrated USB2 high speed logic analyzer works

support

In the release section I provide a .sof file (for directly programming the board) and a .pof file (for flashing the device), for convenience. Saves you from building the project yourself, if you do not want to.

If you encounter issues building this project, I recommend reading this article: http://retroramblings.net/?p=1718

deca-usb2-audio-interface's People

Contributors

hansfbaier avatar stsrc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

deca-usb2-audio-interface's Issues

initialize-python-environment.sh fails on usb2-highspeed-core.git

kgotfryd@kgotfryd:~/programming/packages/deca-usb2-audio-interface/gateware$ ./initialize-python-environment.sh 
Collecting git+https://github.com/amaranth-lang/amaranth.git (from -r requirements.txt (line 1))
  Cloning https://github.com/amaranth-lang/amaranth.git to /tmp/pip-hwd1ucqd-build
Collecting git+https://github.com/amaranth-community-unofficial/amaranth-boards.git (from -r requirements.txt (line 2))
  Cloning https://github.com/amaranth-community-unofficial/amaranth-boards.git to /tmp/pip-van05hhq-build
Collecting git+https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git (from -r requirements.txt (line 3))
  Cloning https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git to /tmp/pip-p43mpqtz-build
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info/luna.egg-info
    writing pip-egg-info/luna.egg-info/PKG-INFO
    writing dependency_links to pip-egg-info/luna.egg-info/dependency_links.txt
    writing requirements to pip-egg-info/luna.egg-info/requires.txt
    writing top-level names to pip-egg-info/luna.egg-info/top_level.txt
    writing manifest file 'pip-egg-info/luna.egg-info/SOURCES.txt'
    error: package directory 'luna/gateware/debug' does not exist
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-p43mpqtz-build/
kgotfryd@kgotfryd:~/programming/packages/deca-usb2-audio-interface/gateware$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic
kgotfryd@kgotfryd:~/programming/packages/deca-usb2-audio-interface/gateware$ python3 --version
Python 3.6.9

Maybe you can find solution faster than me, I think it is something with not existing luna/gateware/debug directory in usb2-highspeed-core but that's my guess.

new pip resolver, requirements.txt woes

I had this codebase building last year, but pip is giving me some sass this time around
Apparently the new pip version resolver gets angry about subtle URL string mismatches

In this case, luna specifies a trailing @main in some git URLs (yes, really, that's enough to upset pip now)

The conflict is caused by:
    The user requested amaranth 0.4.dev5+gc6dc08c (from git+https://github.com/amaranth-lang/amaranth.git)
    amaranth-boards 0.1.dev236+g809587c depends on amaranth<=4 and >=0.2
    luna 0.1.0.dev0 depends on amaranth 0.4.dev5+gc6dc08c (from git+https://github.com/amaranth-lang/amaranth.git@main)

I consider this a bug in pip, the (temporary and extremely brittle) workaround is to tweak the requirements.txt to match precisely the URLs listed in luna

The following completes pip resolution, but I had to point to the wrong amaranth-boards.git.

-git+https://github.com/amaranth-lang/amaranth.git
-git+https://github.com/amaranth-community-unofficial/amaranth-boards.git
+git+https://github.com/amaranth-lang/amaranth.git@main
+git+https://github.com/amaranth-lang/amaranth-boards.git@main
 git+https://github.com/amaranth-community-unofficial/usb2-highspeed-core.git
-git+https://github.com/amaranth-community-unofficial/amlib.git
+git+https://github.com/amaranth-community-unofficial/amlib@main

Thanks for the link to retroramblings, that article was useful.
I'll follow this up with a resolution next week when I bully pip into giving me the repos I need.

commit 2783e77f934e17a5dc8b15de83cded22a651a560 (fix off-by-one error in the feedback endpoint) causes overflow in ep1_out fifo

Hello,

On Linux (Ubuntu 20.04.3 LTS) latest code (from branch 'main') does not work properly: after 2-3 minutes of normal playback there is loud noise (something like white noise). It is caused by overflow in ep1_out fifo, what leads to malformed state of USBStreamToChannels.

By comparing latest code with version 0.2.0 (on which everything works correctly) I found that commit 2783e77 causes such behavior. After revert everything works properly.

I was trying to fix it by my own, but I don't know that much about USB, so I am living this issue to you.

protocol error for descriptors longer than 128 bytes

I've ported this to a ecp5 with a usb3300,
I can get the board to enumerate, but only by cutting the descriptor back.

If I comment out create_output_streaming_interface() and create_input_streaming_interface(), it enumerates fine with a URB length of 119 bytes.

If I include a single AudioStreamingInterfaceDescriptorEmitter() under either the input or output descriptor it also enumerates fine, with a URB length of 128 bytes.

If I include the AudioStreamingInterfaceDescriptorEmitter()s in both the input and output descriptors, I get a Protocol Error -71 at the GET DESCRIPTOR Response DEVICE stage, it doesn't get far enough to even report the length of the descriptor.
in dmesg that's a device descriptor read/64, error -71

This smells vaguely like greatscottgadgets/luna#86, but I'm definitely running the fix from that.
I'd report this under GSG Luna, but I'm not sure how much I'm leaning on upstream patches from https://github.com/amaranth-community-unofficial/usb2-highspeed-core

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.