Indigresso Wiki

Open Source Stuff for DASH7

User Tools

Site Tools


opentag:radios:testing_with_gnuradio

RF testing with GNU Radio


It is not necessary to understand physical layer of radio transmission to use Dash7 or OpenTag, however those who need to perform physical layer tests or diagnosis can benefit from this.


Software radio can provide a cost-effective method of RF testing or experimenting with modulation settings.
GNU Radio is an open-source project which implements this.

Introduction to GNU Radio

Perhaps the best introduction to using GNU Radio can be found at tutorials by Professor Sharlene Katz of Cal State Northridge.
These tutorials can be used by those without any RF hardware, because they show how to demodulate pre-recorded samples.


Recommended to run thru these tutorials before trying to understand following material.
It also might be recommended to first open the dial_tone.grc into gnuradio-companion, as its considered the hello-world of gnuradio. You can use this to test your sound card, to see if audio sink requires 48KHz sample rate or other.

Hardware available for GNU Radio

http://ettus.com/ is the primary provider of RF hardware to use GNU Radio over the air. These have the best performance and support, and provide both TX and RX functionality over wide frequency range.


Another low-cost option is an RTL2832-based USB DVB-T receiver. The frequency stability may not be the best, and ADC is only 8bit, but with such low cost there should be no reason not to have one. This is RX only. See http://wiki.spench.net/wiki/Gr-baz for more information.
http://www.funcubedongle.com/ might also be interesting, but its not useful for Dash7 purpose because of 80kHz bandwidth limitation.

GFSK modulation with GNU Radio

GNU radio has had GMSK modulation to support GSM phone users.
MSK is the same as FSK, but with MSK the modulation index is fixed at the minimum possible 0.25.
The low-cost data transceivers (such as used for Dash7) have modulation index around 0.5 to 2.0, which is commonly known as (G)FSK.
(patch to add GFSK blocks is forthcoming 4/13/2012)

test examples using Ettus WBX

WBX RF daughterboard has frequency range of 64MHz to 2.2GHz, making it useful for many general purpose uses, and the most appropriate for 433.92MHz. But there are other board available for other frequency ranges.

GFSK PN9 signal transmitted by WBX and received by WBX (55555bps with +/-50Khz deviation at BT 0.5):

And, same received signal type from CC430:

CC430 is continuously transmitting using PKTCTRL0.LENGTH_CONFIG = 2

GRC schema used to run these tests

samp_rate set to 444,444 samples per second, and samples_per_symbol of 8 at modulator results in 55555bps.
FM sensitivity of 0.707 results in +/-50KHz devation.
With gnuradio-companion you can experiement with filters and modulation settings, among an infinite number of other radio things.

time-domain analysis

Received signal can be displayed in time domain using Quadrature Demodulator and Scope Sink.
The deviation is samp_rate/(pi*2).
In this case 444444sps/6.283 = 70.7Khz for 1.0 on scope display.
0.707 on scope = 50KHz deviation.

uhd_fft.py

uhd_fft.py is a simple spectrum analyzer.
showing CC430 at a wider span, with ambient noise saved at trace B:

Care must be taken with Ettus RF boards for received signal maximum damage rating. Maximum safe level is generally 0dBm.

opentag/radios/testing_with_gnuradio.txt · Last modified: 2012/04/13 19:36 by dudmuck