Tag Archives: software-defined radios

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?

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