Open-source USB interface: Audio Widget - Page 186 - diyAudio
Go Back   Home > Forums > Source & Line > Digital Source

Digital Source Digital Players and Recorders: CD , SACD , Tape, Memory Card, etc.

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 20th October 2012, 07:06 AM   #1851
starn02 is offline starn02  Italy
diyAudio Member
 
Join Date: Jul 2005
Location: Italy
Thank you Borges.
I suppose this is the one: https://github.com/amontefusco/sdr-w...t-experimental

Unfortunately I believe that the recording part is disabled (the endpoint used for recording is commented out in the USB descriptor).

Is anybody aware of a firmware version that is sure to be working for recording (so with the proper USB descriptors enabled)?
Should I look at the fiirmware for SDR widget?
Thank you.
  Reply With Quote
Old 21st October 2012, 11:06 AM   #1852
UnixMan is offline UnixMan  Europe
diyAudio Member
 
UnixMan's Avatar
 
Join Date: Apr 2005
Location: Perugia + L'Aquila, Italy
Send a message via ICQ to UnixMan
I've downloaded that file and installed it on my AB1.1 (of course on Linux, using the same setup I have been using previously). Apparently all went well:

Code:
# ./program-widget.sh audio_widget_20121004_AB-1.2.elf
program-widget with audio_widget_20121004_AB-1.2.elf
     target: at32uc3a3256
    chip_id: 0x2ff1
  vendor_id: 0x03eb
    command: erase
      quiet: false
      debug: 6
device_type: AVR32
------ command specific below ------
   validate: true

     target: at32uc3a3256
    chip_id: 0x2ff1
  vendor_id: 0x03eb
    command: flash
      quiet: false
      debug: 6
device_type: AVR32
------ command specific below ------
   validate: true
   hex file: /tmp/audio_widget_20121004_AB-1.2.hex

Validating...
116554 bytes used (45.90%)
     target: at32uc3a3256
    chip_id: 0x2ff1
  vendor_id: 0x03eb
    command: reset
      quiet: false
      debug: 4
device_type: AVR32
------ command specific below ------
here are kernel messages upon AW reset:
Code:
[49158.564032] usb 1-4: new high-speed USB device number 16 using ehci_hcd
[49158.697394] usb 1-4: New USB device found, idVendor=16d0, idProduct=075d
[49158.697399] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[49158.697404] usb 1-4: Product: QNKTC USB DAC AB-1.2
[49158.697407] usb 1-4: Manufacturer: Audio-Widget
[49158.697410] usb 1-4: SerialNumber: 1.0.0.0.0.0.A
[49158.702619] input: Audio-Widget QNKTC USB DAC AB-1.2 as /devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4:1.3/input/input19
[49158.702803] generic-usb 0003:16D0:075D.0005: input,hidraw2: USB HID v1.11 Device [Audio-Widget QNKTC USB DAC AB-1.2] on usb-0000:00:1a.7-4/input3
HID input device!? what is that for? Here's how my system reacted to it:
Code:
*** /var/log/Xorg.0.log ***
[ 49158.759] (II) config/udev: Adding input device Audio-Widget QNKTC USB DAC AB-1.2 (/dev/input/event17)
[ 49158.759] (**) Audio-Widget QNKTC USB DAC AB-1.2: Applying InputClass "evdev keyboard catchall"
[ 49158.759] (II) Using input driver 'evdev' for 'Audio-Widget QNKTC USB DAC AB-1.2'
[ 49158.759] (**) Audio-Widget QNKTC USB DAC AB-1.2: always reports core events
[ 49158.759] (**) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Device: "/dev/input/event17"
[ 49158.759] (--) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Vendor 0x16d0 Product 0x75d
[ 49158.759] (--) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Found 3 mouse buttons
[ 49158.759] (--) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Found keys
[ 49158.759] (II) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Configuring as mouse
[ 49158.759] (II) evdev: Audio-Widget QNKTC USB DAC AB-1.2: Configuring as keyboard
[ 49158.759] (**) evdev: Audio-Widget QNKTC USB DAC AB-1.2: YAxisMapping: buttons 4 and 5
[ 49158.759] (**) evdev: Audio-Widget QNKTC USB DAC AB-1.2: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 49158.759] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4:1.3/input/input19/event17"
[ 49158.759] (II) XINPUT: Adding extended input device "Audio-Widget QNKTC USB DAC AB-1.2" (type: KEYBOARD, id 13)
[ 49158.759] (**) Option "xkb_rules" "evdev"
[ 49158.759] (**) Option "xkb_model" "pc105"
[ 49158.759] (**) Option "xkb_layout" "us"
[ 49158.759] (**) Option "xkb_variant" "altgr-intl"
Here is lsusb output:
Code:
# lsusb -s 16
Bus 001 Device 016: ID 16d0:075d GrauTec
Then I have updated the USB IDs DB:
Code:
# update-usbids
--2012-10-21 12:24:16--  http://www.linux-usb.org/usb.ids
Resolving www.linux-usb.org (www.linux-usb.org)... 216.34.181.97
Connecting to www.linux-usb.org (www.linux-usb.org)|216.34.181.97|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 486323 (475K) [text/plain]
Saving to: `/var/lib/usbutils/usb.ids.new'

100%[========================================================>] 486,323     33.1K/s   in 12s

2012-10-21 12:24:30 (38.3 KB/s) - `/var/lib/usbutils/usb.ids.new' saved [486323/486323]

