I wrote this tutorial because Hyperion doesn't support Odroid C2 out of the box and I didn't find an easy tutorial for it. I'm using LibreELEC, but with minor changes it'll work on any other OS.
I'm not going into how to create the Hyperion config and how to install the LEDs on your TV. There are already a lot tutorials for that, like Awesome Pi. Instead of the WS2801 LEDs I recommend the APA102 LEDs which have better colors and the cabling needs to be different as we're going to use an Arduino between the LEDs and Odroid.
Now, there are two problems with the Odroid C2. The first one is, that it doesn't support SPI, a serial communication interface used to communicate with the APA102. This can be solved by using an Arduino between the Odroid and the LEDs. The second problem is, that there's no official hyperion binary for the Odroid C2. Which meant that I had to compile it on my own, but more on that later.
First you need to prepare your Arduino. For that you need to download the Arduino IDE from here. After you've installed the Arduino IDE, you need to select your Board Type under Tools>Board where you select Arduino/Genuino Uno and just below you also need to select the serial port for the Arduino, this can change from computer to computer. You then need to paste the code from here into the IDE and then upload it to the Arduino. You can then plug the LED pins into the Arduino with jumper cables. SPI data out is digital pin 11 and clock is digital pin 13. If you want to test if you've connected it correctly you can also uncomment the test pattern part. You should then see a red, green and blue flash.
Now comes the interesting part.
So you don't have to compile Hyperion for yourself, I have a Github Repository with precompiled binaries. If you don't trust me, you can also compile them yourself. I also have a slightly modified Gtihub Repo for that, as it won't compile otherwise. You need to use this command: cmake -DENABLE_DISPMANX=OFF -DENABLE_SPIDEV=OFF -DENABLE_AMLOGIC=ON -DCMAKE_BUILD_TYPE=Release -Wno-dev ..
Install LibreELEC on your Odroid.
In order to install Hyperion on your Odroid you need to make sure to enable SSH, you might need to restart after that. Then you need to connect to it over SFTP. For that I use Cyberduck, but any other SFTP client should work. Navigate to /storage
and create a hyperion
directory.
To get the files you need to put into the hyperion
folder, navigate to my precompiled binaries. There are different folders for different binaries. You need to use the hyperion (v1) odroid-aml patched. Upload its content to the previously created hyperion
directory. Make sure you delete my config and replace it with your config.
After uploading the binaries, the effect folder and your own config you need to SSH into your Odroid. I use iTerm2 for that, but any *nix based OS can do that from its terminal. Log into it with password libreelec
$ ssh root@IPADDRESSOFTHEODROID
$ chmod +x hyperion/bin/*
To make Hyperion work with HEVC/H.265, you need to execute echo 1 | tee /sys/module/amvdec_h265/parameters/double_write_mode
which can decrease performance, so if there are alot of dropped frames you can just remove that line for the autostart.sh. But you'll get pastell colors if you don't enable it.
To start Hyperion on boot, you need to create autostart.sh in /storage/.config with the following content.
#!/bin/bash
echo 1 | tee /sys/module/amvdec_h265/parameters/double_write_mode
(
/storage/hyperion/bin/hyperiond.sh /storage/hyperion/config/hyperion.config.json
) &
You can use nano /storage/.config/autostart.sh
for that. Afterwards you need to execute chmod +x /storage/.config/autostart.sh