Recommended Hardware

We require the Raspberry Pi 4 with at least 2GB of RAM (4GB Preferrable). Older Raspberry Pi's will not have enough processing power to handle things smoothly.

🚨 Please note: Raspberry Pi should only be used for simple, static content due to performance limitations. As this is not a recommended device, we will not officially support it. Please see our hardware page for recommended options.

The Easy Way - Download Our Image

Download the Image

Download our prebuild Raspberry Pi Image:

Install the Image

Install it using Balena Etcher on your SD card, insert it into your Pi, and reboot.

Configure the Image

Configure your WiFi details and Playlist assignment by adding these the details to a provisioning file. The device will then read the file when the USB is inserted after booting your device.

To obtain your provisioning file, follow these instructions:

  1. In your TelemetryTV account, go to Settings > Provisioning Tokens
  2. Beside the Default provisioning, click the download icon to download the provisioning file to your computer and rename the file "telemetry_config.json"

Once you have downloaded the file, you can insert the file in the root directory of your USB stick as follows:

Please note that it is advised to format your USB before placing the file on for provisioning.

The Harder Way - Build your Own

Since the Raspberry Pi is a platform for hackers and builders, sometimes you want to hack together a slightly different solution. We've provided the instructions on how to build your own image should you like.

Follow the steps below:


Download & Install Raspbian

Download Raspbian Pi OS (32-bit) Lite and install on your Raspberry Pi following the instructions on their download page.

Boot In to Raspbian and Login

Boot from the SD Card on your Raspberry Pi and login as "pi" with the password "raspberry".

Sudo to Root

Switch to root by running "sudo su -"

Update the OS

Ensure you have the most recent updates.

apt-get update
apt-get upgrade -y

Configure your Pi

Run raspi-config to configure your device as follows:

network (wifi)
audio (to hdmi)
enable ssh
enable 4k
configure GPU memory to 192MB
Enable G2 GL (Fake KMS) OpenGL desktop driver with fake KMS
Resolution: 1900x1024

Turn off Swap and Logging

Since digital signage runs 24x7 and Raspberry Pi's use SD cards with limited write endurance, we find that it's helpful to not write to the card as much as possible. For more discussion see this helpful article.

sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
sudo update-rc.d dphys-swapfile removeadd to /etc/fstab
none /var/run tmpfs size=100M,noatime 0 0
none /var/log tmpfs size=100M,noatime 0 0apt install autofs/etc/auto.master.d/usb.autofs
/media/ /etc/auto.ext-usb --timeout=2/etc/auto.ext-usb
usb -fstype=auto :/dev/sda2systemctl enable autofs

Reboot and Test

Reboot your Pi and ensure everything comes up properly from the configuration changes you made above.

Install X-Server

Since you installed a minimal configuration of Raspbian you'll need X to run graphical apps:

apt install xserver-xorg xinit

Setup Automatic Login

Edit /etc/lightdm/lightdm.conf and change autologin for the user pi:

autologin-user=pi

Allow for Root X11 Access

Root needs to be able to run X11

ln -s /home/pi/.Xauthority /root/.Xauthority

Disable the Screensaver

Log in to the desktop GUI and disable the screensaver.

Install and Enable Docker

TelemetryTV's is distributed as docker images so you'll need Docker running in order to run TelemetryTV.

apt-get install apt-transport-https ca-certificates software-properties-common -y
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
systemctl enable docker

Once you have installed docker all you need to do is start Watchtower and then finally run your app.

Run Watchtower

We have watchtower running to ensure that our process is always running and to restart it if it stops. Watchtower will also ensure that you receive automatic updates for the app as we release them.

run - watchtower.sh

docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock --restart unless-stopped \
v2tec/watchtower:armhf-latest

Finally, run this script below to start the app container

run - ttv.sh

#!/bin/bash
user=`whoami`
if [ "$user" != "root" ]; then
echo "execute as root"
exit
fiplatform=$(uname -m)
user=telemetrytv
container=telemetryapp/ttv-x86:dev
if [ "$platform" == "armv7l" ]; then
user=pi
container=telemetryapp/ttv-armv7l:armhf-dev
fiif [ ! -d /home/$user/data ]; then
mkdir /home/$user/data
chown $user /home/$user/data
fiexport DISPLAY=:0.0docker run --name telemetrytv \
-d \
-e DISPLAY -e SYSTEMD_IGNORE_CHROOT=yes \
-v /etc/wpa_supplicant:/etc/wpa_supplicant \
-v /run/systemd:/run/systemd \
-v /var/run:/var/run \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/$user/data:/home/telemetrytv \
-v /usr/share/zoneinfo:/usr/share/zoneinfo \
-v /etc/localtime:/etc/localtime \
-v /media:/media \
-v /dev:/dev \
--net=host --pid=host --ipc=host --group-add=29 --privileged --restart unless-stopped \
Did this answer your question?