It works!

The trick was:  The firmware was bricked and needed to be restarted 
(unplugged & plugged back in after the system was configured & started up).
Once I got it restarted, I could power down & up and it would continue to 
work.

So, the trick to getting this device to work on the Beaglebone Black is the 
following:

Build a custom kernel and include the radio drivers for the si470x

install base image: bone-debian-7.6-console-armhf-2014-09-04-2gb.img on a 
SD card

On a linux box:

Load pre-requisites for building ti graphics SDK and build it for the kernel
#sudo apt-get install git build-essential device-tree-compiler lzma lzop 
u-boot-tools libncurses5-dev
#git config —global user.name “name”
#git config —global user.email “email”
#git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
#cd ti-linux-kernel-dev
#git checkout 3.14.19-ti-r27
#./build_kernel

Select kernel modules to enable si470x radio tuner hardware (more stuff 
will be added after that)
Check Device Drivers -> Multimedia Support -> AM/FM radio 
receivers/transmitter support
Radio Adaptors will be added.
Check Radio Adaptors -> Silicon Labs Si470x FM Radio Receiver Support
Check Radio Adaptors -> Silicon Labs Si470x FM Radio Receiver Support -> 
Silicon Labs Si470x FM Radio Receiver Support with USB

Build the kernel
Insert the SD card on the Linux system

#nano system.sh
MMC=/dev/sdb

Deploy the new kernel

#sudo ./tools/install_kernel.sh

Remove the SD card and insert into Beaglebone and boot it

Upgrade the image to latest repositories

#sudo apt-get update

#sudo apt-get upgrade

Install alsa sound drivers (support for playing wav and mp3)

#sudo apt-get install libasound2 alsa-base alsa-utils alsamixergui 
alsaplayer-text alsaplayer-common

Install FM radio tuner drivers

#sudo apt-get install firmware-realtek radio v4l-utils fmtools 

Modify the ALSA config to allow the USB sound card to be the primary sound 
card
Skip this step is you are using HDMI or a cape as your sound card
USB Sound card = vid 0xd8c pid 0x000c (use dmesg to find the vid and pid of 
your device)
InstantFM = vid 0x06e1 pid 0xa155

#sudo nano /etc/modprobe.d/alsa-base.conf
options snd-usb-audio index=0,1 vid=0x0d8c,0x06e1 pid=0x000c,0xa155

#sudo reboot

After the reboot and login, if this is the first time you've attempted to 
use the device,
unplug it, wait a bit and plug it back in.
This will reset the device and make it functional.

Test the radio

Open a terminal and run radio to scan for stations and bring up an 
interface to select a station

#radio -s

To tune from the command line, use the following:

#v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=90.1 --all

Open another terminal and run a mixer to set the volume levels

#alsamixer

Open another terminal to re-direct the audio stream from the USB tuner to 
the audio card

#arecord -D hw:1,0 -c2 --format=S16_LE -r48000 | aplay

You can change stations using radio (or v4l2-ctl), change volume using mixer




-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to