TiVo logo

       TCS - Complete ReadMe Under Construction

This site is not related to nor sponsored by TiVo Inc.

Tivo Control Station

version 1.1.3

prior versions: 
several betas

0. Road Map to this document, and recent changes:
Version 1.1.3 fixes several minor bugs over 1.1.2.

As of TCS version 1.1.2, the majority of the modules are no longer 
included in the tarball.  TCS will automatically download and install
the modules from the website AFTER you have paid the shareware fee
and emailed you IP address, zipcode and the last 6 digits of your
tivo service number (available from Messages & Setup /
System Information) to tcs (NO) @  (sPam) zirakzigil.net. Just
drop the (no) and the (sPam). If you are paranoid but
have a static ip address, the zipcode and Tivo Service Number are
not required. I will generally try to setup the authorization within 
24 hours, but I might be on vacation, 
out of town, in the hospital, etc. A few modules are included in the 
tarball for demonstration purposes.  For an on screen display demo, 
use 7 1 clear for interest rates.  For a non OSD module, try 
9 1 clear to enable backdoors.  If you want to see what the other
modules look like, see the screen shots on the website at

Since the readme has become quite long, and the "fast readme" isn't
really practical as of version 1.1.0, this is an index and a "how
to use this document" section.  The closest thing to the old 
"fast readme" which documents the very fastest way to get up and
running is at the bottom of this section.  Search for 
"If you are already running a previous version of TCS:"  If you are
new to TCS I STRONGLY recommend to take the time to read this 
document in its entirety before starting.

How to get started:

If you are not familiar with TCS I strongly recommend that you read through
this document in its entirety before starting.

If you are already running a previous version of TCS:

You may not need to reread all the configuration information.  
The steps for an install are then simply

1. Determine if you are going to run a Network Server.  Read sections 4, 5 and 6.
2. Install TCS.  Read section 7.
3. Do the necessary "additional installation" based on whether or not you are
   running a Network Server. Read section 8, or 10.
4. Customize the preferences.  Read sections 11 and 12.
5. Configure modules that require configuration. Read sections 25, 32, 33, 34, 35.

I realize that the installation process seems to get lengthier with every
release.  If you have suggestions of how to make the process easier,
or any other suggestions, drop a note to tcs(no)@(sPam)zirakzigil.net.  Just
drop the (no) and the (sPam).


1.  What it does.
2.  What purpose does it serve
3.  What it isn't
4.  TCS Network Server
5.  Network Server Requirements
6.  Network Server Configuration
7.  TCS installation
8.  Additional installation steps if you are using the Network Server
9.  Useful things to know when running the Network Server that aren't obvious
10. Additional installation steps if you are NOT using the Network Server
11. Customizing the configuration
12. Paths required for proper startup and shutdown
13. Certain file/directories in the TCS tree must be writable
14. Automatic module updates
15. Network Commands
16. Network Clients
17. What port do I connect to?
18. How did you choose that?
19. Remote Commands
20. Third Party Modules
21. Changing the update rates for background modules
22. Auto Scheduling
23. What modules provide which commands?
24. Should I turn off modules I don't use? How do I do that? How do I turn them back on?
25. Applications module
26. BackDoors module
27. SortNowPlaying module
28. New display using newtext2osd
29. Jpegwriter required for WeatherMaps
30. On Screen Display modules
31. Multiple Screens of Information now supported
32. Configuring the NCAA Football module
33. Configuring the NCAA Basketball module
34. Configuring the Quotes module
35. Configuring the Weather module
36. What is a Greedy Update?
37. Automatically starting TCS at boot time
38. E-mail notification (Macintosh Eudora only)

1. What it does:
TCS is a simple interface that listens for commands from the remote, and
on a socket.  This is a relatively more secure method of issuing commands
to the tivo than leaving a telnet port open to the Internet. TCS commands are 
not shell commands, and TCS does not generally give any response back through
the port, although a module writer can send information back, if desired.
Most commands are implemented via "modules" to make the addition of new 
commands relatively easy, as well as to provide the ability to remove 
commands. Adding new commands is straightforward, even to a relative novice.
It still requires at least a modest bit of programming, more if you are 
writing a robust command, pulling something from the web, or returning 
something through the socket.

