How about PCM2906C chip from TI, with stereo codec and USB
built-in?
It looks to be in the $10 price range from Mouser, so maybe
pricier than you hoped, but it might save a heck of a lot of
learning curve regarding USB audio ... I've been working on a
project using USB audio, and it took me a *long time* to ramp up.
There may be other similar chips out there.
-- Ben, AC2YD --
On 12/19/23 16:51, Rob Frohne (KL7NA)
wrote:
toggle quoted message
Show quoted text
Hi Chuck,
Yes, this would be a nice way to do it, where the difficulty was
on the MCU end.? I thought about it a bit and did a little
research.? My major problem is that I was planning to use the
UART to control the SDR and have that all working with Quisk
using the UART.? I'm not even sure it is possible to get the
Raspberry Pi Pico I'm using to simultaneously use the USB UART
and be a USB soundcard. Do you have a good solution for this
problem of control and audio simultaneously?
Thanks for the warning on the UART glitches.? If I pursue this,
I need to make sure they don't happen for me before pursuing
it.? I also do not like the non-standard interface to SDR
software.? Another way I am considering doing it is to write a
?using the UART approach.? ? ?That
overcomes the nonstandard problem, but might not be as easy as a
simple hack to inject the sound data into Quisk.
|
Vendor and platform neutral SDR support library.
Contribute to pothosware/SoapySDR development by
creating an account on GitHub.
github.com
|
?73,
Rob
CAUTION:
This email originated from outside the Walla Walla University
email system.
It might be wise to try having the Pico
emulate a USB audio device and send its samples that way.
Then no modification on the user's part need be done.
There are a few examples of this. The work is not trivial:
USB Audio device emulation for a "USB microphone":
USB HID emulation examples:
A design to look at is the FUNCube Dongle series of
SDRs, which emulated a stereo-input USB audio interface
for the I/Q samples and a USB Human Interface Device for
controlling the tuner, amplifiers, etc using a PIC32MX.
Bandwidth limitations of USB 1.x were worked around by
dropping the least-significant-byte of 24-bit samples so
they are 16-bit. They turned out to work well. The Pico
may be up to such a task.
What you are proposing is only different from a
soundcard by name, with a proprietary communication format
which will require modification of /every/ piece of
software to use it directly, or at the least would require
installation of supplementary software on the user's
machine to make it compatible with existing SDR software.
I've noticed odd irregularities in data rate when
transferring constant data streams over UART, even when
wrapped in USB.
The complexity of creating a stream format in UART,
then modifying existing software to work with it, will
likely exceed writing USB firmware on the pico. From an
educational POV, learning how to make a USB device could
prove quite valuable.
The Pico also has onboard ADCs which have 12 bits
resolution. If that's good enough, that's another part
removed from the schematic. Supposedly it takes 96 cycles
to process each sample:
There are tricks with 4x oversampling, lowpass
filtering, and decimating to add 1 ENOB to the resolution
(repeat for more) but it is unclear if the pico can muscle
it and juggle USB traffic at the same time. I wouldn't
bother with that, because the bandwidth-limiting filters
used in SDR software perform something mathematically
similar to this task anyway.
On Mon, Dec 18, 2023
at 6:52?PM Nigel Johnson MIEEE via
<nw.johnson= [email protected]>
wrote:
I can
completely identify with your problem.? Before I
retired from teaching 6 years ago, I was faced
with admin people who believed the sales critters
more than the professors they were working for.
After
succinctly specifying stereo input for the
laptops, I got the 'they are stereo' feedback from
admin and faculty laptops, together with the min
spec for students, came with mono - but they had a
handy numeric keypad for data entry - one of which
I am still using having bought it off-lease.
My
Communications systems 1 course was then equipped
with a no-name USB sound card which worked well
with a class set of Softrock 40s until I handed it
over to another professor - one day I got an
urgent call to go to the lab because the
experiment was not working.
After
explaining what the 'RIAA Equalisation' switch was
for to the young professor who had taken over the
course, I went back to experimenting with my
Behringer UFO202 at my desk, which I still use to
play with such stuff.
I have also
had some results with their Line 2 USB for a
compact box, but haven;t been able to get rid of
the mountain at the zero beat point part of the
spectrum while using it on a raspberry pi - I
suspect that is a driver problem contoured for
audiophiles and for which I have no access to
support!
regards,
Nigel
Nigel Johnson, MSc., MIEEE, MCSE VE3ID/G4AJQ/VA3MCU
Amateur Radio, the origin of the open-source concept!
Skype: TILBURY2591
On 2023-12-18 18:26, Rob Frohne (KL7NA) wrote:
Hi Jim, et. al.,
I
am working on the software for my Electronics II
class project for next quarter.? In the past, my
students designed QSD based software defined
receivers that we used to connect to Quisk via
soundcard.? The problem is lately laptops do not
come with stereo sound inputs and so a USB
soundcard is needed.? Those are always a pain to
purchase, because what was available last year
is not this, or they have changed the specs to
be mono input, or something so they don't work
as well as the old ones we used to be able to
get.? Every time you buy a USB soundcard, you
take a risk.? I have lost that bet in the past.?
This year I want to have the students grab the
analog signals from for I and Q with their own
ADC and send them to the host using the USB
UART.? I will still have them add a 3.5 mm jack,
but hopefully only for debugging.? We will be
having JLCPCB build their boards and JLCPCB has
a couple interesting audio ADCs that are a lot
less expensive than a sound card.? The 24-bit
one I'm using (PCM1808) is only fifty cents and
the specs are better than the cheap soundcards I
used before.? It will be nice to get rid of the
3.5 mm audio cable between the laptop and the
SDR.? In the future, I might want to use an MCU
with WIFI like the Raspberry Pi Pico W and send
the same data over UDP so the SDR could be more
remote to the host PC.? ?I think using the USB
UART is a good first step in that direction, so
at this point I am first pursuing that first.?
?I have done tests and can get 5.9 Mbps pretty
easily over the?to a
Linux host.? I want a 48 kHz sample rate and for
this the bandwidth I need 3. Mbps to send 64
bits for each IQ pair (only 48 are needed, but
we can use the extra 16 bits for each pair to
send acknowledgements of commands or
synchronizing data ).? I might even be able to
get a 96 kHz sample rate in the 5.9 Mbps
available.?
oThe
thing I would very much like to know is where in
Quisk I should inject this I/Q sound data that
is not coming from a soundcard.? I
have the hardware.py file figured out for
controlling the SDR, but I'm looking for how the
I/Q data connects to Quisk.? It almost looked
like Hermes Lite data went directly into
quisk.c, but I'm hoping there is something
easier to interface to, than the main c program,
which is daunting just to read.? ??
I
have one other puzzling issue.? The actual
sample rate (due to the Raspberry Pi Pico
limitations)? is 48.0460 kHz, so I will need to
discard samples or something to get the data
rate to match the more accurate soundcard sample
rate.? How close do I need to get it for Quisk
to work properly?? You have a lot more
experience with sample rate matching than I do,
so any tips you have there would be
appreciated.? I have some theoretical ideas that
first reconstruct the analog signals from the
sampled ones, then resample them at the correct
rate, but I suspect that is not the best option
and suspect just randomly discarding samples at
the right rate might be better.?
The
first sentence of the Quisk Docs says,? "This
is Quisk, a Software Defined Radio (SDR). You
supply an antenna and a complex (I/Q) mixer to
convert the radio spectrum to a low IF. Then
send that IF to your computer using the sound
card, Ethernet or USB."?
That is exactly what I want my students to do,
and I need to minimize the software they have to
worry about, because their learning objectives
are more hardware oriented, though these days,
you cannot skip the software altogether. ?
TNX & 73,
Rob
|