retro-clock v2: Pixel Art Bluetooth Speaker, FM Radio, and Internet Clock
retro-clock v2 enables you to see network time, calendar, weather of your city, exchange rates all accompanied by stylistic japanese pixel art. retro-clock also features speaker which plays music from your phone via bluetooth, as well as a built-in FM Radio for tuning in to your favourite radio station.
It is a recreation of our previous retro-clock, which is based on Python 2.7 and SDL library. With new version, we switch to Qt and created a new OS layer with features required to achieve sufficient multimedia ecosystem. New version additionally offers bluetooth device management, touch screen support, FM radio, replaceable pixel art animations, better flexibility regarding connectivity, and better connection stability.
The hardware consists of a touchscreen display, a Raspberry Pi 3B, a USB sound card, and an FM radio module.
The operating system stack is customly built from scratch on top of OpenEmbedded / Yocto Linux. The following features are developed/ported to OS:
- Optimized kernel with less boot time overhead, optimized user-space, custom retro-clock Splash screen has been added.
- Main UI is built using Qt 5 directly on top of OpenGL/ES2.0 layer using EGLFS plugin, which is ported to the OS.
- Touchscreen Support with ads7846 kernel module, tslib and evdev (no libinput), built into Qt.
- Connection Manager (connman) which automatically connects to your wifi or your wired ethernet.
- retro-clock automatically starts tethering its wifi upon request. This way, clients can connect and talk to it remotely.
- A mosquitto (MQTT) server has been set up on retro-clock to manage remote client communication. Using the API provided, clients can remotely control retro-clock over WiFi.
- Ability to detect connection failure and try reconnecting.
- Network time synchonization (NTP) support using ntp tool.
- I2C driver support and TEA5767 FM radio drivers built and customized for retro-clock.
- USB Sound Card support utilized. PulseAudio programmed with audio routing (FM Radio to USB Sound Card) and A2DP support.
- Bluez5 bluetooth stack software lets retro-clock connect to A2DP, HFP profiles seperately on demand.
- Bluez5 AVRCP control subsytem is created for delivering music information.
- DBus - Bluez - PulseAudio - Connman abstraction layer software has been created.
Watch the following video: