QuantAsylum QA400 and QA401

OK, here we're discussing the reliability and support that suppliers can offer.
No doubt, TI is a very strong industry leader.
But can we forget the old PCM1794?

How about DAC11001A?

1. DAC11001A is TI's product, so the reliability is not an issue.
2. DAC11001A has good rapport, the designer is just here with us.
3. DAC11001A has good performance. It's 20bit, ultra-low-distortion.
4. DAC11001A is a brand-new, 20bit-R2R dac. When QA40X is used as audio DAC, the soundstage of R2R and a newly-developed R2R DAC is very intriguing.

If, I say IF, the performance of DAC11001A is better than PCM1794 or at least good enough, why not give it a try?

Regards.
 
Has anyone suggested the CS4398 yet? That has very low THD as well?

I guess CS43"1"98 is better?

CS43198
Resolution (bits) 32
Dynamic Range (dB) 130
THD+N (dB) -115
Sample Rate (kHz) 384

CS4398
Resolution (bits) 24
Dynamic Range (dB) 120
THD+N (dB) -107
Sample Rate (kHz) 30-216


CS43198 can reach 32bit/384KHz, which is enough for it's receiver, PCM4220.
 
Last edited:
If, I say IF, the performance of DAC11001A is better than PCM1794 or at least good enough, why not give it a try?

Regards.

Because it's significantly more expensive, harder to implement, only one channel and takes up a lot more board space than a single PCM1794.

If its audio performance were out of this world then it would make sense but that would be a different product entirely.

From what I can see the performance isn't anywhere close to being worth it.
 
OK, then CS43131?

Resolution (bits) 32
Dynamic Range (dB) 130
THD+N (dB) -115
Sample Rate (kHz) 384

Features:
1. Eliminates distortion due to on-chip component mismatch.
2. I²S, right-justified, left-justified, DoP, DSD and TDM interface. Which is pretty common used in such an analyzer, isn't it?
3. 2-ch in one chip, easy to handle.
4. Cheap, at least not expensive. Around $15USD/pcs.
 
The CS4398 is not clearly better than PCM1794A. It’s on par with it. The CS43198 is better but it may have an earlier rise in out of band noise and may be less suitable for a measurement device. That’s the reason I posted asking Matt if he had evaluated it, thinking it may have been rejected for that reason.
 
Last edited:
Ok, I finally came around testing the QA401H based web app.

Checking with 'lsusb' the QA401 is discovered correctly.

Unfortunately i get an Error concerning libusb-1.0 when starting the QA401H server application. Please refer to screenshot attached. The machine is running xubuntu 20.04LTS.

Any ideas?
 

Attachments

  • debug_01.png
    debug_01.png
    42.2 KB · Views: 402
Ok, I finally came around testing the QA401H based web app.

Checking with 'lsusb' the QA401 is discovered correctly.

Unfortunately i get an Error concerning libusb-1.0 when starting the QA401H server application. Please refer to screenshot attached. The machine is running xubuntu 20.04LTS.

Any ideas?

Type the following command in a shell:
Code:
sudo dpkg -l|grep libusb

This will tell you if it's installed.

If it's installed you should see something similar to below (this is from my Debian 10 system)

Code:
ii  libusb-0.1-4:amd64                2:0.1.12-32                         amd64        userspace USB programming library
ii  libusb-1.0-0:amd64                2:1.0.22-2                          amd64        userspace USB programming library

If it's installed then you can find it's location with
Code:
sudo dpkg -L <library name>

In my case, the library is in '/lib/x86_64-linux-gnu/libusb-0.1.so.4'

Code:
sudo dpkg -L libusb-0.1-4
/.
/lib
/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu/libusb-0.1.so.4.4.4
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libusb-0.1-4
/usr/share/doc/libusb-0.1-4/README.Debian
/usr/share/doc/libusb-0.1-4/changelog.Debian.gz
/usr/share/doc/libusb-0.1-4/changelog.gz
/usr/share/doc/libusb-0.1-4/copyright
/lib/x86_64-linux-gnu/libusb-0.1.so.4

HTH
 
Thank you very much for your support. Certainly, libsub was installed before i tried launching the QA401H application. As stated in the QA401H manual.

