Universal device API, parameter standardization?

Hi all,

I was wondering, why lots of the examples only work for USRP 1 and not
for USRP 2. I tried diff with a few files. There was really not much
difference,
except the different import library. Can gnuradio programs be designed
somehow
universally, looking into a global configuration file what device is the
standard device
or introduce a simple switch between different hardware (USRP1,2, Audio,
other SDR …) ?

I have the impression, that the UHD driver goes into this direction, but
only for Ettus products.
Could gnuradio itself be designed in a way to use abstract data
aquisition sources ?
Many parameters can be shared, like center frequency, decimation,
samplerate etc.
Of course there may be some hardware specific parameters, that can be
made optional.
So, an application can be written in a generic way, then choosing the
hardware just
with a switch, or use a system configuration for a standard device.
Gnuradio could be a nice educational tool with some cheap (100$) data
acquisition
modules, not as complex as USRP, but with higher sample rates as audio
input.
I would like to use it as a spectrum analyzer and oscilloscope (as a
better alternative
to my old analogous CRT without storage).

In my offline signal analysis programs I use an API that is independent
from the
signal source and format. Lots of metadata parameters provide a full
specification.
So an analysis procedure can handle all stuff, no matter if it’s complex
baseband,
IF or RF. In gnuradio, you have to tell the sinks explicitly, if there
are real or complex
samples coming in. The spectral diagram does not know about the
centerfrequency,
so the frequency axis is not automatically correct. You could handle
this by global
variables, but with metadata attached to signals, this could be done all
automatically.

Moeller

On 08/05/2010 12:56 PM, Moeller wrote:

Hi all,

I was wondering, why lots of the examples only work for USRP 1 and not
for USRP 2. I tried diff with a few files. There was really not much difference,
except the different import library. Can gnuradio programs be designed somehow
universally, looking into a global configuration file what device is the standard device
or introduce a simple switch between different hardware (USRP1,2, Audio, other SDR …) ?

I have the impression, that the UHD driver goes into this direction, but only for Ettus products.

Non-Ettus products can also support UHD.

Philip

On 08/05/2010 01:10 PM, Philip B. wrote:

Non-Ettus products can also support UHD.

Indeed, all the code is freely available, and it would seem like a
company like, for example,
ThinkRF (who already have Gnu Radio support) could head in the UHD
direction. Nothing
stopping them–no “secret handshakes” required, etc.


Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

On 05.08.2010 19:38, Marcus D. Leech wrote:

On 08/05/2010 01:10 PM, Philip B. wrote:

Non-Ettus products can also support UHD.
Indeed, all the code is freely available, and it would seem like a
company like, for example,
ThinkRF (who already have Gnu Radio support) could head in the UHD
direction. Nothing
stopping them–no “secret handshakes” required, etc

But is the UHD really device-independent ?
In the sense that you compile a program and later you don’t have
to change the source to support a different device?
That could be possible with a device selector, configuration files
and a certain device-independent capabilities data structure.

My impression from the source is different.
In rx_timed_samples.cpp
the URSP-device is hard-wired, as a uhd-derived class.
“uhd::usrp::simple_usrp::sptr sdev”
So, once compiled, it can only support the USRP-type.

I would prefer to leave this dynamic.
So, e.g. you open the spectrum analyzer and you have a button
to choose a device. And if there is only one available, this one
is chosen automatically as default.
So, all example programs, spectrum analyzers etc. work for all
supported devices, without source patching.

Is that possible with UHD, or does it need a different design.
I did not find a universal API, a dynamic data structure of device
capabilities that can be changed in run-time.

ThinkRF solutions would cost around $10000. That’s not on my radar.
I think USRP2 is already a good start for doing serious experiments.

Additionally I wish I had a small SDR device for private amusement,
as a spectrum analyzer and oscilloscope. Also for the kids to play.
A smaller frequency range and bandwidth would be accepted, for
a price around $100-200, RX-only. I think that should be realistic.
The ADC are not that expensive. There are some amateur solutions
around 100$, but they use the soundcard as ADC. For an oscilloscope
that’s not enough bandwidth.

Moeller

On 08/05/2010 09:56 AM, Moeller wrote:

I have the impression, that the UHD driver goes into this direction, but only for Ettus products.

The UHD is licensed under the GPL, so one can use it as one sees fit, as
long as ALL of the conditions and restrictions of the GPL are
followed.

There is an alternative license, the exact wording of which is being
finalized right now. This alternative will allow the use of the UHD
without being subject to the conditions and restrictions of the GPL. It
will impose alternative conditions, the most notable of which will be
that it may only used with Ettus R. radios. Please contact me off
list if this is of interest to you, or if you have any other questions
about licensing in general. To clarify, only I speak for Ettus R.
on licensing issues.

Matt E.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs