Internet Radio project

Introduction

This page is for outlining my Internet Radio project. The idea being that I work out what it does before I start coding and buying hardware. (More honestly – I have some hardware already so how can I add/adapt it to make a radio).

Product Goals

  • An Internet radio device with a large display.
  • Touch screen interface
  • IR remote control
  • Play media from networked or attached storage
  • Internet Radio station picker
  • Miscellaneous features like network security and home automation
  • Audio out via Bluetooth for Bluetooth speaker
  • Alarm clock – Multiple alarms. Internal speaker/buzzer
  • Customizable display – it must be nice to look at
  • Networked for ssh and VNC like access

Learning Goals

  • Improve my C and C++ – (on Linux [Arm platform] and direct [Atmel device] )
  • I²C experience
  • Infra-Red  protocols and decoding
  • Cross compiler and Kernel building
  • Embedded Linux

Choice of Hardware

Hardware platform: I already have a Raspberry Pi so that was my first choice, I was also experimenting with the Gertduino for expanded IO. Together they would meet most of my requirements. But then I saw the A10-OLinuXino-LIME, it was much more feature packed and would support many more interfaces than the Pi. It looked a tidier solution for connectivity and it even had 4.3 and 7 inch touch screen displays supported.

IR decoding: I already solved the IR decoder problem with the Gertduino (I heavily modified the sample code) but as I only needed a few IO pins the Gertduino was too much. So I looked around and found the Olimexino-85.

Bluetooth and Wifi dongles. These are supported “out-of-the-box” by the Raspberry Pi Raspbian distribution. The Debian solution from Olimex does not recognize them.

Software Choices

Most of the development would be controlled/done from a Windows machine.

The standard distro from Olimex is Debian. Using Virtualbox on Windows I would use a Debian install to create the cross compiler (amd64 to arm) build environment. This will allow me to rebuild the Olimex distribution to include the needed kernel drivers for USB Bluetooth and Wifi.

Configuring samba support on the LIME allows me to edit and compile/debug the application directly on the LIME but using the nice and powerful text editors and IDEs available for Windows.

A modified Windows Arduino IDE works with the Olimexino-85 for sketches in C and C++.

Application: As the first choice for a UI on Debian is GTK based that is what I decided to use for my application.

TBC