Kodi upgrade hardware and version


Here have been running 3 Kodi boxes with little mini S912 TV Boxes using CoreElec custom OS. I have had no issues here relating to playback / streaming of 4K files.

The boxes are running Kodi 18.X and have not been able to upgrade to Kodi 20.X due to S912 (octocore) hardware limitations.

These boxes are my STBs whick stream live video from HDHomerun boxes (and record if I want), NAS box, Netflix, AOD (et al with subscriptions).

Note these sold TV Boxes come with Android running on the eMMC. You boot up these boxes with a new Kodi OS called CoreElec.

CoreELEC is a ‘Just enough OS’ Linux distribution based on Kodi1 technology for popular Amlogic hardware.

CoreELEC 20.0-Nexus (January 17th, 2023)
CoreELEC 20.0-Nexus is now available. We have come a long way to the first stable Kodi Nexus release, and there have been big changes in CoreELEC. It is based upon Kodi Nexus v20.0 final.

CoreELEC 20 becomes the active development branch and it is based on CoreELEC 19. With CoreELEC 20 the new device, Amlogic-ne: New Era will get introduced. All devices that support CoreELEC 19 Amlogic-ng will also support CoreELEC 20.0 Amlogic-ng.

Device Amlogic-ng hardware support will end with Amlogic SoC SC2 (S905X4).
Device Amlogic-ne will support hardware since Amlogic SoC SC2 (S905X4) and newer like S4 (S905Y4, S905W2) or T7 (A311D2).
With the release of device Amlogic-ne, Amlogic-ng will be become EOSD.

TV Boxes purchased for upgrade available on Amazon. Here have installed Armbian - Homeseer - HA for micro automation servers in the past.

Amlogic S905X4 TV Box Android 11.0 TV Box HK1 Box 4GB RAM 64GB ROM Dual-WiFi 2.4GHz/5GHz BT Quad Core 64 Bits 3D/8K 1000M Smart TV Box
CPU:Amlogic S905X4 64-bit quad core ARM Cortex A55 CPU

Very easy to upgrade and test. You write the OS on a micro SD card. Change one configuration file and boot up.

