DigitalRooster
DigitalRooster the Radio Alarmclock that doesn’t suck, or if it does you are able to improve it.
Why
First and most important - because it is fun!
Did you ever buy a product you really loved for its specs and features and after some time you found something is missing or doesn’t feel right? - Well, so did I.
Ten years ago I got a Terratec Noxon iRadio Cube digital alarm clock with internet radio and UPNP player. A great gadget, unfortunately it died :( Even worse - Terratec went out of business and does no longer maintain software. I had to find a replacement.
After some research I got an Auna Radio Gaga. The sound quality is amazing for a alarm clock, it can play FM Radio, DAB+, internet streams and podcasts using digital frontier radio service - really neat features but I missed adding other podcast urls and radio stations. I would love to hack my Auna and the software… but it turns out you can’t (at least not easily).
It was time to create DigitalRooster. And it was the perfect chance to learn a lot about electronics, CAD, 3D-printing and to get to learn QML.
What
The minimum I wanted was to listen to podcasts and internet radio when I go to bed and to get woken up reliably in the morning with my favorite news station - but only during the week.
I don’t want complex controls with many buttons but I wanted a physical volume controler and on/off button, It feels more intuitive to me to turn a knob to change the volume than fiddling with virtual sliders on a touch display. So the hardware got a fancy Grayhill rotary encoder with push button and a touch display (capacitive). See more in the hardware section.
First the core functionality of DigitalRoosterGui was developed running on Debian GNU/Linux and Microsoft Windows as a library that could be tested independently. The QML GUI came next.
Porting it to embedded Linux with Buildroot on Raspberry Pi was relatively easy. I had past experience with board support packages and buildroot from previous projects. Playing around with Raspberry Pi Zero W using framebuffer copy (fbcp) the performance was o.k. but not overwhelming. I am working on a port to Banana Pi M2 Zero with quad-core CPU and a MALI GPU. On Mali/Lima there are some quirks with QT shaders but we will figure it out. The performance on Banana Pi is currently sub-par. It takes ages for the display to react to a touch event. The Raspberry Pi solution is working like a charm.
I think it is mature enough to share it with you
How
Look at the section software and clone the main project from github you can build the project on your host PC. If you like what you see look at the hardware and run it on your Raspberry Pi or Banana Pi. You can get you kit at tindie.com
If you are not into coding look in the the section contributing there are plenty of ways of collaboration.