FUNCube SDR
jim lesurf (2082) 1438 posts |
For some time I’ve been using a ‘FUNCube Pro Plus’ USB dongle with my Linux machines. To do this I wrote some software to operate the device and process its output. I’m now wondering if it may be possible to do the same with RO. The device acts as a ‘software defined radio’. The output is supplied as a standard USB ‘soundcard’. So I’d expect that to now work given the new USB audio modules developed by Colin and Dave. The device is controlled via ‘HID’. I know little about this beyond the details and the libraries I used on Linux to control the device. Can someone advise me wrt HID on RO and how I might get this to drive the device? FWIW The main (Linux) programs I’ve written are a swept spectrum analyser and a narrower FFT anaylser, but I’ve also been thinking of writing a simple VHF/FM reciever program for it. So I’d be interested in doing similar things for RO if it is possible and I can find out enough. The device works from around 100 kHz up to about 2 GHz. As well as being able to set the tuned center frequency it also has adjustable gains, etc. Unlike many SRD dongles it has a very wide dynamic range and is quite sensitive. It was originally designed for use for satellite reception. But I’ve found it very useful for examining the VHF/UHF spectrum. Cheers, Jim |
Dave Higton (1515) 3526 posts |
It appears that the device uses extensive DSP capabilities of the host computer. Without that capability on a RISC OS host, it’s a non-starter. Pity. In other respects it looks very interesting indeed. |
jim lesurf (2082) 1438 posts |
That perhaps misunderstands the situation. The amount of host ‘DSP’ depends entirely on what the user is choosing to do with the device. My programs don’t do that much and are pretty similar to what I run anyway with my audio programs. e.g. my !USBscope is pretty similar in ‘DSP’ terms to my FUN_ programs. So running my !USBScope with a real audio card would be similar to running FUN_scope. I’ve re-used a lot of the same code on both machine types, already! The FUNCube Pro Plus simply requires you to issue a set of HID commands to set the LO frequency, LNA on/off, mixer gain, and (if needed) bias ‘T’ on/off. It then runs as an IQ receiver. The LO is applied to an IQ mixer and then outputs the I and Q as the L and R audio as a Class 1 USB Audio standard device. How you use that and what ‘DSP’ you do, is up to the user. This is different to the various ‘DTTV/DAB’ dongles. Many of those require a lot of host DSP because they are decoding the digital audio/video. However that’s not what I’m doing. My FUN_sweeper program grabs the I and Q and simply does an rms to get the power of the signal level inband. Then steps to a different LO and grabs the power for the next band, then… This sweeps out slowly a wideband power-frequency spectrum. e.g. covering the UHF TV band. FUN_Scope/FUN_mini_scope grabs a chunk of IQ (LR) and does a complex FFT to then display the result. I think I grab a 1 sec chunk, then do an 8k complex FFT to display, then repeat. The code is actually pretty similar to what I use elsewhere for my audio analysis programs – on RO as well as Linux. You may be looking at some of the powerful programs like SDR# that people employ. They do much more work. However you don’t need to use these and can do much more lightweight processes. Provided you can drive the HID and grab the audio. The only drawback is that something like my FUN_sweeper is slow. Takes many seconds to scan the UHF band. However that in turn means it gives very good results as the averages are long. So I’m back to my question wrt HID. I can drive this OK on Linux as I have the relevant library. But I don’t know anything about HID itself or how that works on RO. If someone can point me at that or help me twig how to do it I can then find out for myself what I can get from the FUNCube on RO. :-) Jim |