Programming the TiVo (including Teletext)

Up: Martijn's Homepage  
Prev: A Package ordering tool for Debian  

I live in the Netherlands where practically every channel has teletext and there's a lot of useful info there. It turns out that the TiVo can actually capture teletext. This led me to a search for all sorts of useful information about programming the TiVo.


ChipPurposeDocumentationI2C address
SAA7114Video stream decodingSAA7114H_1.pdf0x42
SAA7120Video stream encodingSAA7120_21_1.pdf???
CS22MPEG decoderdec-cs22-usrapgd.pdfNone


All of the chips above support

Random stuff

~/iicset 0x42 0x55 0x88 Enables teletext capture on scanline 22, necessary to read teletext on Belgian channel VRT1 (and possibly others). By default the TiVo only captures lines 5-21 and 23. This is determined by the LCR registers in the SAA7118, which is on the I2C bus at address 0x42. The relevent registers are 0x41 to 0x57:
# ./iicdump 0x42
40:40  41:ff  42:ff  43:ff  44:88  45:88  46:88  47:88  
48:88  49:88  4a:88  4b:88  4c:88  4d:88  4e:88  4f:88  
50:88  51:88  52:88  53:88  54:88  55:ff  56:88  57:ff  

Each record refers to a scanline with one nibble being the even field, one the odd field. The value 8 represents teletext, the value F represents video data. If you wanted to extract Closed Captioning data on scanline 23 for example, you'd dump 0x11 in register 0x56. Delays on startup

Up: Martijn's Homepage  
Prev: A Package ordering tool for Debian  
By Martijn van Oosterhout (kleptog (at)
Copyright © 2000-2006 - Last modified 10/12/2004