Soniq Cinavision TV And Computing Facilities


A work in progress by: Waldis Jirgens. Latest update: 9th November 2013.


Note that the usual disclaimer applies:
If you use this information here, don't blame me, should you, your data, or your TV/Computer get hurt!

General


The Soniq Cinavision smart TV runs under Android 2.2.1. It has 3 USB ports, where one can attach a USB keyboard and a USB mouse plus a USB memory stick.

It is possible to use a USB 1.1 hub for the keyboard and the mouse. Even more convenient is to use a wireless keybord and a wireless mouse.
There are a few applications. A vital one that can be installed is the terminal emulator. Install that one first from the menu.
When selecting "All Applications" from the menu after switching on the TV (can be done with the remote or the mouse) one gets a user desktop similar to a real PC.
Selecting applications from this desktop is done by single clicking the icon of the application.
The terminal emulator allows a few commands known from Linux. Most importantly it allows to run bash-alike shell scripts.
This is done by entering sh scriptname
Applications come as .apk files. They can be installed by single left clicking them in the file manager. Here is a GPL Freeware Repository
I upgraded the firmware online on the 9/5/2013 and on the 6/11/2013

TV Recording And Play-Back


Recording can be done either to an SD card or a USB stick. Before starting select which device you'd like to record to. This is done with the remote selecting "Menu" then "Option" then "PVR Settings" then "Device List" and highlighting the device there. Note that the device must have a filesystem of type FAT32 - NOT the LBA variety! If this is not the case the USB stick is not recognised.
Recorded files are in directory usbrecord of the device where you record on. Filenames show Station name and timestamp. Suffix of the files is .sq

Play-Back can be done only by starting the file manager and selecting the recorded file. The first time one does that, the system asks you which application to use to handle the file. Select media-player to do that. Screen format during play-back is 16:9 and I haven't found a way to change that yet.  Also the .sq files do not show up in application "Media"!

Playing Video Files


Video file formats that can be plaved with MplayerIII Tab or Movie Player are: 3gp, flv, mpg or mpeg, even the ones with audio encoded in MPEG-4AAC format.
Video file formats that cannot be plaved with MplayerIII Tab or Movie Player are: avi, mov, qt, ogv.
I have not tested any other formats.

Web Browsing


The standard browser is pretty rudimentary compared to a "real" one, but web pages can be displayed and one can watch embedded flash videos like with YouTube. Operating facebook and web-mail is pretty straight forward. The key bindings are strange when compared to Linux or Windows. I installed also the "Dolphin" and the "Chrome" browsers, which are somehow more modern. Neither browser seems to honour the <embed> tag except for flash videos

Key Bindings, Idiosyncracies, Links

These are strange if you come from a Linux background. There is a nice Text editor application available from http://textedit.paulmach.com/ which installs on the sd card. It is called Textedit and allows verey basic full screen editing.
The middle mouse key (or mouse wheel) brings up a menu where you can select what to do - open, save, save as, new file, editor options.

Before I knew this I did a little exercise in scripting:

Very Basic Editor Script

To do some basic tasks I developed the following scripts. They reside on the USB stick.:
shcreate - to create a file on the USB disk:
 
#!/bin/sh
echo "Start a file. Enter filename"
read finam
echo "Type text line by line. CNTRL-D when done"
cat > $finam
exit 0
 
 
sheditandro - Basic Editor
Note the different "let" statement formats!
 
#!/bin/sh
echo "Edit lines in a file. Enter filename:"
read finam
endmark=0
while [ $endmark -ne 1 ]; do
   reconum=0
   while read line; do
#    let "reconum = $reconum + 1"
     reconum=`let $reconum+1`
   done < $finam
   echo "Number of records: $reconum"
   lincomp=1
   linestart=`let $reconum+1`
#  let "linestart = $reconum + 1"
   until [ $linestart -le $reconum ]; do 
     echo "Line number to start the listing:"
     read linestart
      if [ $linestart -gt $reconum ]
      then
         echo "too big, must be less or equal to $reconum"
      fi
   done
#  let "lineend = $linestart - 1"
   lineend=`let $linestart-1`
   while [ $lineend -lt $linestart ]; do
     echo "Line number to end the listing:"
     read lineend
     if [ $lineend -lt $linestart ]
     then
        echo "too small, must be at least $linestart"
     fi
   done
   if [ $lineend -gt $reconum ]
   then 
      lineend=$reconum
      echo "Line number to end set to maximum namely $reconum"
   fi
   echo "===================================================="
   while read line; do
     if [ $linestart -le $lincomp ]
     then
        if [ $lineend -ge $lincomp ]
        then
           echo "$lincomp $line"
        fi
     fi 
#     let "lincomp = $lincomp + 1"
     lincomp=`let $lincomp+1`
   done < $finam
   echo "What do you want to do:"
   echo "d Delete Records"
   echo "i Insert Records"
   echo "z Finish"
   read choice
   case $choice in 
     d)
#       let "fitodel = $reconum + 1"
       fitodel=`let $reconum+1`
       while [ $fitodel -gt $reconum ]; do
         echo "First line to delete"  
         read fitodel   
       done
#       let "latodel = $fitodel - 1"
       latodel=`let $fitodel-1`
       while [ $latodel -lt $fitodel ]; do
         echo "Last line to delete"  
         read latodel   
       done
       echo "deleting lines $fitodel to $latodel"
       rm -f tmpd@@tmpd
       lire=0
       while read line; do
#         let "lire = $lire + 1"
         lire=`let $lire+1`
         if [ $lire -lt $fitodel ]
         then
           echo "$line" >> tmpd@@tmpd
         fi
         if [ $lire -gt $latodel ]
         then
           echo "$line" >> tmpd@@tmpd
         fi
       done < $finam
       mv  tmpd@@tmpd $finam
       ;;
     i)
#       let "inaft = $reconum + 1"
       inaft=`let $reconum+1`
       while [ $inaft -gt $reconum ]; do
         echo "Insert after which line"
         read inaft  
       done
       rm -f tempi##tempi
       if [ $inaft -eq 0 ]
       then
        echo "Write lines to insert. finish with Cntrl-d on a new line"
         cat >> tempi##tempi
         cat tempi##tempi $finam > tempn##tempn
         mv tempn##tempn $finam
       else
         lire=0
         while read line; do
            if [ $lire -le $inaft ]
            then
#              let "lire = $lire + 1"
              lire=`let $lire+1`
              echo "$line" >> tempi##tempi
            fi
         done < $finam
         echo "Write lines to insert. finish with Cntrl-d on a new line"
         cat >> tempi##tempi
         lire=0
         while read line; do
#           let "lire = $lire + 1"
           lire=`let $lire+1`
           if [ $lire -gt $inaft ]
           then
             echo "$line" >> tempi##tempi
           fi
         done < $finam
         mv tempi##tempi $finam
         fi
       ;;
     z)
       endmark=1
       ;;
   esac
done
exit 0

Return to my home page