Done.
curiously after this the lsusb output have changed, but not in a way I may have expected:
Code:
# lsusb -s 16
Bus 001 Device 016: ID 16d0:075d MCS
("GrauTec" -> "MCS", still no reference to AW nor any more detailed info about the device)

Whatever. Here are lsusb detailed device info:
Code:
# lsusb -v -s 16

Bus 001 Device 016: ID 16d0:075d MCS
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x16d0 MCS
  idProduct          0x075d
  bcdDevice           10.00
  iManufacturer           1 Audio-Widget
  iProduct                2 QNKTC USB DAC AB-1.2
  iSerial                 3 1.0.0.0.0.0.A
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          193
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         0 (Defined at Interface level)
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       0
      bFunctionProtocol      32
      iFunction               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32
      iInterface              7 SDR-Widget
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               4
        wTotalLength           64
        bmControl            0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID                5
        bmAttributes         0x01 Internal fixed Clock
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          3
        iClockSource            5 Clock 2
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID            17
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID              5
        bNrChannels             2
        bmChannelConfig   0x00000003
          Front Left (FL)
          Front Right (FR)
        bmControls    0x0000
        iChannelNames           0
        iTerminal               8 Audio-widget
      AudioControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                18
        bSourceID              17
        bmaControls( 0)      0x00000003
          Mute Control (read/write)
        bmaControls( 1)      0x00000003
          Mute Control (read/write)
        bmaControls( 2)      0x00000003
          Mute Control (read/write)
        iFeature                0
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            19
        wTerminalType      0x0302 Headphones
        bAssocTerminal          0
        bSourceID              18
        bCSourceID              5
        bmControls         0x0000
        iTerminal               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          17
        bmControls           0x07
          Active Alternate Setting Control (read/write)
          Valid Alternate Setting Control (read-only)
        bFormatType             1
        bmFormats               1
          PCM
        bNrChannels             2
        bmChannelConfig   0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0188  1x 392 bytes
        bInterval               2
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      67
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               5
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered
ALSA now report a more proper name:
Code:
card 2: AB12 [QNKTC USB DAC AB-1.2], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
...tough you should use a more generic string such as "Audio Widget" rather than "DAC AB-1.2"!

Mine is in fact AB1.1, and AFAIU the same firmware may be also used on many other different AW-based devices, too. You may/should perhaps include firmware version instead. IMHO that may be much more useful than (possibly inappropriate / misleading) specific hardware version.

No recognized changes in board controls (none expected):
Code:
$ amixer -c 2
Simple mixer control 'Clock 2',0
  Capabilities: pswitch penum
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]
Simple mixer control 'Clock 2',1
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [on]
On my Linux system the new FW seems to work ok, no apparent problem whatsoever.

From a very quick listening test it appears that there may be some subtle SQ differences -mostly about imaging- WRT audio-widget-20120428.elf, but that may be just suggestion...

BTW: I have also downloaded your windows package "audio_widget_20121004.zip". Inside there are a bunch of ELF files, among which "widget_9023.elf". I have AB1.1 with 9023, should have I used that one instead?

