Can we turn BeagleBone Black to an FM receiver ?

293 views
Skip to first unread message

amul...@gmail.com

unread,
Jan 6, 2016, 9:44:09 AM1/6/16
to BeagleBoard
Hello all, 

I was going through and article about Turning RPi into an FM transmitter . It consists of just putting a wire on the GPIO4 of Pi which works as an antenna and run the python script. 

The software uses the hardware of RPi which generates spread spectrum clock signals to create FM signals. 

I dug out more on http://elinux.org/RPi_BCM2835_GPIOs and found out that GPIO4 's alternate functions include ARM_TDI and GPIO_GCLK. 

I want to know what does the ARM_TDI and GCLK mean. 

Now, the main question is, can we make BeagleBone Black as an FM receiver using only software without using any external FM module ?

Regards

Gerald Coley

unread,
Jan 6, 2016, 9:46:34 AM1/6/16
to beagl...@googlegroups.com
My suggestion is that read up on the processor. And there is no FM receiver inputs on the processor.



Gerald

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Przemek Klosowski

unread,
Jan 6, 2016, 11:02:35 AM1/6/16
to beagl...@googlegroups.com
On Wed, Jan 6, 2016 at 8:19 AM, <amul...@gmail.com> wrote:

> I was going through and article about Turning RPi into an FM transmitter .
> It consists of just putting a wire on the GPIO4 of Pi which works as an
> antenna and run the python script.
>
> The software uses the hardware of RPi which generates spread spectrum clock
> signals to create FM signals.

Right, and the way it works they use the spread spectrum feature to
programmatically modulate the frequency of the PWM signal away from
103.3 MHz.
Since FM modulation works by changing the base, aka carrier, frequency
in proportion to the amplitude of the audio signal you're sending,
this happens to behave like a FM modulated signal that is decoded by a
FM radio.
It's a neat hack---the spread spectrum feature works fast enough to
change the frequency of the PWM signal at audio (kHz) rates---it'd be
impossible to change it fast enough by twiddling the PWM frequency
through its configuration registers.

As far as I know, there's no similar spread-spectrum feature on BBB,
so this won't work on BBB---although I wonder if something clever
could be done on a PRU.

>
> I dug out more on http://elinux.org/RPi_BCM2835_GPIOs and found out that
> GPIO4 's alternate functions include ARM_TDI and GPIO_GCLK.
>
> I want to know what does the ARM_TDI and GCLK mean.

You are looking at IO multiplexing. RPi and Beaglebone both can
connect multiple internal peripherals to output pins.
The FM feature uses a specific peripheral. It doesn't matter what
other peripherals are on alternate functions.

>
> Now, the main question is, can we make BeagleBone Black as an FM receiver
> using only software without using any external FM module ?

So now you're talking about FM receiver; neither BBB nor RPi has
hardware to receive FM. In theory, with fast enough ADC one could do
direct decoding but a) you'd probably need an antenna amplifier and b)
the available ADCs are nowhere near fast enough to digitize 100 MHz.
You could decode FM signals at carrier frequency 100KHz, probably :)

Charles Steinkuehler

unread,
Jan 6, 2016, 11:06:13 AM1/6/16
to beagl...@googlegroups.com
On 1/6/2016 7:19 AM, amul...@gmail.com wrote:
>
> Now, the main question is, can we make BeagleBone Black as an FM receiver
> using only software without using any external FM module ?

Only software? No.

I've worked on very minimal radios using just a couple of (FPGA) I/O
pins and some discrete parts. Basically, you use a differential input
of the FPGA as a comparator, build a delta-sigma ADC out of it, and
directly sample the radio signal. This actually works OK for lower
frequencies, but there's no way you can do this with just software and
GPIO pins at ~100 MHz FM frequencies.

You might be able to do something similar with the timer hardware on
the BBB if you have an outboard down-converter. You might even be
able to use another timer for the reference frequency output. But
you're still going to need at least a handful of external discrete
parts to do filtering/mixing.

--
Charles Steinkuehler
cha...@steinkuehler.net

Graham

unread,
Jan 6, 2016, 11:55:20 AM1/6/16
to BeagleBoard
You will need a hardware tuner-downconverter in front of the BBB.
But these are available for less than $25.

Google: "SDR dongle" for a lot of hardware front end alternatives

Things like:
https://www.adafruit.com/products/1497

http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/


The things you find are usually intended for Windows computers used for the back end signal processing.
So you are then facing a port of the back end demodulation software onto the BBB.

If you Google "SDR dongle Linux" you will find some existing Ubuntu ports.

But a BBB that was not doing anything else could likely handle the processing load.  An X-15 could do it for sure, with the on-board DSP.

But the first guy to make it work on a BBB is going to have to do some real work.

--- Graham

==

Mark A. Yoder

unread,
Jan 7, 2016, 8:33:35 AM1/7/16
to BeagleBoard
I've had good luck with receiving FM on the Bone using the SDR Dongles.  Checkout: http://sdr.osmocom.org/trac/wiki/rtl-sdr.

If you have the SDR, you can install the software with:
apt-get install rtl-sdr

# Then you can decode on the Bone and send the data to a host to play.
# On the bone
# rtl_fm -f 92.7M -M wbfm -r 48000 - | netcat -l -p8082
# On the host
# nc bone 8082 | aplay -r 48k -f S16_LE

It's amazing what this SDR dongles can do.  You can even track airplanes with them:


--Mark

WZ9V

unread,
Jan 7, 2016, 10:01:06 AM1/7/16
to BeagleBoard
If you are not stuck on the Black there is a Grove FM device that plugs into a Green. No idea how well it works.

http://www.seeedstudio.com/depot/Grove-FM-Receiver-p-1841.html

Moez Essid

unread,
May 23, 2016, 12:45:37 PM5/23/16
to BeagleBoard
hi all,

sorry if i write here.but really i need help !!

i am working with bbb (angstrom v2012) and i am trying to create an application with grove  FM receiver( based on RDA5870m using i2c).

any Idea pls ???
Reply all
Reply to author
Forward
0 new messages