The library resides in "/lib/x86_64-linux-gnu/" on my machine. Adding this path to "/etc/ld.so.conf" with a subsequent "sudo ldconfig" did not help.
 
So it's the library name that's the issue.

As per the page mentioned in the post above - this should fix it.

Code:
cd /lib/x86_64-linux-gnu
sudo ln -s libusb-1.0.so.0 libusb-1.0.so

This is creating a symbolic link to libusb-1.0.so.0.1.0

The symbolic link is called libusb-1.0.so.0 - and it is this library that the software is addressing.
 
Yes, the symlink did fix it. Now the library is recognized by the dotnet framework and the QA401H is able to communicate with the hardware!

A sample python script from Matt gave me plausible results 🙂

Code:
import requests

# Set max input level to +6 dBV (attenuator off)
resp = requests.put('http://localhost:9401/Settings/Input/Max/6')
# Enable audio generator 1 @ 1 KHz and -10 dBV
resp = requests.put('http://localhost:9401/Settings/AudioGen/Gen1/On/1000/0')
# Specify we want 32k FFT
resp = requests.put('http://localhost:9401/Settings/BufferSize/32768')
# Start acquisition. This will block until acquisition is finished
resp = requests.post('http://localhost:9401/Acquisition')
# Request the THD measurement
resp = requests.get('http://localhost:9401/ThdDb/1000/20000')
# Display results
print('THD Left:', resp.json()['Left'])
print('THD Right:', resp.json()['Right'])

But the QA401W (web interface) is only partially working. The settings (i.e. Atten) are correctly transmitted to the hardware. The acquisition process seems to work too (no error messages in the terminal running qa401h). But there is no display of acquisition results in the web interface. All derived numbers (THD, SNR, RMS et al) are set to 'NaN' an the graph display is empty, both for time-series and spectrum. While the REST communication is processed continously in the background.

Browser is Firefox version 84.0 (64bit).

I am happy to do some further testing. Any hints are welcome!
 
Last edited:
So, first of all I have disabled NoScript and Adblock on the Firefox browser. This console output is displayed when loading "analyze.html" and taking a single acquisition:

Code:
Error in parsing value for '-webkit-text-size-adjust'.  Declaration dropped. _reboot.scss:28:2
Unknown pseudo-class or pseudo-element 'focus-visible'.  Ruleset ignored due to bad selector. bootstrap.css:66
Unknown pseudo-class or pseudo-element '-ms-expand'.  Ruleset ignored due to bad selector. _forms.scss:7
Unknown pseudo-class or pseudo-element '-ms-input-placeholder'.  Ruleset ignored due to bad selector. _forms.scss:7
Unknown pseudo-class or pseudo-element '-ms-input-placeholder'.  Ruleset ignored due to bad selector. _forms.scss:7
Unknown pseudo-class or pseudo-element '-ms-value'.  Ruleset ignored due to bad selector. _forms.scss:71
Unknown pseudo-class or pseudo-element '-ms-value'.  Ruleset ignored due to bad selector. _custom-forms.scss:221
Unknown pseudo-class or pseudo-element '-ms-expand'.  Ruleset ignored due to bad selector. _custom-forms.scss:221
Unknown pseudo-class or pseudo-element '-ms-thumb'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-moz-focus-outer'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-thumb'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-thumb'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-thumb'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-track'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-fill-lower'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-fill-upper'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown pseudo-class or pseudo-element '-ms-thumb'.  Ruleset ignored due to bad selector. _custom-forms.scss:383
Unknown property '-moz-column-count'.  Declaration dropped. _card.scss:249:4
Unknown property '-moz-column-gap'.  Declaration dropped. _card.scss:250:4
Unknown property 'orphans'.  Declaration dropped. _card.scss:252:4
Unknown property 'widows'.  Declaration dropped. _card.scss:243
Unknown property 'orphans'.  Declaration dropped. _print.scss:76:6
Unknown property 'widows'.  Declaration dropped. _print.scss:79:4
Unknown property 'size'.  Declaration dropped. _reboot.scss:46
XHRPOSThttp://localhost:9401/Acquisition
[HTTP/1.1 200 OK 790ms]

