Wednesday, February 18, 2009

libusb 1.0

Having upgraded HPSDR to v2.6 I ran into a problem readin the I/Q samples concurrently with the bandscope samples from the 2 end points.

The problem was caused by some real problems in libusb v0.1.12 (which is the version included with Ubunti 8.10) handling of threads. Version 1.0 has some documentation that implied it had fixed the problem, so I downloaded, built and installed it.

I then did a rewrite of the i/o code that uses libusb (the new api is so much easier to use).

I can now run 2 threads, one reading the sample data on EP6 and the other reading the bandscope samples on EP4 concurrently without them interfering with each other.

There are still some problems with synchronizing between ozy and jack, but that should be easier now that libusb is running correctly.

The image below shows the Mercury receiver running at 48K with an initial banscope display which still needs some work.