Can we turn BeagleBone Black to an FM receiver ?

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

My suggestion is that read up on the processor. And there is no FM receiver inputs on the processor.

http://www.ti.com/product/AM3358/technicaldocuments

Gerald

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 :slight_smile:

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.

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

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:

http://makezine.com/projects/tracking-planes-with-rtl-sdr/

–Mark

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

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 ???