All entries in this blog series:



The end of the challenge is nearing, so here's my final post on this project.

I have had a major setback when resuming coding after the build, but I did manage to get a fully functional FM/Internet Radio combo in time.



Disaster ...


After having finished the build from part 4, I was getting ready to resume coding on my interface and its functionalities.

I booted my BBB Radio, started the browser and my interface was totally blank.

No reason to panic (yet), as I might have left the code broken the last time I worked on it. That's when I discovered my index.cgi file was 0 bytes big.


Disaster ... The code was gone and I had no backup to recover at least some of it. Luckily, my images, stylesheets and config files were still intact.

I desperately searched for a copy of my index file but didn't manage to find any. There was nothing left but to start over and start making backups!


That was a bummer which was most likely entirely my fault, but a lesson learned ... the hard way. I'm still not sure what happened exactly, but I assume I left the file open and didn't properly shut down the BBB, or at least something along those lines.


With only two weeks left before the end of the challenge, I started coding again ...


Demo Time!


Pfew, I made it ... with only a few days to spare. Here's a set of demos of what I managed to get done for this challenge.




It's possible to control the Beaglebone Black Radio in various ways:

  • Touchscreen using the LCD cape
  • Wireless keyboard/mouse combo
  • From a smartphone/tablet/pc


Each of the controls have their (dis)advantages. For example, the LCD cape is useful for navigation and actions using big buttons. It is however less adequate for entering data.

This disadvantage is compensated by the wireless keyboard/mouse combo or by accessing the interface from another device such as a smartphone.


You'll see me using some of those different controls in the videos below.





This video demonstrates the controls to listen to the radio. The controls allow you to switch between FM or Internet radio, start, stop, browse the available channels and set the volume.



You can hear the moment it switches between FM and internet streaming. The audio levels also seem to be different. I'll have to find a way of aligning this.

photo 1.PNG


Managing Channels


I developed a simple radio channel management interface which you can view in the video below. It allows you to add new channels and edit or delete existing channels.

The configured channels are stored in a configuration file on disk to make them persistent across reboots.



Managing channels can also be done (more easily) from a smartphone:

photo 3.PNG




Finally, a short video on setting some parameters for the SDR receiver stick. The list could be extended to support a larger set of configurable parameters.

For now, it allows to configure the modulation type, gain and sample rate which are provided to the "rtl_fm" command. Changes are also stored in a configuration file on disk.



photo 4.PNG


Diagram, Components and Code


Below you will find all the information required to better understand or even build this particular Beaglebone Black Radio.

All suggestions/improvements/additions are more than welcome, I'll also gladly answer any questions you might have regarding this build.




I made a simple diagram of the different components involved and how everything is connected.

It's more of an integration project where different existing components are combined into one solution, all glued together with a web application developed in Perl.

bbb_radio (2).png




The list of electronic components used in my project:


ComponentHeader 2
Beaglebone - BeagleBone Black
LCD Touch CapeCircuitCo:BeagleBone LCD4 -
USB Wifi AdapterUWN200 b/g/n USB wireless adapter | Logic Supply
USB SDR ReceiverSoftware Defined Radio Receiver USB Stick - RTL2832 w/R820T ID: 1497 - $22.50 : Adafruit Industries, Unique & fun DIY el…
Audio AmplifierStereo 2.8W Class D Audio Amplifier - TS2012 ID: 1552 - $9.95 : Adafruit Industries, Unique & fun DIY electronics and ki…
SpeakersSpeaker - 3 Diameter - 4 Ohm 3 Watt ID: 1314 - $1.95 : Adafruit Industries, Unique & fun DIY electronics and kits
Powered USB HubLogiLink® | USB 2.0 Hub, 4-Port LogiLink® | 16.03.2014
USB SoundcardUSB 2 0 External MIC Speaker 3D 5 1 Channel Audio PC Sound Card Adapter Brown | eBay
Wireless Keyboard & Mouse ComboRii 2.4GHz Wireless Mini PC Keyboard Touchpad V2 Black: Computers & Accessories




And finally, a link to the source code of my web application used to control the radio: BeagleboneBlackRadio on GitHub

Information on setting up the Beaglebone Black and getting the components installed and running can be found in the previous posts of this challenge.



Thank you


As you can see in the picture below, we're having fun with our new radio! Thank you for giving us the opportunity to participate in this Roadtest Challenge.

Screen Shot 2014-03-23 at 14.33.50.pngphoto (1).JPG