TVGuardian 101 and 201 PCBs side by side

TVGuardian 101 and 201 Foul Language Filters

These two foul language filters have been in my possession for quite some time. I bought the TVGuardian 101 in 2014 as alternative to a Closed Captioning decoder to view subtitles of some NTSC LaserDiscs. In 2015, I got a Pioneer DVL-909 LaserDisc player with S-Video output together with the newer TVGuardian 201, which supports both composite and S-Video. I never got around to write an article about it, but now it’s time to remove that from my to-do list.

TVGuardian 101 and 201 Foul Language Filters
TVGuardian 101 and 201 Foul Language Filters

As stated before, I had no interest in the primary function (censoring!) of these devices and they were just cheap and obtainable alternatives to CC decoders. Actual CC decoders are regularly listed and discussed in the LDDB forum (e.g., this thread) and now it seems that it is already possible to build them yourself, e.g. with the Video Experimenter Arduino shield.

While investigating and writing this article, I found out that my DVL-909 LaserDisc player stopped accepting LaserDiscs, so the topic somehow shifted towards the disassembly and analysis of the foul language filters.

To have an idea of what we are dealing with, this is an excerpt from the TVGuard 201 owner’s manual:

The phrase “GET THE HELL OUT” is muted and “GET
OUT” is displayed.
The phrase “MOVE YOU’RE A- -!” [sic] is muted and
“MOVE YOUR TAIL” is displayed

TVGuardian 101

The TVGuardian 101 is an unremarkable little box. Be careful with the rubber feet, they tend to relocate themselves and stick somewhere else. I removed them a while ago and only put them back for the photo.

There isn’t a lot inside, just a single PCB.

When looking at the chips, it shouldn’t be too hard to figure out how this device works:

The brain is a Microchip PIC MCU (U3A). It gets the CC data from the NTSC line 21 decoder (U9A) and matches it against the dictionary in the EEPROM (U6A). Depending on the settings (sliding switches on the back of the device), the captions are superimposed with the video super imposer (U8) and/or the audio is muted with the switch (U7).

TVGuardian 101 PCB - close-up
TVGuardian 101 PCB – close-up

The software and dictionary version of this device is 1.06. This is indicated by the label on the PIC (which is protected, unfortunately) and towards the end of the dictionary data in the EEPROM. The startup screen confirms that.

TV Guardian Version 1.06 - The Foul Language Filter Dictionary Version 1.06
TVGuardian 101 startup screen

To make use of the CC superimposer without censoring set FILTER – OFF and CAPTION – ON with the slide switches on the back.

Foul language filter

Warning: If you belong to the target group of these devices, then cover your eyes and scroll down to the next section!

For your reference (and a good laugh), this is the content of the EEPROM. The last paragraph of keywords seems to be the replacements for some of the other words.

TVGuardian 101 dictionary 1.06
Lots of bad words

Update (2022-11-10): The 1.05 dictionary has already been dumped and foone dissected it. Here is a patch to update the dictionary to 1.06 (use Delta Patcher to apply the patch).

TVGuardian 201

The successor TVGuardian 201 looks more like a TV receiver or A/V switch. Besides the CC decoding and censoring capabilities, it can also switch A/V signals (two inputs with composite and S-Video, as well as analog and digital audio). Here are some impressions of the box and the device:

Compared to the 101, the PCB is about the same size. The A/V connectors were moved to a larger PCB in the back and the control buttons to a little vertical PCB in the front.

How does this unit work? Let’s have a look at the chips:

Main program, dictionary, CC decoding and output are now handled by a Philips SAA55xx MCU (U8; marking: SAA5542PS/M4/1508 | CC3481   11 | TVG300 | PHILIPS 1998 | TSG0439 M4B). The audio is muted by the switches (U2, U3) and there are also some new components: Video amplifier (U5) and sync separator (U11).

This time, EEPROM (U13A) only contains the settings and not a dictionary. The startup screen of the OSD tells us the software version 3.00 (also on the MCU marking) and the dictionary version 2.02.

To make use of the CC superimposer without censoring don’t bother with the settings menu. Instead, press the odd-shaped TVG button on the front 5 times / until the OSD says TVG: Off/CC1.

Test connector

An interesting addition is the TEST CONNECTOR (J2) on the right side of the PCB. Pins 1-2 are labelled RST and correspond with the unpopulated RESET button (PB1) on the PCB. Short these pins to — surprise — reset the device. Pins 9-10 are labelled MODE, but so far, I didn’t get any reaction when shorting these pins. Pins 2-9 go to various pins of the MCU, EEPROM and sync separator. This is surely an invitation for interesting experiments in the future.

  1. [RST] +3,3 V and PB1
  2. [RST] U8 pin 43 (RESET) and PB1
  3. U8 pin 52 (P1.5/SDA1)
  4. U8 pin 51 (P1.4/SCL1)
  5. U8 pin 50 (P1.7/SDA0) and U13A pin 5 (SDA)
  6. U8 pin 49 (P1.6/SCL0) and U13A pin 6 (SCL)
  7. U8 pin 6 (P2.5/PWM4)
  8. U8 pin 47 (P1.2/INT0) and U8 pin 37 (VSYNC) and U11 pin 3 (VERTICAL SYNC OUT)
  9. [MODE] U8 pin 5 (P2.4/PWM3)
  10. [MODE] GND

CC samples

Luckily, my LaserDisc player still plays DVDs. So I checked all my region 1 DVDs for closed captions (in NTSC line 21, not DVD subtitles) and bad words (to trigger the censor). Here’s a sample from the NUON movie The Adventures of Buckaroo Banzai Across the 8th Dimension, which is mild according to the IMDB Parent’s Guide.

I think the samples (and quality of the censorship – 2nd picture) speak for themselves. Both devices did not mute the audio, by the way.

All in all, they’re still usable CC superimposers. Especially the TVG 201 via S-Video. The captions stay almost within the widescreen picture while the TVG 101 loses more than half of the second line.

5 thoughts on “TVGuardian 101 and 201 Foul Language Filters”

Leave a Reply

Your email address will not be published. Required fields are marked *