P.S.: those ELF files appears to be slightly smaller than "audio-widget-20120428.elf", but all of them are much larger than the -nik firmwares I have previously used:
Code:
166K Dec 27  2011 audio-widget-nik-2011-12-26.elf
166K Dec 28  2011 audio-widget-nik-2011-12-28e.elf
166K Dec 29  2011 audio-widget-nik-2011-12-29.elf
405K Apr 28 14:29 audio-widget-20120428.elf
359K Oct 21 11:54 audio_widget_20121004_AB-1.2.elf
359K Oct  4 21:23 widget_5102.elf
359K Oct  4 21:20 widget_8741.elf
359K Oct  4 21:24 widget_9023.elf
359K Oct  4 21:29 widget_ab12.elf
359K Oct  4 21:34 widget-sdr.elf
Quote:
Originally Posted by borges View Post
The installation of new firmware in the AB-1.2 is described in section "Installing new firmware - Windows"
what about Linux? you've become way too much windows-centric, lately...
__________________
Quote:
"We should no more let numbers define audio quality than we would let chemical analysis be the arbiter of fine wines." N.P.
  Reply With Quote
Old 22nd October 2012, 01:23 AM   #1853
diyAudio Member
 
Join Date: Apr 2011
Quote:
Originally Posted by starn02 View Post
Thank you Borges.
I suppose this is the one: https://github.com/amontefusco/sdr-w...t-experimental

Unfortunately I believe that the recording part is disabled (the endpoint used for recording is commented out in the USB descriptor).

Is anybody aware of a firmware version that is sure to be working for recording (so with the proper USB descriptors enabled)?
Should I look at the fiirmware for SDR widget?
Thank you.
The sdr-widget hardware has recording And playback. The sdr-widget firmware is in the master branch and the elf files are called sdr-widget......elf.

The audio-widgets are playback only and the firmware is in the audio-widget-experimental branch. The elf files are Audio-Widget.......elf.

The Widget control.py in the master branch is for sdr-widget. For Audio-Widget use the Audio-Widget.... branches.

Alex
  Reply With Quote
Old 22nd October 2012, 01:32 AM   #1854
diyAudio Member
 
Join Date: Apr 2011
Quote:
Originally Posted by starn02 View Post
Thank you Borges.
I suppose this is the one: https://github.com/amontefusco/sdr-w...t-experimental

Unfortunately I believe that the recording part is disabled (the endpoint used for recording is commented out in the USB descriptor).

Is anybody aware of a firmware version that is sure to be working for recording (so with the proper USB descriptors enabled)?
Should I look at the fiirmware for SDR widget?
Thank you.
The sdr-widget hardware has recording And playback. The sdr-widget firmware is in the master branch and the elf files are called sdr-widget......elf.

The audio-widgets are playback only and the firmware is in the audio-widget-experimental branch. The elf files are Audio-Widget.......elf.

The Widget control.py in the master branch is for sdr-widget. For Audio-Widget use the Audio-Widget.... branches.

Alex
  Reply With Quote
Old 22nd October 2012, 01:51 AM   #1855
1audio is offline 1audio  United States
diyAudio Member
 
Join Date: Mar 2004
Location: SF Bay Area
Blog Entries: 3
Alex, Borge:
Does the Audio widget USB module have the hooks brought out for a capture/recording function? It would need an external ADC and probably some glue logic regardless. . .
__________________
Demian Martin
Product Design Services
  Reply With Quote
Old 22nd October 2012, 02:12 AM   #1856
diyAudio Member
 
Join Date: Apr 2011
Quote:
Originally Posted by starn02 View Post
Thank you Borges.
I suppose this is the one: https://github.com/amontefusco/sdr-w...t-experimental

Unfortunately I believe that the recording part is disabled (the endpoint used for recording is commented out in the USB descriptor).

Is anybody aware of a firmware version that is sure to be working for recording (so with the proper USB descriptors enabled)?
Should I look at the fiirmware for SDR widget?
Thank you.
The sdr-widget hardware has recording And playback. The sdr-widget firmware is in the master branch and the elf files are called sdr-widget......elf.

The audio-widgets are playback only and the firmware is in the audio-widget-experimental branch. The elf files are Audio-Widget.......elf.

The Widget control.py in the master branch is for sdr-widget. For Audio-Widget use the Audio-Widget.... branches.

Alex
  Reply With Quote
Old 22nd October 2012, 01:03 PM   #1857
diyAudio Member
 
