SEO, PHP, gd and more: hire the WWW FAQ team!
Boutell.Com Consulting Services

Mom-O-Vision: Online Reading Material for a Nursing Mom

Mom-O-Vision

Online Reading Material for a Nursing Mom

DISCLAIMER

The circuit discussed here works fine with my video card. It might not work with yours. I disclaim any and all responsibility for harm or damage done as a result of following in my footsteps.
At the time I did this project, my daughter was six months old. She was easily distracted while nursing, and that usually meant that her mother couldn't watch TV or even turn the pages of a book without distracting her daughter from the task at hand.

With the holiday season approaching, I decided to take a risk and build a homemade present for Eleanor's mom: a way to put our online chat server's display on television.

Rejected Approaches

Laptop

One possibility was to purchase an old laptop and run our office ethernet out to the living room. I rejected this option because of the expense, the space required, and the fact that a laptop right in front of her mother would be a tantalizing object for Eleanor to tinker with. Curious babies are great, but during meals distractions are not such a good thing.

Old 8-Bit Computers

An old Commodore 64 or Amiga 500 could drive the television directly, and receive data through a serial cable. I rejected this option because of the space required, and because of the energy required to drive yet another computer in our house.

Commercial VGA-to-TV Adapters

Various manufacturers offer VGA cards with composite output. I rejected that option because of the expense, and because of our strong environmental preference to avoid purchasing new equipment when possible. Modern computers require a tremendous quantity of toxic materials in the manufacturing process. A few manufacturers have also built "dongles" that plug into a VGA card and provide a TV signal at the other end. I would have tried this option, but I was not able to locate a secondhand dongle and, again, did not wish to purchase a new one.

The Solution That Worked

I located a VGA to composite black and white video adapter circuit designed by Tomi Engdahl. This circuit calls for only a handful of resistors. I assembled the circuit on a Radio Shack prototyping breadboard.

Hardware Problems

A good composite video connection requires a 75 ohm cable. To solve this problem, I purchased a regular 75 ohm coax cable of the sort normally used to hook up cable TV. I also purchased a coax-to-phono-plug adapter, for the TV end, and a coax jack for the converter's end. I soldered breadboard wires to the coax jack in order to connect it to the breadboard.

I initially purchased a VGA male plug socket, assuming that I would plug the whole circuit right into the back of the video card in the computer. This was not a good plan; soldering in the tight confines of the socket was difficult, and the circuit didn't stand up to the force required to plug it in to the computer.

Instead, I received a battered old VGA extension cable as a gift from my friend Hugh at 2nd Byte Computers. I spotted the cable in his reject bin and he was kind enough to let me have it. I took it home, cut off one end, stripped the individual leads, and used a simple continuity tester circuit consisting of two AA batteries and an LED to determine which lead went with which pin.

Software Problems

The server I connected the adapter to runs Linux. Linux is a wonderful thing, but it doesn't seem to support the very old fashioned CGA 40-column text mode, which might otherwise be tailor-made for the frequencies and low resolution required to drive a television.

Fortunately, I was able to locate XF86Config settings suitable for use with an NTSC monitor. Thanks to Philippe Lantin for providing this information. Since legibility mattered more to me than resolution, I took the small additional step of cutting the vertical timing and resolution values in half and removing the "Interlace" flag. I also changed the Hsync and Vsync settings to -Hsync and -Vsync, to match the requirements of Tomi Engdahl's circuit.

Alas, these settings don't work with the XFree86 SVGA server. I don't know why, but if the SVGA server is used, the display is not readable. Fortunately, they do work with the VGA16 server. Since the circuit is grayscale only, 16 levels of gray are more than sufficient.

After that, it was a simple matter of writing a script that would launch the X server, turn off the screensaver feature with xset (remember, there's no input device here), and launch the Tinyfugue online chat server client to log into her favorite hangout. Mission accomplished!

The script is reproduced below.

/usr/X11R6/bin/X &
sleep 5
/usr/X11R6/bin/rxvt -fg white -bg black -font 10x20 -geometry 55x10 -e /usr/local/bin/tf &
/usr/X11R6/bin/xset s off

Building an Enclosure

As a final step, I rebuilt the circuit on a smaller breadboard and tucked it inside an experiment case. This required drilling holes in the bezel to pass the VGA cable and the coax connector. I had a 3/8" drill bit handy, and this proved nice and snug for the VGA cable and just a little bit small for the coax connector. A little bit of knife work solved the latter problem.

The outer contact of the coax connector didn't come through the case quite far enough to screw a lead down tightly. I tried to solder a lead to it and found that solder simply refused to adhere. Eventually I screwed that lead down as best I could and taped over it for good measure. Later a friend suggested that sanding the contact down a bit might have allowed solder to work. Another friend pointed out that the entire body of the connector would have to warm up for solder to adhere; he suggested soldering to the washer instead, and then screwing that in place. Apparently a better grade of connector would have included a plated lug on the washer for easy soldering. Since my less sturdy connection is working fine, I haven't tried either suggestion.

I promptly lost one of the case screws and stripped the other; I have my doubts that it was any good. Fortunately, two screws at the corners are holding it tightly shut.

The finished MOM-O-VISION adapter is an unobtrusive four-inch box.

Displaying Pictures

Later I decided that it would be fun to display the occasional photograph on the mom-o-vision. At first, the results were deeply disappointing; the xv program insisted on "dithering" the images, which proved much worse than simply using the nearest shade of gray available for each pixel. The noise produced by dithering on a 640x200 display is painful to look at.

Eventually, however, I arrived at this script:

#!/bin/sh

#Display a JPEG on the mom-o-vision
djpeg $1 | pnmscale -xscale 2.4 |\
pnmscale -xysize 640 200 | ppmtopgm | pnmdepth 15 |\ 
xv -wait 30 -visual grayscale -dither -
This script displays the JPEG file specified on the command line for 30 seconds, then exits. Note the use of the pnmdepth utility, which simply throws away extra color information rather than trying to dither it. The results are much better. In my opinion, dithering is only useful when you have an abundance of one resource (colors or pixels) to substitute for a shortage of the other. In this case, both are in short supply, so it is better to just throw away the pixels and bits you can't handle.

Conclusion

For environmental and space reasons, I didn't want to add another computer just to provide a noninteractive display on the TV. I built Tomi's circuit and hooked it up to one of our Linux server machines instead. The server is never hooked up to a monitor anyway, so this was a very environmentally sound solution to the problem, with a total cost of less than $30.

Although Tomi describes the circuit as a "first prototype," it works almost perfectly. There's a dim rolling horizontal band behind the display, but the display itself reads just fine. I contacted Tomi about the horizontal band and discovered that it is probably due to a ground loop, which could perhaps be resolved by plugging the computer and the TV into the same outlet, or by installing a fairly pricey isolator in the circuit. Interestingly, disconnecting the TV from our cable service (not from the mom-o-vision) makes the bars go away. A friend suggests connecting the cable service through "two back to back 75-300 transformers."

Since none of these options seem worth the trouble, we'll live with the slight interference. It doesn't interfere with the use of the device.

Last update: 6/9/2000


Up to Tom's Home Page

Contact Us

Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Boutell.Com, Inc. All Rights Reserved.