Commands are also available through key sequences on the remote. Key 
sequences can be customized through the config/keysequences file.  All key 
sequences consist of 3 key presses.  This is currently a "hard" constraint 
in the config file, however a module writer can utilize shorter or longer 
sequences.  Be careful not to have one key sequence as a subset of 
another - it will be impossible to invoke the longer sequence.  Also be 
careful to pick sequences that will be benign to myworld.  The sequences 
currently utilized don't cause bad things to happen during livetv or 
playback.  It is probably best NOT use the remote to issue commands when 
you are on a tivo menu, although nothing in the code will stop you.

2. What purpose does it serve:
Your mileage may vary.  

The original purpose was to provide an interface to allow a machine on my local 
network get caller-id information from the modem, and display it on the tivo 
using the DISP command. Elseed and an external modem was a better solution.
It grew from there.

I do still use it to have my computer display on the tivo when I have new 
e-mail on my regular email account.  Additionally, the telnet daemon seems to 
crash rather frequently on me, as does the ftp daemon.  TCS can restart those,
and I have a simple icon on my desktop that will do it for me with a double 
click (or 3 buttons on the remote).  Until I had a serial connection, this was 
rather critical to me, as a telnet crash meant I had to reboot.  Things just 
grew from there.

Finally, there was some commonality between TCS and the quotes program, which 
ultimately led me to rewriting quotes as a TCS module.  The weather module 
caused it to make even more sense.  Given limited resources on the tivo, 
running a single hack is better than running 2, and certainly better than 
running 3.

Perhaps looking at the command list and the screenshots at 
http://www.zirakzigil.net/tivo/TCS.html is the best way to get an idea of
what all it does.

3. What it isn't
It does collect and display some information from the web.  It is NOT a browser
or an attempt to make Tivo into a WebTV.  It does have the ability to run 
things periodically in the background.  It is not cron.  Someone has already 
compiled cron for tivo, if you want cron, get cron.

4. TCS Network Server:

TCS release 1.1.0 includes a network server.  The purpose of the network server
is to significantly reduce the cpu load that TCS places on the tivo.  This goal
is accomplished by moving all the modules that download and parse information
from the web off the tivo and onto the network server.  This reduces the load
TCS places on the tivo by 90%, while maintaining not only full functionality 
but actually enhancing it.  If a module fails to update, an update can be 
forced through the 98 clear command.  However, doing this on the tivo can take
a very long time as it forces all modules to update.  Since the network server 
is a vastly more capable computer, the updates occur very quickly.  Further, 
the "change weather zip from remote" command (81 clear) becomes vastly more 
useful as the weather from the new zipcode is displayed on screen in about 3-5 
seconds.  (Using a P4 2.2GHZ server)

The Network Server is just the same old TCS that ran on the tivos.  
The code merely recognizes if its running on a tivo or not, and then functions
accordingly. This means that for simplicity, starting the TCS Network Server
is done exactly the same way you start TCS.  After proper configuration, the 
files are identical.

Since the Network Server performance far exceeds that of the Tivo it is 
STRONGLY recommended that you utilize it, if you have an environment that will 
support it.  The Network Server has been sucessfully installed on Linux,
Cygwin on windows, as well as on Mac OS X.

The configuration files in the TCS distribution assume that you are going to 
use a network server. The installation instructions specify the minor change 
required to turn off the network server.

Lastly, there is a module called UnixComs that allows you to run one of ten
predefined shell scripts on the Network Server from the tivo remote.

5. Network Server Requirements:

The Network Server is written in TCL and assumes a unix environment, just like
the tivo.  If you have a linux machine on your local network, you are set. Any
unix box should do, if you install TCL. Again, the Network Server works on
both Cygwin with windows and Mac OS X.

The Network Server must also run an NFS server.

6. Network Server Configuration:

First, the tivo(s) need to know the IP address of the Network Server and the
Network Server needs to know the IP address(es) of the tivo(s).  This
information is contained in the config/prefs file.  Specifics are contained
in the installation instructions.

Some modules can not run on the Network Server, as they execute code that must 
run on the tivo.  Modules that do things like sending remote keypresses, or 
reading the log files therefore can not run on the Network Server.

