Thursday, 11 December 2014

Now this is what I call a Media Player

I am always on the lookout for cool hardware which can be used as a Linux media player. The last incarnation was based on xbmc, on a Nvidia ION board, with a DVB-S2 PCI satellite card and a 2TB sata disk; and that was almost four years ago. The satellite tuning was based on TV headend and xbmc, with a few kernel tweaks to get the PCI card driver running.  This set-up served me well, but there were few things I liked to change:

  • lowest possible power  - Nvidia ION / Intel atom was not too bad, but nicer to lower the   power consumption to a few tens of watts
  • no moving parts to break - this includes cooling fans platter disks - so that whole system is noise free and reliable
I would have loved very much to turn the Bananpi into a satellite receiver, but the sunxi vdpau drivers are still being worked at, may be some day the folks at Allwinner decide to open up their a/v decoder core. 

This is the receiver I bought ; and arrived in UK in just 3 days. The receiver is based on Broadcom BCM7325, which is at the centre of the board. I was curious as to how the Broadcom achieves micro watt standby power. I have seen how a Broadcom chip struggled to achieve extremely low standby - where we finally resorted to using a secondary  stm32 as the power controller to shut the Broadcom device OFF to achieve micro watt standby power.
This unit uses a PIC 16F866 device (on the front panel board) as the deep standby controller. It also is the the IR receiver. It then communicates with the Broadcom via serial port (on the ribbon cable) at 19200 baud.

click to enlarge
I removed smart card interface (as I will only watch FTA), and added the 40 GB Intel SSD onto the smart card board;  which cleanly fits inside the 22cm x 15cm X 4cm high case. The usb-sata interface board was ripped out of a cheap portable disk case.
On the rear are the usual interfaces, from left to right:

  • F female input for sat coax
  • video out (RCA)
  • audio out L + R (RCA)
  • RS232 debug interface (115200, 8N1) 
  • HDMI out
  • ethernet 100Mbits/s
  • SPDIF out
  • USB host
  • 12v /3A input barrel socket
Just the right amount of interfaces - I am fan of SPDIF - so its a must on any hardware I tinker with. There is another 3 usb host ports, and only one connector populated - Which I have used for the SSD.
The other two ports need 4 impedance matching resistors and a few chokes and capaitors. One cool interface we can is a USB DVB-T tuner. 

The receiver is pre-installed with enigma2 Black Box; and my personal preference is Open-PLi - so first step is to re flash the OpenPLi image.  I am too much in a hurry to to go through a git checkout + OpenEmbedded build, so just using the latest build for vu+ solo.

The zip file contains three files:

 └── solo  
   ├── boot_cfe_auto.jffs2  
   ├── kernel_cfe_auto.bin  
   └── root_cfe_auto.jffs2  

In order to update the software you need a <2GB usb stick formatted to FAT16. This is a must for most Broadcom devices. Since I couldn't find a 2GB usb, I used a 16GB one with a single 2GB partition with partition id 0x0c formatted to FAT 16.

cfe, is the u-boot-ish bootloader and is quite powerful and flexible, just as u-boot is. Out of the three files unzip, the boot_cfe_auto.jffs2 seems to be some replacement bootloader file which I was not sure I should risk updating. The installed CFE works well, so there was no reason to replace it, all I need is the kernel and rootfs images updated. ( Didnt want to brick the box while updating the bootloader )

Hence the fat-16 formatted disk has the layout as follows:
 └── solo  
   ├── kernel_cfe_auto.bin  
   └── root_cfe_auto.jffs2  

Plug the RS232<->USB cable, open up screen on /dev/ttyUSB0 115200 and plug the usb stick on the rear USB port and power up the device. The device should not be power down / up for the usb update using the front panel button. knock the power completely off from the wall socket, and plug usb and switch on the wall socket.
The debug interface is very handy at this stage - it nicely spits out the whole flashing process and at the end, prints a message to knock the power off and remove the USB stick and reboot.
Now my shiny new OpenPLi satellite receiver / media player is ready. Here is Servus HD from Austria on Astra 19.2e with modified PLi-HD skin :

Servus HD from Austria - with UI overlayed 
channel UI - click to enlarge

No comments:

Post a Comment