After testing Slideshow and Android on Intel Compute Stick, I decided to have a look at another device sitting on my desk – Raspberry Pi – and analyze it from the point of usability for digital signage with Slideshow software.

What is Raspberry Pi?

Raspberry Pi (official webpage, Wikipedia) is small popular single-board computer with ARM processor (same architecture as the most of Android devices). It can be used for various automation, internet-of-things and educational applications. Thanks to its active community, you can find many tutorials online.

The official target price of all Raspberry Pi “Model B” versions (which are the most popular ones) is 35 USD at the time of the release of the particular version. The current cost including power adapter and micro SD card is around 50-55 EUR, but feel free to check your local electronic shop for the exact price.

Since the release of the first model in 2012, several improved model has been released, with better connectivity and performance. At the time of the writing of this blog, the newest one is Raspberry Pi 4 B, released in June 2019. For the tests, I will use the two most powerful models:

Raspberry Pi 3 Model B+ (RPi 3B+) – hardware parameters:
– Broadcom BCM2837B0 processor, 4 ARM Cortex-A53 cores, 1.4 GHz
– 1 GB RAM (shared with GPU)
– Micro SD card slot (primary storage)
– HDMI 1.3 output
– 4x USB 2.0 port
– Gigabit Ethernet RJ45 port (real throughput is limited)
– WiFi 802.11b/g/n/ac with integrated antenna
– Power through micro USB connector

Raspberry Pi 3 Model B+, author: Gareth Halfacree

Raspberry Pi 4 Model B (RPi 4B) – hardware parameters:
– Broadcom BCM2711 processor, 4 ARM Cortex-A72 cores, 1.54 GHz
– 1, 2 or 4 GB RAM (shared with GPU)
– Micro SD card slot (primary storage)
– 2x micro HDMI 2.0 output
– 2x USB 3.0 port, 2x USB 2.0 port
– Gigabit Ethernet RJ45 port
– WiFi 802.11b/g/n/ac with integrated antenna
– Power through USB-C connector

Raspberry Pi 4 Model B, author: www.raspberrypi.org

Android on Raspberry Pi

There are many official or semi-official operating systems for Raspberry Pi, but unfortunately Android is not among them. As Android operating system is open-source (most of it), you could try compiling it for Raspberry Pi by yourself, but for the sake of this article, we are going to stay away from doing so. There are some pre-build images of Android for Raspberry Pi made by community or commercial companies, which could be used instead.

LineageOS

LineageOS is an open-source Android distribution for various devices. Software developer KonstaT ported this distribution to Raspberry Pi as well. At the time of the writing, there are two versions available – one for Raspberry Pi 3 B and 3 B+ and one for Raspberry Pi 4. Both are based on the same LineageOS 16.0, which is based on Android 9 (codename Pie). Because of the different bootloaders, you can’t boot Raspberry Pi 3 version on Raspberry Pi 4 and vice versa (I tried).

Installation of LineageOS to Raspberry Pi is quite easy, almost the same as any other OS for Raspberry Pi. Download the image, unzip it, flash it to MicroSD card (size 8 GB+) with Win32DiskImager, insert it to Raspberry Pi and power it up. After some time (cca 3 minutes on RPi 3B+, 1.5 minute on RPi 4B), you will be greeted by Android setup screen, where you can pick your language, time zone and other basic settings.

The user interface (UI) on RPi 3B+ felt a little bit slow, sometimes one had to wait a second or two for Android to react on a click. On RPi 4B, the UI felt much smoother. Installation of Slideshow was without any problems on both versions, as well as the basic setup and upload of files through web interface. It took few seconds for the Slideshow interface to render all panels, but after everything was loaded, RSS news displayed as moving text (which can be laggy on slower devices) were smooth.

As this build doesn’t support hardware video decoding (although Raspberry Pi as a hardware supports it), all videos are decoded using CPU. Both RPi 3B+ and RPi 4 managed to play 720p H.264 video without lags, 1080p H.264 video was lagging on RPi 3B+ and smooth on RPi 4B.

From the point of digital signage, there are two big problems with this distribution:

  • Because the Android image contains parts licensed under non-commercial license, you can use the image only for personal or educational use. Commercial use is not allowed, that means you cannot use it for displaying advertisement for your company.
  • The maximum screen resolution supported by this image is 1280 × 720 (which is also the default resolution). As the standard resolution for TVs and screens is slowly moving from Full HD to 4K, this resolution is almost unusable for digital signage.
Home screen of LineageOS

emteria.OS