Join Date: Oct 2009
Default TDA1543 works

I tested the audio-widget (sdr-widget) with a TDA1543 DAC and it works. Although this chip was run at 5V, the Atmel 3.3V logic levels were enough to drive it. The shift registers ignore the rest of the 32 bits after the first high-order 16 bits are loaded. Sound was pleasant NOS. There was some digital harshness, probably due to my poor wiring. The DAC would run up to 96 kHz but not 192 kHz. The bitrate at 192kHz 32 bit is 12.288MHz which exceeds the rated 9MHz of the TDA1543. A true 16 bit endpoint would halve the bitrate and then it might work at 192kHz.

Still, the builtin ESS9023 sounds better and smoother to me. Just want to encourage everyone to try these old chips with the great analog-widget.

Bob
Attached Images
File Type: jpg Image005.jpg (57.3 KB, 204 views)
  Reply With Quote
Old 22nd October 2012, 02:30 PM   #1858
borges is offline borges  Norway
diyAudio Member
 
Join Date: Dec 2003
Location: Oslo, Norway
Quote:
Originally Posted by 1audio View Post
Alex, Borge:
Does the Audio widget USB module have the hooks brought out for a capture/recording function? It would need an external ADC and probably some glue logic regardless. . .
Demian, yes the module has the I2S ADC pins available.

BÝrge
  Reply With Quote
Old 22nd October 2012, 02:34 PM   #1859
borges is offline borges  Norway
diyAudio Member
 
Join Date: Dec 2003
Location: Oslo, Norway
UnixMan,

first the USB names. The USB VID is still generic. We have purchased PIDs for the project. George's PIDs have different USB name strings from mine. Look at the audio-widget-experimental branch, starting with Makefile, to see how the name strings enter the scene. Because of the VID situation I made the product name contain as much as possible. And for the AB-1.1s out there I did not bother to set up a separate PID and naming convention. I did set up names for George's PIDs but I leave it to him to distribute .elfs with the strings set differently.

The HID part is so that a user interface on a DAC box can instruct the computer to skip to the next song! My plan is to use the AVR32's SPI slave or GPIO to receive HID codes which it the relays to the Host.


BÝrge
  Reply With Quote
Old 22nd October 2012, 07:42 PM   #1860
starn02 is offline starn02  Italy
diyAudio Member
 
Join Date: Jul 2005
Location: Italy
Thank you all for your suggestions.
I've been looking at the sources, and I'm now quite familiar with them, also tried some personal modifications.

In general in the "audio widget" branches there are a lot of source code that is partially commented out about recording, but not completely, so, for instance, the endpoint for recording is still present (and sent to the pc during the discovery phase). This at least in some of the sources that I've tried.

Now I've been trying to reconstruct a source with recording enabled. From the usb discovery the version I have is OK, but there is something missing or wrong .. no recording indeed (no error, but nothing comes back to the PC).

That's why I was looking for a version that was sure to be recording well, just to have a reference and understand what's wrong in my modifications.
My main problem (I'm trying in UAC2 under windows with a hacked driver) is that the endpoints for recording and play feedback seem overlapped. The descriptors are OK (I dumped them on the PC and checked several times, they look OK), but while playback is ok the recording simply don't work completely. I can start a recording (with audacity, as an example, using MME), and the software don't returns an error, but seems stuck waiting for data. With directsound it looks like recording, but I get all zeroes (and I believe that nothing actually comes from the board, it's simply a timeout).

Maybe it's the order of descriptors, maybe some subtle change somewhere in the sources ... Anybody has an idea regarding the initialization of endpoints, or a suggestion on what could cause the overlap of 0x81 and 0x83 endpoints?

Last edited by starn02; 22nd October 2012 at 07:45 PM.
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Async 192Khz USB - the SDR-Widget collaborative project SunRa PC Based 5 26th April 2011 06:38 PM
usb audio interface david12 Equipment & Tools 14 10th October 2010 02:58 AM
Cheap Audio Interface (USB?) to PC agm2003 Instruments and Amps 11 16th September 2007 07:48 AM
Open call for suggestions on Open Source DIY Audio Design gfergy Everything Else 1 15th April 2007 07:33 AM
USB Interface Perfect?- Computer Audio fmak Digital Source 3 4th December 2004 10:24 PM


New To Site? Need Help?

All times are GMT. The time now is 12:51 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright ©1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2