The TCS distribution is configured where the Network Server runs all the
modules that it can, and the tivo runs only those modules it must.

7. TCS Installation:

If you intend to run a Network Server, you should do the following on the 
network server, not the tivo.  If you are not going to use a Network Server,
you should do this on the Tivo.

2. copy tcs.tar (or, tcs.tar.gz) to the /var/hack directory 
3. cd /var/hack
4. Decompress the file, if it is compressed "gzip -d tcs.tar"
5. expand the files "tar -xvf ./tcs.tar" or "cpio -H tar -i < tcs.tar"
   either works. tar isn't part of the standard tivo release, cpio is.
6. If you are running a Network Server, there are additional required
   configuration steps.  See the next section.
7. If you are not using a network server, make sure to read the 
   "Additional Steps if you are NOT using a network server section."
9. Customize the installation - see the "Customizing the Configuration" section
10. Start the program "/var/hack/tcs/starttcs &" (DO NOT FORGET THE 

I install TCS in /var/hack/tcs, although it should work anywhere.  Just untar 
the tarball, and start it up. 

starttcs writes the tcs log to /var/log/tcs by default, however starttcs  will 
accept "console" or "devnull" as a parameter, which will write the log to the 
console, or /dev/null respectively.

The server needs to know where several programs are in the directory structure.
These locations are configurable by editing the config/prefs file.

WARNING: DO NOT INTERRUPT OR KILL tcsd on the tivo. The tivo WILL assert/panic.  
Use the remote sequence or network command to terminate the program.  It is
OK to kill tcsd on the Network Server.

8. Additional Installation Steps if you are using the Network Server:

1. Modify prefs to reflect the IPAddresses of your Network Server
   and tivo(s):

   The Network Server:

nsip    NetworkServerIP

   The Tivo(s): 

tivoips TivoIPAddresses etc.

   Note that multiple IP Addresses must be space delimited. The etc is
   obviously not to be included.

2. On server - nfs export the tcs directory to the tivo(s). The no_root_squash 
   option must be specified, as everything on the tivo runs as root.  To export
   a directory, you need to add an entry to /etc/exports, which includes the 
   directory you are exporting (/home/tcs), the ip address of the tivo you are 
   exporting to, and the mount options.

   An example with recommended options:


   You will need one line for each tivo you intend the network server to serve.

   After you have added this (these) lines(s), export the directories.


exportfs -a

   The default version of TCL (8.4) that comes with cygwin does not 
   work properly.  You will need to download and install version 8.3 
   which works properly. Look here: http://www.tcl.tk/software/tcltk/8.3.html

   You must install extra modules to get NFS running, including the libs 
   module sunrpc, and the net module nfs-server.  I dropped the
   version numbers as they will change with time.  There is no exportfs
   command in cygwin. To start the NFS server, you need to run three
   daemons: /usr/sbin/portmap, /usr/sbin/rpc.nfsd, and /usr/rpc.mountd.

   There is no exportfs command in MAC OS X.  You need to respawn the 
   mountd process with the following command: 

sudo kill -s HUP `cat /var/run/mountd.pid`

   Note that the character above is the accent grave, not a single quote.

5. Install the nfs kernel module on the tivo(s). You must use the force option.
   The module can be downloaded from 
   http://www.chiappa.net/~chris/tivo/nfs-2.0.1.o although I don't know whether
   thats the original source.

insmod -f nfs-2.0.1.o

6. Mount the nfs server folder on the tivo.  In order to mount the directory on
   the tivo, you need to know the full path to the tcs directory on the network 
   server, say /home/tcs (NStcsPath), the path of the location on the tivo 
   where it will be mounted, say /var/hack/tcs (TivoTcsPath), and the IP 
   Address of the Network Server, say (NSIP).  The directory on 
   the tivo (TivoTcsPath) needs to exist, but nothing should be in it.  Make 
   sure you have created it (mkdir TivoTCSPath).  Now issue the mount command 
   to mount the directory from the server:

mount NSIP:NStcsPath TivoTCSPath.

   A real world example using the suggested paths would be:

mkdir /var/hack/tcs
mount /var/hack/tcs

   Paths on tivo and server are not required to be the same.

7. If you don't already have it, install tcl on the server.

8. On the server, make a link from /tvbin/tivosh to the tcl executable, say, 
   /usr/bin/tclsh.  The path to the tcl executable will vary depending on
   where you installed it.

ln -s /usr/bin/tclsh /tvbin/tivosh

9. Add the insmod/mount commands to etc/rc.d/rc.sysinit on the tivo, if you 
   wish. (Obviously before you try to start tcs in rc.sysinit, and those
   commands should NOT be backgrounded)

10. If you are running the network server in a non Linux environment, indicate
    such in the config/prefs file.

nonlinux NSNonLinux 1

11. Start it up.  Although it will settle in regardless of how its done, start
    it on a tivo first.  The network server needs some information from the 
    tivo, and will try to connect to a tivo once a minute until it succeeds.  
    Starting on the tivo first just means that it won't have an initial wait.

9. Useful things to know when running the Network Server that aren't obvious:

The most important thing is how the AutoUpdate feature works when using
a network server.  If you are using the network server, you should install
the UpdateCheck module ONLY on the network server.  The network server will 
download and install new modules in the modulesserver directory, not the 
modules directory.  This means that modules that run on the tivo will
get updated correctly, but they will not be installed to startup when
TCS starts on the tivo.  This isn't optimal, but generally should be OK,
as most of the modules that will update with any frequency will be the 
modules that download data from the web.  Those modules should be run on the
network server anyway.

The Timers page (97 clear) has a second page when using the Network Server.
The first page is the timers on the tivo, the second page is the timers on the
network server.  Unless you are wicked fast paging down, the second page is 
there by the time you page down. (Unless the server is wicked slow) The
Timers module MUST be installed on both the tivo and the Network Server
for this to function properly (or at all in case of it not being installed
on the tivo.)

The Reset Timers command (98 clear) resets the timers on both the network 
server and the tivo (but not ALL tivos).  The command is much more useful now 
as the network server can handle refreshing all the pages rather quickly.  So, 
if an update failed, refreshing everything is much more doable than it was on 
a tivo.

The network server will grab the zipcode from a tivo at startup for the weather
module.  The server maintains a single zip, not one for each tivo.  That 
shouldn't be an issue, but if you change the zip from the remote (81 clear), 
the new zip will be reflected on ALL tivos.  However, the weather display will 
only pop up on the tivo that requested the change.  On my broadband connection,
with a P4 2.2 network server, the weather for the new zip will pop up in about 
3-5 seconds, which makes surfing the weather from your chair quite doable.

There are 10 commands from the remote which will start an arbitrary script on 
the network server.  The scripts are script0 through script 9, and are in 
tcs/unixcoms.  Xeyes is installed at script1, with up 1 clear to start it.

The UnixCommands module MUST be installed on both the tivo and the 
Network Server for it to function properly.

10. Additional Installation Steps if you are NOT using the Network Server:

Comment out the following two lines from config/prefs:

tivoips TivoIPAddresses etc.
nsip    NetworkServerIP

You probably should also review the timer settings in config/schedule, as
modules may be set to update more frequently than would be good for a tivo.
Be sure to see the "Changing update rates for background modules" section.

Although it isn't critical, you might as well delete the modules that provide
an interface to the Network Server.  Delete NetworkServerInterface.tcl and
UnixCommands.tcl from tcs/modules.  This will somewhat decrease the amount of 
memory TCS requires to run.

11. Customizing the configuration:
There are many many things you can change to customize the way TCS runs, 
however, two modifications are imperative:

1) The paths where you have the "helper" hacks installed
2) The IP addresses of your nameservers