XHRGEThttp://localhost:9401/ThdDb/1000/20000
[HTTP/1.1 200 OK 2ms]

XHRGEThttp://localhost:9401/ThdPct/1000/20000
[HTTP/1.1 200 OK 5ms]

XHRGEThttp://localhost:9401/ThdnDb/1000/20/20000
[HTTP/1.1 200 OK 1ms]

XHRGEThttp://localhost:9401/ThdnPct/1000/20/20000
[HTTP/1.1 200 OK 2ms]

XHRGEThttp://localhost:9401/SnrDb/1000/20/20000
[HTTP/1.1 200 OK 45ms]

XHRGEThttp://localhost:9401/RmsDbv/20/20000
[HTTP/1.1 200 OK 1ms]

XHRGEThttp://localhost:9401/PeakDbv/20/20000
[HTTP/1.1 200 OK 2ms]

XHRGEThttp://localhost:9401/Phase/Degrees
[HTTP/1.1 200 OK 4ms]

XHRGEThttp://localhost:9401/Phase/Seconds
[HTTP/1.1 200 OK 3ms]

XHRGEThttp://localhost:9401/Data/Freq
[HTTP/1.1 200 OK 2ms]

Second, i have installed Chromium browser. The reaction is similar, measurements are taken, settings transmitted to the QA401 are accepted - but display in browser is not updated. Numbers are NaN. Black plot window, zooming and scrolling works. Console gives the following output for a single acquisition:

Code:
chartjs-plugin-zoom-0.7.7.min.js:11 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive. See [url=https://www.chromestatus.com/feature/5745543795965952]Passive event listeners - Chrome Platform Status[/url]
m @ chartjs-plugin-zoom-0.7.7.min.js:11
beforeUpdate @ chartjs-plugin-zoom-0.7.7.min.js:11
notify @ chart-2.9.4.min.js:7
update @ chart-2.9.4.min.js:7
updateFrequencyChart @ analyze-charts.js:13
refreshFrequencyChart @ analyze.js:382
httpRequest.onreadystatechange @ analyze.js:440

cheers!
 
Thanks. I still can't see any reason why it's behaving like it does. Can you create an issue here: Issues * blurpy/qa401w * GitHub and then we can do some more detailed troubleshooting?

Some useful details to include:

1. Screenshot of how the page looks with the missing graph and NaN numbers
2. Screenshots with the developer tools open, like the console tab and network tab
3. Some examples of requests using curl - like this (but including the output):

Code:
curl -d "" -X PUT [URL]http://localhost:9401/Settings/AudioGen/Gen1/On/1000/0[/URL] 

curl -d "" -X POST [URL]http://localhost:9401/Acquisition[/URL]  

curl [URL]http://localhost:9401/Phase/Seconds[/URL] 

curl [URL]http://localhost:9401/ThdDb/1000/20000[/URL]

curl [URL="http://localhost:9401/ThdDb/1000/20000"]http://localhost:9401/ThdPct/1000/20000[/URL]
 
Unfortunately USB cables do vary. You need a cable with low DCR in its power wires. It's a common place for cost savings. The data link pair are less of an issue. I went through about 15 cables sorting them on a 192 KHz distortion loopback and about 1/2 passed. The easiest way to see potential is large diameter and stiff. Also an external hub with a separate power supply helps. I use one of these: https://www.amazon.com/ORICO-10-Port-Adapter-Surface-Macbook/dp/B01N48844V?ref_=ast_sto_dp which has worked well with a USB scope, QA401 and RTX all working a the same time.
 
These guys below are big on measurements. You could say they live for measurements. But, since we *are* talking about measurement cables, this might be worth a peak:

Review and Measurements of Wireworld Starlight 7 USB Cable | Audio Science Review (ASR) Forum

It turns out that I had bought some of the least expensive USB cables Wireworld makes months before I saw this online commentary. (That was last week...) They seem pretty rugged and well made. And, a nice shade of yellow. Although they cost more than the usual printer variety cables, I thought it was worth it. It's not like I needed that many USB cables for the "lab."

Nope - not associated with Wireworld or any cable manufacturer. Nor am I affiliated with that website or anybody connected to it. At least as far as I know on that last part.