TiVoISA ethernet HOWTO ---------------------- This is a brief HOWTO for building your own TiVo ISA adapter and installing an ISA ethernet board. Corrections to tridge@samba.org. Make sure you check for updated versions of this HOWTO at http://samba.org/tridge/tivo-ethernet/isa_adapter_howto.txt NOTE: This HOWTO involves some fairly sophisticated soldering. It is not for people who have never soldered before. Step 1 ------ The first step is to get a blank TiVoISA revision 1 board. These can be bought from www.9thtee.com or you can have your own fabricated by using the artwork at http://samba.org/tridge/tivo-ethernet/tivopcb.zip which contains an old style protel file of the artwork. Step 2 ------ The second step is to gather the necessary parts that will be soldered onto the board. Parts list: C1 - 100nF (104) Ceramic C2 - 100nF (104) Ceramic C3 - 10nF (103) Ceramic C4 - 1uF 35v Tantalum C5 - 10uF 10v Tantalum C6 - 10uF 10v Tantalum C7 - 100nF (104) Ceramic U1,U2,U4 - 74LCX245 Octal Tranceiver w/ TriState Outputs U3 - Lattice ISP LS1016-80lj R1 - 1.2K 1/4 Watt 5% R2 - 4.7K 1/4 Watt 5% R3 - 22K 1/4 Watt 5% J1 - EDC395982 - Edac Conn 49/98 EdgeCard IBM PC-AT ISA (ISA Connector) J2 - 145154-8 - AMP .050 CL CEC Dual 60 Pos (PCI Connector) J3 - 640453-4 - AMP 4 pos Single Row Right Angle Header .1" J4 - 640383-8 - AMP 8 pos Single Row Straight Header .1" J5 - ???????? - AMP 10 pos Dual Row Straight Header strictly you can skip U2, J4 and J5. You only need U2 if you want to try to get plug-and-play ISA working (not needed for a NE2K clone card). You only need J5 if you want to be able to use a jumper to set the IRQ of the adapter, otherwise you can just hard-wire IRQ 5 by connecting the two middle pads. You only need J4 if you want to be able to in-circuit program the Lattice GAL. If you get a pre-programmed GAL from 9thtee then you can skip this part. Finally, you need a ISA NE2K clone ethernet adapter. You can also use a 3c503 but I would recommend using a NE2K as the driver is better developed and more reliable. NE2K cards should be available in junk bins at your local computer store. You will need to either jumper this card to IO=0x300 and IRQ=5 or have the DOS setup utility to set those values before inserting it in the TiVo. If you do not have a pre-programmed GAL then you will also need some parts to build a GAL programming cable. See http://samba.org/tridge/tivo-ethernet/dlcable.pdf for a full description. Step 3 ------ Once you have all the parts you can start soldering. Start with the GAL and the transceivers. Follow the parts placement diagram at http://samba.org/tridge/tivo-ethernet/frontplacement.jpg If you haven't done any surface mount soldering before (I hadn't) then here are some hints. - use the smallest tip soldering iron you can get - make sure you have some solder wick handy to mop up the inevitable shorts between pins - tack down two opposite corners to start so that the part doesn't move - use the tip of the iron to heat the pin and the pad simultaneously for about 2 seconds then use a verify small amount of solder to join them - inspect carefully after soldering to make sure all pins are well connected but there are no shorts. It took me about 3 hours to get it right. It takes an experienced solderer about 10 minutes. Once you have the surface mount parts on then add the thru-hole parts. Make sure you don't forget the resistor on the back (see http://samba.org/tridge/tivo-ethernet/backpatchplacement.jpg). If you don't have a pre-programmed GAL then don't add the ISA and PCI connectors until after you have programmed in the right GAL code and verified it. It is very hard to fix the soldering of the other parts once these are added. Step 4 ------ The next step is to program the GAL. If you have a pre-programmed GAL then you can skip this step. Grab the GAL code from http://samba.org/tridge/tivo-ethernet/TIVOISB.ISP Do *not* use the old GAL code for the rev0 board. The correct ISP file will have a checksum of "02374 2" from the "sum" command under Linux. Grab isp_prog, isp_read and isp_scan from: http://samba.org/tridge/tivo-ethernet/isp_read http://samba.org/tridge/tivo-ethernet/isp_prog http://samba.org/tridge/tivo-ethernet/isp_scan Then connect your ISP programming cable and connect it to J4. Connect a power connector to J3 (you need 5v to program the GAL). Run isp_prog like this: isp_prog TIVOISB.ISP It should say that it programs and verifies correctly. Then run isp_read tmp.dat cmp TIVOISB.ISP tmp.dat and you should find no differences. Step 5 ------ Next make sure your ISA NE2K card is setup correctly and working. Put it in a Linux PC and load the ne.o driver. Make sure it comes up as IO=0x300 and IRQ=5. Make sure it works. You may need a DOS setup utility to configure the card. Step 6 ------ Install your TiVoISA adapter in your TiVo but without the ethernet card. Make sure you connect power. Turn on your TiVo and make sure it boots. Then download the following: http://samba.org/tridge/tivo-ethernet/8390.o http://samba.org/tridge/tivo-ethernet/tivone.o http://samba.org/tridge/tivo-ethernet/probe.o Transfer these to your TiVo. Try "insmod probe.o". Then look in /var/log/kernel and you should see a message indicating that it failed to find a NE2K card. Next, turn off your TiVo and insert the NE2K then turn it on again. Load probe.o again. It should give a message in /var/log/kernel saying: looks like a NE card at 0x300 Now load 8390.o and tivone.o. You should get a message like this: TiVoNE found at 0x300, using IRQ 29. Now run something like this: ifconfig eth0 192.168.2.24 up You will get a error message about IP struct not being filled in. That is expected. Next, make sure your routing table is correct (use route -n) and try to ping your TiVo ethernet IP. If it works then celebrate. Step 7 ------ To see what speed you are getting download sock_source and sock_sink tivo binaries from http://tivo.samba.org/download/tridge/. Then download the socklib sources from http://www.samba.org/ftp/unpacked/socklib/ Build socklib on your Linux PC and then run sock_source on your TiVo. On your Linux PC run "sock_sink -H tivo" and see what speed you get. You should get at least 0.93 MB/sec. Some people report over 1.0MB/sec. Step 8 ------ To bring up the ethernet by default you should put something like this in your startup script: if [ "$tivoether" = true ]; then ( insmod /mnt/tridge/8390.o ; insmod /mnt/tridge/tivone.o ; sleep 2; ifconfig eth0 192.168.2.24 up ; route add default gw 192.168.2.10 ; ) & fi then set "tivoether=true" in your prom boot command line. Step 9 ------ I hope to release video streaming software soon. I have it all finished I just need to work out the release details.