The paths are located in the config/prefs file, just edit with your favorite 
editor.  The address(es) of your nameserver(s) is in the config/IPAddresses 
file. Change the lines that have xx.xx.xx.xx through zz.zz.zz.zz.  If you have
more than 3 name servers, just addd more lines similarly formatted.  If you
have less than 3 name servers delette the extra lines.

Name server addresses are generally available from your ISP, or automatically 
through DHCP.  In the latter case you should be able to find them in the TCP/IP
configuration section on your computer, or, alternatively through the 
configuration pages of your Cable/DSL router.

There are many other optional customizations, generally features you can turn 
on or off in the config/prefs file.  These options are generally well 
documented there.

See also the "Changing update rates for background modules" section below.

12. Paths required for proper startup/shutdown:
TCS forks a couple of helper processes when it starts up.  When it shuts down 
it kills off these processes.  (It also tries to on startup, in case of a 
crash) In order to kill off the processes, TCS uses bash, ps, and grep.  
If the paths to these programs are incorrect in the config/prefs file, 
TCS won't be able to kill them off.  If TCS tries to startup with these 
processes already running, it won't be able to create the tivo mempool needed 
for inter-process communication, and tcs will die, perhaps crashing the tivo 
with it.  If you see something like this in the log file:

Loading Event Server
Creating Event mempool
Tmk Assertion Failure:
CreateSharedMemoryFile, line 211 ()

