All entries in this blog series:
- Beaglebone Black Radio Challenge - Review
- Beaglebone Black Radio Challenge - Part 1: Project description
- Beaglebone Black Radio Challenge - Part 2: Getting the different components to work
- Beaglebone Black Radio Challenge - Part 3: User interface (Work in progress)
- Beaglebone Black Radio Challenge - Part 4: The Build
- Beaglebone Black Radio Challenge - Part 5: Project Finalisation (this post)
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.
Controls
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.
Listening
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.
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:
Configuration
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.
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.
Diagram
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.
Components
The list of electronic components used in my project:
Code
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.
Top Comments