1 - download current release of firmware
2 - write firmware to SD card (32, 64 or 128Gb). Personally do not keep any files / movies on my SD cards using balenaEtcher.
Note balenaEtcher works in Linux, Windows or Apple.
3 - personally here use Linux GParted to expand second partition to full size of SD card.
4 - look at this listing of current device tree directory found on the boot partition = > Device Tree
For the above mentioned TV box used this device name ==>
Devices with S905X4 - S905X4- 4G (1GBit)
5 - copy sc2_s905x4_4g_1gbit file to root of boot partition and rename the file to dtb.img
6 - install the SD card in to your TV box.
7 - use toothpick method to boot up SD card.
Disconnect the power supply, insert the CoreELEC prepared SD, push and hold the reset button (in the audio output jack) and reconnect the power, wait until CoreELEC logo appears and release the button.
8 - Updating (for later versions) -
Download the latest .tar file from here.
Copy the .tar file to the /storage/.update folder on your device.
Reboot to start the update process.
9 - Personally use NFS mapping here to my XigmaNAS box.
10 - Back up current configuration on Kodi 18.X box. (note that this takes a while and writes to SD card or any network directory).
Use Kodi back up to compressed file.
11 - here used SFTP to transfer back up file from old to new box.
12 - Database will be copied with NFS mapping. Add ons will update or not. (which doesn't matter to me).
13 - back up of Kodi 18 to restore of Kodi 20 did not work.
14 - all I needed though was the NFS mapping which I copied and installed to the new KODI box. (using sftp)
/storage/.config/autostart.sh. I created new directories under storage and mapped shares to directories prior to a reboot.
NAS box is using XigmaNAS BSD OS which is ZFS to SAS drives / controller.

 (sleep 30; \
 mount -t nfs /storage/video -o nolock; \
 mount -t nfs /storage/pics -o nolock; \
 mount -t nfs /storage/music -o nolock; \

15 -
How to configure VFD

- Goto Arthur’s VFD repository here
- Download the configuration that matches your device and rename it to vfd.conf.
IE: used hk1-rbox-x4-vfd.conf
# This file must be renamed to vfd.conf and placed in the /storage/.config/ folder.
# HK1 RBOX X4 (S905X4) configuration
# [0] 0 = &gpio, 1 = &gpio_ao.
# [1] pin number - https://github.com/openSUSE/kernel/blob/master/include/dt-bindings/gpio/meson-g12a-gpio.h
# [0] Reserved - must be 0.


# < DHHMM > Order of display chars (D=dots, represented by a single char)


# Order of dot bits. Typical configurations:
# Display Type 0, 1 usually has Alarm, USB, Play, Pause, Col, Ethernet, Wifi dots
# Alarm = 0, USB = 1, Play = 2, Pause = 3, Col = 4, Eth = 5, Wifi = 6
# Display Type 2 usually has APPS, USB, SETUP, CARD, Col, HDMI, CVBS dots
# APPS = 0, USB = 1, SETUP = 2, CARD = 3, Col = 4, HDMI = 5, CVBS = 6
# Display Type 3 Power, LAN, Col, Low Wifi, High Wifi
# N/A = 0, N/A = 1, Power = 2, LAN = 3, Col = 4, Low Wifi = 5, High Wifi = 6


# [0] - Display type.
# [1] - Reserved - must be 0..
# [2] - Flags. (bit 0 = '1' - Common Anode display)
# [3] - Controller.


- Make sure that you save the file as Raw.
- Copy the vfd.conf to /storage/.config on your device.
- Install OpenVFD Service via the CoreELEC repository in Kodi.
- Reboot and enjoy
Last edited:


27th of February, 2023 status

All appears working fine now with new box. Gets a tad warm but it is fine. Others have modded the case and cooling. I may change the heat sink inside but will not modify the case for cooling.

#                  CoreELEC                  #
#            https://coreelec.org            #

CoreELEC (official): 20.0-Nexus (Amlogic-ne.arm)
      Machine model: Amlogic
     CoreELEC dt-id: sc2_s905x4_4g_1gbit

CoreELEC:~ # sensors
Adapter: Virtual device
temp1:        +62.9°C  (crit = +105.0°C)

Adapter: Virtual device
temp1:        +65.8°C  (crit = +105.0°C)

Gb port is good and testing looks good

pete# iperf3 -c
Connecting to host, port 5201
[  5] local port 44374 connected to port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   112 MBytes   939 Mbits/sec    0    656 KBytes
[  5]   1.00-2.00   sec   111 MBytes   933 Mbits/sec    0    694 KBytes
[  5]   2.00-3.00   sec   108 MBytes   902 Mbits/sec   60    646 KBytes
[  5]   3.00-4.00   sec   104 MBytes   870 Mbits/sec   52    188 KBytes
[  5]   4.00-5.00   sec   102 MBytes   860 Mbits/sec    0    378 KBytes
[  5]   5.00-6.00   sec   105 MBytes   881 Mbits/sec    0    413 KBytes
[  5]   6.00-7.00   sec   111 MBytes   933 Mbits/sec    0    419 KBytes
[  5]   7.00-8.00   sec   111 MBytes   933 Mbits/sec    0    427 KBytes
[  5]   8.00-9.00   sec   111 MBytes   933 Mbits/sec    0    433 KBytes
[  5]   9.00-10.00  sec   104 MBytes   870 Mbits/sec   25    304 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.05 GBytes   906 Mbits/sec  137             sender
[  5]   0.00-10.00  sec  1.05 GBytes   903 Mbits/sec                  receiver

iperf Done.

Using NFS for shares to NAS mapped to Video, Music and Pictures.

There is a little live app that will show video codecs and audio codecs and FPS. So will show it playing 4K Atmos movies streaming from NAS. Will also do screen shots of HDHomerun streaming.

Programming the included remote control. It relates to using two files from a database of IR remote controls.
Here is a picture of the remote control that is in the database of remote controls.

HK1 X3.jpg

I utilize nano or SFTP and notepad to copy the files over.

1 - file one is called rc_maps.cfg and sits in the .config directory under storage.

# Keymaps table
# This table creates an association between a keycode file and a kernel driver.
# It can be used to automatically override a keycode definition.
# Format:
#       driver - name of the driver provided via uevent - use * for any driver
#       table  - RC keymap table, provided via uevent - use * for any table
#       file   - file name. If directory is not specified, it is first looked up in:
#       /storage/.config/rc_keymaps, then /usr/lib/udev/rc_keymaps
# Example:
# Driver        Table           File
# gpio-rc-recv  rc-streamzap    streamzap
# gpio-rc-recv  *               justboom
# *             rc-rc6-mce      rc6_mce_new
# *             *               hauppauge_new
meson-ir * hk1x3

2 - file number two is called rc_keymaps and sits under .config/rc_keymaps. Not sure on the naming so left the file named hk1x3 in the same directory. It looks like this:

# table hk1x3, type: NEC
0x116 KEY_UP
0x11a KEY_DOWN
0x151 KEY_LEFT
0x119 KEY_BACK
0x111 KEY_HOME
0x14c KEY_MENU
0x14e KEY_1
0x10d KEY_2
0x10c KEY_3
0x14a KEY_4
0x109 KEY_5
0x108 KEY_6
0x146 KEY_7
0x105 KEY_8
0x104 KEY_9
0x101 KEY_0
0x143 KEY_HELP
0x141 KEY_MUTE
0x1f2 KEY_ESC
0x1f3 KEY_INFO

Note I have not decided yet if I like this remote better than the old MCE remote (larger) that I have been using. I also use an Air Mouse.
Last edited:


2nd of March, 2023 - Status

Device on now 24/7 a few days now.

This is just checking temps.

CoreELEC:~ # sensors
Adapter: Virtual device
temp1:        +69.4°C  (crit = +105.0°C)

Adapter: Virtual device
temp1:        +71.9°C  (crit = +105.0°C)
Last edited:


4th of March, 2023 - CEC configuration and status

Have the new Kodi 20.X working well with CEC. I am still tweaking it.

I also enabled HDR on TV and tweaking the 4k playback with Kodi which works.

Used VLC and resize to take pictures. Also still using the old Confluence theme.

Here is the CEC configuration that works for me with the included remote control.

Power on - turns Kodi box on, TV and AVR on.
Power off - turns Kodi box off, TV and AVR off.

Last edited:


7th of March, 2023 status

Programmed the info button while playing movies. Here is what I see via VNC playing back a 4k movie.