Then TCS isn't killing off these processes.  You can do it manually with 
kill -9, but why not just fix the paths?

13. Certain Files/Directories in the TCS tree must be writable
TCS will not work "out of the box" if it is installed in a partition that is 
mounted readonly (I.E. / on the tivo)  If you want to install TCS in a 
Read Only directory, you will need to symbolicly link 2 files and 1 directory 
to a writable partition.


14. Automatic Module Updates:

Since some modules gather information from various web pages, they occasionally
will break when the format of the data changes on those pages.  TCS has the 
ability to monitor the TCS website for updates, and automatically install them 
if you would like.  To enable automatic updates, set the TCSAutoUpdate flag 
in the config/prefs file to 1.  Only the modules can be automatically updated. 
Changes to TCS itself or any of the other files must be done manually.

15. Network Commands:
Commands are 4 characters, followed by parameters, if needed. 

CFTP - Check to see if Ftp is running, start it if not. (Network Server legacy)
NICE - stop running greedy update processes
MEAN - resume running greedy update processes
DOOR - Turn on backdoors 
SORT - Turn on the Now Showing "sorting" backdoor 
CLCK - Toggle the little on screen clock
SSUG - Show suggestions in the To do list, and hidden recordings in Now Playing
SKIP - Toggle the 30 second skip feature
TVNZ - Tell the Network Server to change the Zip for the Weather module.
QUIT - terminate TCS

KFTP - kill the ftp daemon
KTEL - kill the telnet daemon
KVBI - kill tivovbi
KWEB - kill tivoweb.  (DoesnÕt use kill, wonÕt panic the tivo)

RFTP - restart the ftp daemon
RTEL - restart the telnet daemon
RWEB - restart tivoweb. Tivoweb is invoked as "tivoweb tcsrestart" in case you 
       want to modify the tivoweb shell script to do something special.
RSER - Start bash on the serial port.  Does not kill bash.  Which bash to kill?
RTES - Restart the TCS event server.  This shouldn't really ever be needed.

RVBI - Restart tivovbi

DISP TEXT_TO_DISPLAY - display "TEXT_TO_DISPLAY" on the tivo screen

16. Network Clients
There are several network clients available on the TCS website,
www.zirakzigil.net/TCS.  These clients will send TCS commands through the TCS
network socket.  They are very simple TCL scripts that can be run from any 
computer that can connect to your tivo that has TCL installed.  Macintosh 
TCLet compiled versions are also available there. If you use a Macintosh,
make sure to check the macintosh specific section at the end of this 

TCL is not required to be a client/use the socket. Just open the socket and 
send the command using any language, Perl, C, or even just telnet.  

The network clients are not included in the tarball, they can be downloaded 
from the TCS download page at http://www.zirakzigil.net/tivo/TCS.html

17. What Port do I connect to?

18. How did you choose THAT?
Totally ponderous man.

19. Remote Commands:
(clear)(0)(clear) - display on screen the running hacks
(clear)(1)(clear) - RTEL - Restart Telnet server 
(clear)(2)(clear) - RFTP - Restart Ftp daemon 
(clear)(3)(clear) - RWEB - Try to restart tivoweb. tivoweb must not be hung.
(clear)(4)(clear) - RSER - Start bash on the serial port.
(clear)(5)(clear) - RVBI - Restart TivoVBI.

