RTL-SDR on a Beaglebone

854 views
Skip to first unread message

Eric Brombaugh

unread,
Jun 3, 2012, 8:01:19 PM6/3/12
to ultra-c...@googlegroups.com
I've been curious about how well RTL-SDR would work on a Beaglebone. Short answer - mostly works just fine. I wrote up a quick web page on my experience here:


Eric

Adam Nielsen

unread,
Jun 4, 2012, 8:43:56 AM6/4/12
to ultra-c...@googlegroups.com
> I've been curious about how well RTL-SDR would work on a Beaglebone. Short
> answer - mostly works just fine. I wrote up a quick web page on my experience
> here:

Interesting - however this isn't really "working". It's not too much of a
surprise that a device with USB2.0 capabilities can receive SDR data from the
RTL. In order to truly say it's "working" you would need to actually do some
signal processing on the Beaglebone - turn it into an FM radio for instance.
That would be much more impressive :-)

Cheers,
Adam.

Eric Brombaugh

unread,
Jun 4, 2012, 1:29:47 PM6/4/12
to ultra-c...@googlegroups.com
Granted, what it's doing isn't particularly interesting, but in the strictest sense it is working in that the application is able to compile, run and communicate with the hardware without errors or data loss at a reasonable sample rate. I agree though that for best effect it would be more impressive to actually _do_ something with the data that is collected. Any kind of demodulation would be nice to see in action, but that takes a lot more work. Since the Beaglebone has no built-in audio or video hardware it's difficult to demonstrate this, but I am working on some add-on hardware which would provide audio, so perhaps at some time in the future an FM radio would be possible.

Eric

Laurent Haas

unread,
Jun 4, 2012, 3:55:10 PM6/4/12
to ultra-c...@googlegroups.com
Hi Eric et al.


On Monday, June 4, 2012 7:29:47 PM UTC+2, Eric Brombaugh wrote:

Granted, what it's doing isn't particularly interesting, but in the strictest sense it is working in that the application is able to compile, run and communicate with the hardware without errors or data loss at a reasonable sample rate. I agree though that for best effect it would be more impressive to actually _do_ something with the data that is collected. Any kind of demodulation would be nice to see in action, but that takes a lot more work. Since the Beaglebone has no built-in audio or video hardware it's difficult to demonstrate this, but I am working on some add-on hardware which would provide audio, so perhaps at some time in the future an FM radio would be possible.

Maybe you should consider using the same protocol as the ghpsdr3-alex project to setup the dongle and deliver the samples. This would allow the other parts of the chain (dspserver and clients) to run with it ?

Check :

https://github.com/alexlee188/ghpsdr3-alex
http://openhpsdr.org/wiki/index.php?title=Ghpsdr3

for more details.

73

Larry - F6FVY

Eric Brombaugh

unread,
Jun 4, 2012, 6:19:58 PM6/4/12
to ultra-c...@googlegroups.com
That's certainly possible. RTL-SDR already has a command-line executable called rtl_tcp that sends digitized data to any TCP-IP interface, so I imagine that one could tweak that to follow the same protocols as the HPSDR project uses. Not my thing, but maybe someone else out there is interested.

Eric

Laurent Haas

unread,
Jun 4, 2012, 6:47:08 PM6/4/12
to ultra-c...@googlegroups.com
Thanks for the reply, Eric


On Tuesday, June 5, 2012 12:19:58 AM UTC+2, Eric Brombaugh wrote:

That's certainly possible. RTL-SDR already has a command-line executable called rtl_tcp that sends digitized data to any TCP-IP interface, so I imagine that one could tweak that to follow the same protocols as the HPSDR project uses. Not my thing, but maybe someone else out there is interested.

Out of curiosity, what is the CPU load when running your current program for, say, a 1 Msps bandwidth (2 MB data transfer per sec, actually) ?

Larry

Eric Brombaugh

unread,
Jun 4, 2012, 8:19:40 PM6/4/12
to ultra-c...@googlegroups.com
Larry,

If I run the command "rtl_sdr -f 91.5e6 -s 2.048e6 /dev/null" which runs the RTL2832 at a 2.048MHz sample rate and sends all the data into the bit bucket, I see about 7% CPU load via the "top" command running in another shell. Setting the sample rate to 1MHz results in about 2.5% CPU load. That suggests that there are ample remaining CPU cycles to do something useful/interesting with the data being gathered.

Eric

Random Walk

unread,
Jun 5, 2012, 11:43:33 AM6/5/12
to ultra-c...@googlegroups.com
This is good news because I have a number of thin clients Ive been hoping to press into service as remote SDR platforms to get them away from all the RFI in ny house.. I wonder what the pros and cons of the various server platforms are for unattended, flexible operation?

......

Alexandru Csete

unread,
Jun 9, 2012, 5:34:49 PM6/9/12
to ultra-c...@googlegroups.com
On Monday, 4 June 2012 02:01:19 UTC+2, Eric Brombaugh wrote:
I've been curious about how well RTL-SDR would work on a Beaglebone. Short answer - mostly works just fine. I wrote up a quick web page on my experience here:



Thanks for the guidelines. I have successfully compiled rtl-sdr on my Beaglebone. rtl_test works well and rtl_tcp start fine too, however, whenever I try to connect to it from a GNU Radio client using gr-osmosdr source, it hangs and prints "socket error". In the beaglebone terminal I can see the text:

client accepted!                                                               
set gain mode 1                                                                
set sample rate 1024000                                                        
set freq 93900000                                                              
set gain mode 0                                                                
worker cond timeout                                                            
Signal caught, exiting!                                                        
comm recv bye                                                                  
Signal caught, exiting!                                                        
[ 3305.702528] musb_host_rx 1601: RX2 dma busy, csr 2020                       
[ 3305.710602] musb_host_rx 1601: RX2 dma busy, csr 2220                       
[ 3305.719594] musb_host_rx 1601: RX2 dma busy, csr 2220                       
[ 3305.726566] musb_host_rx 1601: RX2 dma busy, csr 2220                       
[ 3305.737952] musb_host_rx 1601: RX2 dma busy, csr 2020                       
[ 3305.749706] musb_host_rx 1601: RX2 dma busy, csr 2220                       
[ 3305.759250] musb_host_rx 1601: RX2 dma busy, csr 2220                       
[ 3305.768536] musb_host_rx 1601: RX2 dma busy, csr 2020                       
[ 3305.778530] musb_host_rx 1601: RX2 dma busy, csr 2020                       
[ 3305.792038] musb_host_rx 1601: RX2 dma busy, csr 2020                       
[ 3305.801491] musb_host_rx 1601: RX2 dma busy, csr 2220                       
all threads dead..                                                             
listening...                                                                   
Use the device argument 'rtl_tcp=192.168.20.104:22000' in OsmoSDR (gr-osmosdr) e
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).

Alex
Reply all
Reply to author
Forward
0 new messages