The TiVo LCD Project v.02
Updated: September 24, 2004

After adding another hard drive to my TiVo, enabling telnet, ftp, TiVoWeb, TyTool and all the other cool goodies that are out there, I started searching around for a new project. I stumbled across this web page: http://www.notacon.com/tivolcd/ where a guy in the UK added a 2 lines screen to his TiVo. Very cool I thought, why can't I do that.. so I began reading his page, (which left much to be desired in terms of instructions), but I figured enough out to realize that only needed a few parts to get this up and running... Plus how hard would it be, he even gave out the TCL script...If you can weed through the sarcasm in this "how-to" you will be impressing your friends with your new LCD-a-fied TiVo. Easy enough, so lets get started...

What does it do?

Displays the following information regarding your TiVo on an LCD screen:

Channel Station Call Sign     Elapsed Time / Total time
Program Name   % Disk Space Used     Record Time Left (Best-High)
Uptime

Materials List

1. Buying the LCD Screen

Easy you say... well yes, but finding one that had the serial connection and was inexpensive was another story. Maybe I was thinking I could get one for under $30, that was far from the truth. Since I wanted 4 lines I found out I would be paying a bit more. I stumbled across www.crystalfontz.com offering a wide variety of screens in different sizes, colors and resolutions. I finally settled on the CrystalFontz 634 Serial LCD (http://www.crystalfontz.com/products/634/index.html) I had it shipped out and in a few days it arrived. When ordering from CrystalFontz, be sure to tell them that the screen you are buying is for a TiVo and you heard about them from this website.

2. Hooking up the LCD Screen to TiVo

This by far was the most enjoyable part of this project. If you are unfamiliar with the working guts of TiVo, take a look at this site: http://www.9thtee.com/insidetivo.htm I'm not going to go through the process of opening up TiVo... But I will tell you how to hook up the screen, which we'll split up into a few parts. Safety first, so unplug TiVo from the wall. Once you have it opened, be careful not to touch any of the capacitors near the power supply. TiVo may be off, but you can certainly get a good buzz from them. Now remove all connectors going from the power supply to TiVo. This includes the main power cable and 1 or two hard drive connectors.

A. Power to the LCD Screen - Part I

This is by far the most critical portion of the project...The reason? Simple.. If you hook up the LCD screen to the wrong voltage, you'll burn it up in a matter of seconds. So listen up, I'm only going to explain this once. The HD Fan Pass through connector thingy that you have in your hands will by default put out +12v on the small red wire, that will fry your screen. So, taking a small jewelers screwdriver you can bend the tabs that hold the pins into the connector so that you can pull them out and re-arrange the wires so that the small red wire now carries +5v. See the before and after diagrams below. Notice that the red cable now carries +12v. I can't stress enough that you get this step correct. If it means checking your voltages with a voltmeter, by all means do it! I did!

 

If you followed my instructions properly, you can then place the connector between the power supply and one of your hard drives. You should end up with something like the photo below.

B. Power to the LCD Screen - Part II

A full schematic of the CrystalFontz LCD panel #634 is here: http://www.crystalfontz.com/products/634/634full.pdf I highly recommend reading over it so you understand the next few steps.

Now that you have the power connector hooked up properly you're going to want to solder the two leads to the proper place on the LCD's control panel. But before you do that, split the +5v line from the connector so that you can provide the power to the Light and board. See table below for J2 on the board, and the graphic below showing the solder points and wires.

J2 Configuration
7 6 5 4 3 2 1
Busy Flag Clock Chip
Select
Input +5v
Light
+5v
Power
Ground

 

C. Signal to the LCD Screen

Remember that Head phone plug from the material list? Now you need to solder a single wire from spot #4 on the board (see above) to the tip of the headphone plug. Run the wire outside of TiVo through a ventilation hole in the bottom and into the Serial Jack on the back of TiVo. Now you are 100% hooked up.

D. Setting the Baud Rate

By default the LCD screen communicates at 19200 baud, a little too fast for our pokey TiVo. My SA1 TiVo worked at 4800 baud. DTiVos seem to run at 9600 or higher. See below for a table outlining the switch settings for SW1.

SW1 Configuration
Baud Switch 1 Switch 2
19200 Up Up
9600 Down Up
4800 Up Down
2400 Down Down

E. Testing of the Screen.

Now for the moment of truth, well part one of it anyway. Still keeping all powers cables unplugged from TiVo, plug the HD Pass Through connector into one of the hard drive power supply leads. Plug TiVo into the wall, and within a few seconds your LCD should look like this:

If it fails to power up: Check your wiring, and your voltages. Don't say I didn't warn you about trying to shove +12v through the LCD screen. It WILL burn up.

F. Optional - Removal of 9Pin D Connector

The CrystalFontz 634 comes with a 9Pin D Connector soldered to the control board. You may want to carefully remove this from the board as it can interfere with the mounting procedure in step 3. To remove, use a small pair of pliers to unscrew the bolts & nuts. Then gently pry the metal casing up off the board. Then remove the pins one by one by trimming them or pulling them out with a pair of pliers.

E. DTiVos ONLY - Closing the JPE Jumper

For Direct TiVos ONLY, you may have to close jumper JPE with a bead of solder. Do this if you get NO data on your LCD screen.

3. Cutting the hole for the Screen

If you don't have a Dremel tool with a cutting wheel I highly recommend that you go out and get one now! Carefully remove the faceplate of TiVo by gently pulling out the bottom and tugging down. Once out, take the LCD board and mark the size of the hole you'll need to cut (For exact dimensions, see the drawings in here: http://www.crystalfontz.com/products/634/634full.pdf ). Mark these dimensions on the INSIDE of the faceplate. I chose to mount my screen on the left.

I then used a Dremel tool with a cutting wheel to make the hole in the plastic. The faceplate is about 1/8" thick, so any other method and you'll be there for quite some time. Cut from the inside out. You will have to remove some of the faceplate mounting tabs in order to cut the hole. Once I had the rough size, I used an X-acto blade to take away any excess plastic. When finished the LCD screen fit snug inside the hole. Don't worry about being perfect, you can make it look nice later with electrical tape & paint.

4. Mounting the Screen in the Faceplate

Since my LCD screen fit quite snug into the hole, I only had to use 4 dabs of hot glue at the corners to keep it from moving. I routed the wires through one of the tab holes (You may have to bend the tab up to get the Molex connectors through, be sure to bend it back down so it doesn't touch the board and cause a short) The fit will be very tight, but there is enough room in there. Note my TiVo has an insulation pad on the front of the steel. If you don't have this, you may want to cover the LCD board in electrical tape to prevent any types of electrical shorts. You can fill the gaps around the front panel and the screen by using electrical tape. Put it all back together, and you can now return TiVo to its home in your entertainment center. Don't forget to hook up your power connectors and the new cable we just made to your serial connector. See below for some mounting photos.


Before I re-attached the faceplate. Note the hot glue in the corners, and the fact that
the 9Pin D connector has been removed.


Inside, the wires coming in from the screen. Note the thick black cable running to the
left is my cable to the serial jack, I route my cable through the same hole that my
Turbonet uses, although during this process, I didn't have network cable hooked up.


I also made a border for my screen out of L shaped plastic strips I got from a hobby shop.
This gave the edge of my LCD screen a slightly cleaner look, but I wasn't happy yet,
You can't see it here, but afterwards I took some electrical tape to fill in the gaps and
as well as seal the case a bit from any light from the screen that "escaped".

5. Time to Test!

Ok, with out a doubt, you are excited at this point... After all, you just soldered few wires, breathed toxic fumes from the plastic when you cut it with a Dremel, and you successfully navigated around +5v DC! So now you want to see if all of your efforts worked. If you boot TiVo, your LCD screen should show a few lines of a Bash prompt if you've got it hooked up correctly. To test communication to the LCD panel, Download this test script, place it in your /var/hack directory, chmod 755 it, and execute it. You should see "This is a Test" on the LCD screen.

If you get garbled messages on your screen: You didn't set your baud rate correctly. Shut down your TiVo, Go back up a few steps and change the SW1 settings for your baud rate.

6. Installing the software I wrote (er...hacked...)

Give credit where credit where credit is due... so first, I didn't write this 100%myself. It is based off of the original LCD script written by someone in Denmark. Then to get the extra features I've used code from Chris Stennett's Jazzed Dailymail: http://www.deepinthejungle.com/TiVo/TiVoindex.htm

Disclaimers: First offal, my code ONLY works with CrystalFontz 634. There are NO plans to make this work for other manufacturers. You're welcome to do it, if you so choose. Second, with a little modification you could use this code on other CrystalFontz models. For instance, commenting out a few lines of the update.tcl script would get this working on a 2 line CrystalFontz display. I'm by no means programming expert, so I consider my ugly code, just that. Ugly. In fact, it probably isn't too efficient, and it could use complete overhaul. If you'd like to do that, by all means, go forint...

Here is how the code works...

6. Questions? Comments?

I'm not sure how much I'll be updating this software.. I wanted to get the screen to scroll the title if the title was over 20 characters, however I have to be able to send "0x00" to the screen and TCL keeps interpreting it as end of string. If you know how to get by this, email me: todd@disneycorner.com  If you so choose to take this project over, feel free, but let me know so I can point people in the right direction.