(clear)(7)(clear) - display stock quotes (hint: live net connection)
(clear)(8)(clear) - display local weather (hint: live net connection)

(1)(1)(clear) - KTEL - Kill Telnet server 
(2)(2)(clear) - KFTP - Kill Ftp daemon 
(3)(3)(clear) - KWEB - Ask tivoweb to shutdown.  Won't work if tivoweb is hung
(5)(5)(clear) - KVBI - Kill TivoVBI

(6)(0)(clear) - Display the available sports commands.
(6)(1)(clear) - Major League Baseball Scores, Schedule and Standings.
(6)(2)(clear) - National Football League Scores, Schedule and Standings.
(6)(3)(clear) - NCAA College Football, Scores, Schedule and AP/ESPN-USAToday polls
(6)(4)(clear) - National Hockey League Scores, Schedule and Standings.
(6)(5)(clear) - National Basketball Association Scores, Schedule and Standings.
(6)(6)(clear) - NCAA Men's Basketball Scores, Schedule and Rankings.

(7)(1)(clear) - Various interest rates.

(8)(1)(clear) - Change the Weather zipcode from using the remote (until restart)
(8)(2)(clear) - Display Local (600 mile) Weather Radar.
(8)(3)(clear) - Display National Weather Radar.

(9)(0)(clear) - Show all TCS remote and Network commands.
(9)(1)(clear) - DOOR - Send Keypresses to turn on backdoors.
(9)(2)(clear) - SORT - Send Keypresses to enable sort of the now playing list.
(9)(3)(clear) - CLCK - Send Keypresses to turn on on screen clock.
(9)(4)(clear) - SSUG - Send Keypresses to display suggested/hidden programs.
(9)(5)(clear) - SKIP - Send Keypresses to enable 30 second skip key.

(9)(6)(clear) - Display updates available from the TCS website
(9)(7)(clear) - Display all background processes/timers
(9)(8)(clear) - Reset all background timers - update everything NOW.
(9)(9)(clear) - QUIT tcs

(mute)(mute)(clear) - Toggle the execution of greedy processes (NICE, MEAN)

The easiest way to remember the basic commands for APPLICATIONS is to associate 
a number with each application.  telnet - 1, ftp - 2, tivoweb - 3, 
bash on serial - 4, tivovbi - 5, and to some extent, TCS/myworld - 9. 

