¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Re: Tips on interfacing I/Q data into quisk?


 

¿ªÔÆÌåÓý

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

--

KL7NA


From: [email protected] <[email protected]> on behalf of Chuck Ritola via groups.io <cjritola@...>
Sent: Tuesday, December 19, 2023 10:40 AM
To: [email protected] <[email protected]>
Subject: Re: [n2adr-sdr] Tips on interfacing I/Q data into quisk?
?
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

--

KL7NA

Join [email protected] to automatically receive all group messages.