Tag Archives: gnu radio

Real cheap Software Defined Radios, part 3

It works! At least, I can pick up FM Radio on it.


I think that GNU Radio + these cheap repurposed Realtek RTL2832U chipsets could be the most interesting thing to happen for a long time.

A brain dump of the gotchas while I remember them …

Source IO size X does not match sink IO size Y

This must be the most infuriating error message in the history of error messages. It is precisely useless. I applied the following patch to GNU Radio to make the error meaningful and somewhat actionable:

--- Connection.py.orig	2012-12-05 19:32:59.450942474 +0000
+++ Connection.py	2012-12-05 19:34:11.647520511 +0000
@@ -40,4 +40,4 @@
 		source_size = Constants.TYPE_TO_SIZEOF[self.get_source().get_type()] * self.get_source().get_vlen()
 		sink_size = Constants.TYPE_TO_SIZEOF[self.get_sink().get_type()] * self.get_sink().get_vlen()
 		if source_size != sink_size:
-			self.add_error_message('Source IO size "%s" does not match sink IO size "%s".'%(source_size, sink_size))
+			self.add_error_message('Source IO size "%s" (%s*%s) does not match sink IO size "%s" (%s*%s).'%(source_size, self.get_source().get_type(), self.get_source().get_vlen(), sink_size, self.get_sink().get_type(), self.get_sink().get_vlen()))

What the error means is that the types at each end of a connection don’t match, eg. you’ve got a float output feeding into a complex number input. The trick (explained to me on IRC) is to change the types of each end until the colours match — eg. blue to blue, or brown to brown. To change the types, select a block and either hit the Up and Down arrow keys, or use the combo box that appears when you open the properties.

Sampling rates, decimation, etc.

This is very poorly explained anywhere. I ended up watching this video and very carefully noting each calculation that the speaker makes, then adjusting them for the RTL-SDR.

Use variables, expressions

Define variables liberally. Use expressions. eg. The Quadrature Rate in the diagram above is samp_rate/20, and the Decimation is int(samp_rate/20)/1000.


Filed under Uncategorized

Real cheap Software Defined Radios, part 2

I got the Ezcap EZTV645 from Deal Extreme [sold out, sorry!]. It’s cheap (I think £20 in total) and was delivered in about 2 days. For the USB details see my previous posting.

It’s also slightly different from the description on the RTL-SDR compatibility site since it has a Fitipower FC0013 tuner instead of the slightly more desirable E4000. Here is the output of rtl_test:

# rtl_test -t
Found 1 device(s):
  0:  ezcap USB 2.0 DVB-T/DAB/FM dongle

Using device 0: ezcap USB 2.0 DVB-T/DAB/FM dongle
Found Fitipower FC0013 tuner
Supported gain values (23): -9.9 -7.3 -6.5 -6.3 -6.0 -5.8 -5.4 5.8 6.1 6.3 6.5 6.7 6.8 7.0 7.1 17.9 18.1 18.2 18.4 18.6 18.8 19.1 19.7 
No E4000 tuner found, aborting.

Compiling the software wasn’t too much of a problem. I put my Fedora spec files in this git repo.

I’ve not so far been successful at actually receiving anything, since obviously GNU Radio pretty much requires you to “build your own FM radio” from little pieces, but I’m still trying, and anyway it’s educational …

Update: It does appear to work. That very poorly defined peak at 93.5 MHz is quite probably BBC Radio 4 FM.


I’m using the crappy built-in antenna, combined with being indoors in an old house (you can’t normally get radio reception anyway in this house unless the radio is sitting next to a window). So it’s no surprise that the signal to noise ratio is so bad. Next step therefore is to look into a proper antenna.

1 Comment

Filed under Uncategorized

Real cheap Software Defined Radios?

It seems someone worked out that the Realtek RTL2832U found in various very cheap USB DVB-T decoders can be repurposed as a complete software-defined radio. The sidebar of this subreddit seems to be the best place to start.

Update: This is the Ezcap EZTV645 from Deal Extreme:

[175189.929963] usb 1-1.1: new high-speed USB device number 7 using ehci_hcd
[175190.028379] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=2838
[175190.028385] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[175190.028389] usb 1-1.1: Product: RTL2838UHIDIR
[175190.028392] usb 1-1.1: Manufacturer: Realtek
Bus 001 Device 007: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T


Filed under Uncategorized