(clear)(#)(clear) - restarts the application @
(#)(#)(clear) - kills the application *

@ kills the application first, if it exists, except for bash on serial and 
tivoweb *bash on serial cannot be killed at this time, and killing tivoweb 
causes a panic.

20. Third Party Modules
There may be 3rd party modules included with TCS.  The commands and 
functionality that they provide will not be documented here.  Refer to 
tcs/modulesreadme for documentation, or 90 clear for the extra commands.

21. Changing the update rates for background modules
Many of the modules get data off the web.  Periodically the modules go out,
retrieve, parse and build the information.  The frequency at which each module
will retrieve and process the information can be changed by editing the
config/schedule file.  Different update frequency rates can be set for each 
module, for different times of the day and different days of the week.  For
example, the schedule file as released updates stock quotes every minute
Monday to Friday between 7AM and 430PM localtime. It updates hourly at all other
times.  You should change this to reflect what is appropriate in your timezone.

If things update too frequently, it may negatively impact the Tivo 
(sluggishness or stopples).

22. Auto Scheduling
Some modules support "auto scheduling," which means that the module will 
accelerate its own update frequency as needed.  In particular, the sports 
related modules will accelerate the update rate when they detect a game
in progress. Auto scheduling can be disabled in the config/prefs file.

23. What modules provide which commands?
Built-in (no module) - QUIT, NICE, MEAN
Built-in (no modules) -- remote command (9)(8)(clear) Š Reset all timers.
Applications: remote command (clear)(zero)(clear) - no network equivalent
Backdoors: DOOR
KillApplications: KTEL, KFTP, KVBI, KWEB
MisterEcho: ECHO - this is really just a sample for developers, no real use
MLB: remote command (6)(1)(clear) - Major league baseball (greedy update)
NBA: remote command (6) (5) (clear) - Pro Basketball (greedy update)
NCAAB: remote command (6)(6)(clear) - NCAA basketball (greedy update)
NCAAF: remote command (6)(3)(clear) - NCAA football (greedy update)
NetworkServerInterface: NSRC, NSUT, NSDF, NSPA - Network Server internals.
NewDisplay: (none) This provides capability to use the newtext2osd for displays
NFL: remote command (6)(2)(clear) - National Football league (greedy update)
NHL: remote command (6)(4)(clear) - National Hockey league (greedy update)
OnScreen: DISP
Quotes: remote command (clear)(7)(clear) - no network equivalent (greedy update)
Rates: remote command (7)(1)(clear) - no network equivalent (greedy update)
RestartApplications: RTEL, RFTP, RWEB, RSER, RVBI
ShowCommands: (none) (9)(0)(clear) - no network equivalent
ShowSuggestions: SSUG
Skip30: SKIP
SortNowPlaying: SORT
SportsCommands: remote command (clear)(6)(clear) Š Display the sports commands.
Timers: remote command (9)(7)(clear) Š Display current Timers
TivoDataServer: TDAT - Network Server Internals.
ToggleClock: CLCK
Weather: remote command (clear)(8)(clear)) - no network equivalent (greedy)
WeatherNewZip: TVNZ
WeatherMaps: remote commands (8)(2)(clear),(8)(1)(clear) - no network equivalent
             (greedy update)
Apsrunning.sh: generated by the Applications module, don't edit, see below.

24. Should I turn off modules I don't use?  How do I do that?  
    How do I turn them back on?
Yes, absolutely turn off the modules that you don't care about.  Why do you 
want to make the poor little baby CPU in the tivo suck in and parse Football 
data when you don't give a hoot about football?  Be nice to the Tivo and it will
be nice to you.  That said turning off modules that DO NOT pull data from the 
web isn't going to conserve much - A little memory, but CPU is the major 

To turn a module off, just delete it from the "modules" directory.  
The "modules" directory is tcs/modules for modules running on the tivo, however 
it is tcs/modulesserver for modules running on the network server.

To turn a module back on, just link it back in:

cd tcs/modules (or modulesserver)
ln modules/ThisModuleName.tcl

25. Applications module
Its driven by a simple shell script.  If your favorite hack doesn't show up, 
just add it to config/myhack.  A monkey suffering crack withdrawal can do it.

26. BackDoors module
Turning on backdoors requires knowing the sequence from the remote.  Currently 
the 3.1/3.2 sequence isnÕt known.  The 3.0 sequence is tried on that system.  
(Some have replaced the encrypted key on 3.1/3.2 systems with the 3.0 
encrypted key)

27. SortNowPlaying module
The initial version required you to go to the Now Playing list before using this
command.  This hassle has been eliminated.  This is easier for me than pressing 
Slow 0 Record Thumbs up (don't really have to *look* at the remote), but it may 
not be for you.

28. NEW display using newtext2osd

NOTE: Strongly recommend you leave this alone.  The old text2osd doesn't look 
nearly as good, and compatibility with TCS has not been tested for some time,
and will not be tested in the future.

The "new" display type is now the default. If you want to go back to standard
Tivo text2osd, comment out the following lines in config/prefs: 

displaystyle DefaultDisplayStyle NewDisplay
screenclearstyle DefaultScreenClear NewDisplayClear 

and uncomment the following:

#displaystyle DefaultDisplayStyle SimpleDisplay
#screenclearstyle DefaultScreenClear SimpleClear

newtext2osd version 1.4 or newer is REQUIRED to use the NewDisplay. Older 
versions are not parameter compatible with TCS.

Download from:

29. Jpegwriter required for WeatherMaps

The weather map module requires Jpegwriter to be able to display the maps.
Jpegwriter is available from:


There was a "newer" version of jpegwriter that was posted to some forums. 
That version of jpegwriter, called version 1.1, does a better job of 
centering the data on the screen, however, it mucks up the color map
where garbage gets displayed when you clear the display with TCS.

Use version 1.0.

30. On Screen Display modules
The on screen display modules "cache" data from the web for display, and update 
periodically. If the last attempt to update data from the web failed, for 
whatever reason, the screen will be displayed in RED. If greedy updates are 
turned off, the data will no longer be updated, and the screen will be displayed
in BLUE - more on greedy updates later.   It is probably best to turn off greedy
updates anytime you are recording something important.

BLUE - Information is not up to date because greedy updates are turned off.
RED - Information is not up to date because something failed accessing the web.
YELLOW - All is well.

31. Multiple screens of information is now supported

Use the up and down arrows to page through the information, NOT the channel 
up/down buttons used by many tivo menus.  Using channel up/down would cause 
undesirable results when watching live tv. For compatibility with D-Tivo the 
select key will also page down.

Several modules have multiple pages of information.  Quotes will generate
multiple pages if the number of tickers demand it.

32. Configuring the NCAA Men's Basketball module
You can add your favorite NCAA conferences to the config/MyNCAAConferences file.
The module will then automatically add the scores and schedule for those
conferences to the display.  Warning: The more conferences, the slower it gets.
More than a couple or three is probably a really bad idea.

Look in the config/NCAA*Conf files for the appropriate conference 
name/abbreviation.  There is one file per sport, I.E. NCAAFootballConf is an 

33. Configuring the NCAA Football module
See Configuring the NCAA Basketball module.

34. Configuring the Quotes module
The only thing to configure is what stocks and indices you want to see.  Edit
config/tickers and include what you want.  The tickers have changed from the 
standalone version of quotes.  This version hits a different website which is
both faster AND uses industry standard tickers.  

Quotes will no longer "fall back" to standard text2osd if you have more tickers
than newtext2osd can handle, it will just generate multiple pages. 

35. Configuring the Weather module
There is nothing to configure unless you want to see the weather for somewhere
other than where your tivo lives.  If you do, edit/add config/zipcode to include
your 5-digit zip.  Don't try to use zip+4!  I mean, not only will it not work, 
but do you really think you are somehow going to get the weather as it exists 
on top of your mailbox?

It is also possible to change the zipcode from the remote (See remote commands 
above).  This will immediately refresh and display the weather.  Be patient, it 
will take 10-20 seconds to retrieve the new information.

36. What is a Greedy update?
An update is a periodic background process that updates some kind of information
that you don't want to generate "on the fly."  An update is considered "greedy" 
if it requires significant processing time on the tivo, which MAY cause 
undesired effects when recording a show or watching a recorded show, or even 
just livetv.  A process is considered non-greedy if it is unlikely to cause any 
problems with the tivos main function - being a PVR.  A significant effort has 
been made to make the "greedy" modules more tivo friendly.  The modules try 
to "throttle" their activity and allow the tivo to have some CPU back during 
updates. Unfortunately, it isn't easily possible to throttle the actual download
of the information from the web, but this is a relatively insignificant amount 
of the processing a greedy module requires.  Addition of throttling has made TCS
very significantly more tivo friendly.  I now rarely see problems, although I 
wouldn't go so far as to say nothing will ever happen. 

For developers - Anything that pulls data off the net should be 
considered greedy.

37. Automatically starting TCS at boot time
Add the following line to the bottom of /etc/rc.d/rc.sysinit

/var/hack/tcs/starttcs &


/var/hack/tcs/starttcs console &


/var/hack/tcs/starttcs devnull &

The first writes the log to /var/log/tcs, the second to the console, and
the last to /dev/null.

Every command issued is logged, with the exception of just displaying i
nformation on screen.  It is the module writer's responsibility to write log 
entries to standard out, as it allows more specific log entries than what can 
be done "generically."

Pay attention to the space available in /var.  Delete /var/log/tcs occasionally 
to prevent /var from running out of space.  Under normal use, it would take tcs 
years to fill /var with logs.

It is wise to NOT run tcs from rc.sysinit while you are doing module 

Problems may occur if you start TCS manually from /var/hack/tcs/tcsd.tcl, 
although there is no check to prevent you from doing that.

38. E-mail notification (Macintosh Eudora only)
Instructions and code are available to have Eudora on the Mac send 
"you have mail" messages to the tivo for on screen display.  I would imagine 
similar capabilities exist for some other email clients, no matter what OS you 

Details are available on the TCS website.

Site Under Construction:

Global Internet Services, Inc.