Emteria.OS is a commercial Android distribution aiming at industrial usage, developed by German company emteria GmbH. They offer Android images based on Android 7.1 for Raspberry Pi 3 B and B+ among a few other single-board computers. They don’t support Raspberry Pi 4 so far and the provided Android image doesn’t boot on this version, that’s why I tested it only on Raspberry Pi 3 B+.

It is important to note that emteria.OS is a commercial product. You can use their free evaluation version for testing (which is what I did), but it is not allowed to use it for commercial purposes, it automatically reboots every 8 hours and there are occasional pop-ups informing you that you are running evaluation version. For stable operation, paid Personal or Business license is required.

Installation of emteria.OS starts with free registration on their website and downloading their installer on your computer. After opening the installer, you can pick which image you would like to install (for RPi 3 in this case) and on which drive (micro SD card) you would like to flash it. After flashing the image on the card, insert it to your RPi, power up and let it boot.

The user interface was fairly responsive, with occasional slowness – subjectively faster than LineageOS on RPi 3B+, slower than LineageOS on RPi 4B. There weren’t any problems with installing and running Slideshow. Moving text and 720p H.264 video was displayed smoothly, 1080p H.264 video was lagging, very similar to LineageOS, so it seems that neither emteria.OS supports hardware video decoding.

The default screen resolution is 1280 × 720 and cannot be changed through the Android settings. Although according to some posts on emteria.OS forums, you can change the resolution by directly editing the configuration files on the micro SD card through your computer, I didn’t manage to set Full HD resolution – both framebuffer and the HDMI resolution as reported by my screen stayed at 1280 × 720. Even if I managed to set Full HD resolution, there is no guarantee it would be stable because of low GPU memory and performance.

Home screen of emteria.OS

Other distributions

RaspAnd is a distribution for Raspberry Pi 3 B and B+ based on Android 9. There is 9 USD fee for downloading the image, without any explanation about licensing and no evaluation or trial version, I decided to skip testing of this distribution.

RTAndroid is an distribution for Raspberry Pi 3 B based on Android 7.1, which is not actively developed any more. As it didn’t boot on Raspberry Pi 3 B+, only on older Raspberry Pi 3 B (which is not available in most shops any more), I didn’t test it any further.

There are also other developers who used their free time for building Android image for Raspberry Pi (for example https://www.raspberrypi.org/forums/viewtopic.php?f=73&t=232234), but due to high number of known issues, I don’t think they would be right fit for this test.

DistributionLineageOS 16.0emteria.OSRaspAnd
Webpagehttps://konstakang.com/devices/rpi3/LineageOS16.0/
https://konstakang.com/devices/rpi4/LineageOS16.0/
https://emteria.com/ http://raspex.exton.se/?p=1267
Based onAndroid 9Android 7.1Android 9
Supported modelsRaspberry Pi 3 B
Raspberry Pi 3 B+
Raspberry Pi 4 B
Raspberry Pi 3 B
Raspberry Pi 3 B+
Raspberry Pi 3 B
Raspberry Pi 3 B+
LicensingFree, non-commercial usage onlyFree evaluation version
Paid Personal (19 EUR / device)
and Business version (price on request)
Paid: 9 USD

Benchmarks

I took advantage of testing various distributions of Android on Raspberry Pi and run some benchmarks on it. I used Geekbench 4.4 so I could compare it with Intel Compute Stick.

During the benchmarks, Raspberry Pi was without a case and without any active or passive cooling. The numbers could be a little bit better with active cooling (small fan), but that would add an unwanted noise to otherwise completely silent device. The difference between the two distributions on RPi 3B+ was low, but still measurable – emteria.OS was around 7% better at CPU load, LineageOS was around 3% better at GPU load. RPi 4B performed much better than RPi 3B+, which is consistent with the feeling I had while using the UI and also with other benchmarks.

Results for Raspberry Pi, Intel Compute Stick and Tismart 3288A box were measured as a average of two runs. Other results are a courtesy of Geekbench results database.

Conclusion

As I am familiar with the high number of various well-done projects for Raspberry Pi using Linux, I expected that there would be at least some Android distributions for Raspberry Pi with working hardware video decoding, maybe even taking advantage of the 4K support on HDMI 2.0 on Raspbery Pi 4 B. Although the authors of the distributions mentioned above did one hell of a job combining Android with Raspberry Pi bootloaders, I have to say that these distributions are aimed at different usage than digital signage, mostly due to the licensing and issues with hardware video decoding and output resolution.

Is Raspberry Pi a great piece a hardware? Definitely yes. Should it be used with Android for digital signage? Unfortunately, no. I suggest either not using Raspberry Pi and picking up some regular Android box, or finding native digital signage for Raspberry Pi without Android.