Interfacing older, non VGA displays to systems with VGA hardware without the help of a hardware scan converter.

The Forgotten

Almost every linux
embedded project out there today uses some form of LCD text or graphics
display. CRTs have been abandoned as bulky and obsolete.
But not all are. Forgotten are the tiny portable b&w
televisions you can pickup for almost nothing online or at your local
drugstore. These are indeed small, and capable
of displaying readable 80x25 text and 640x480 graphics. Best of all is the
price, less than $20, often free. No LCD can compete here. Coupled with an equally
inexpensive wyse winterm (shown), this linux based system costs a lot
less than a crankup laptop or anything you'll ever see at a
tradeshow.

Cost for this setup came in at ~$35. Total power
consumption is low enough to be run off the batteries or the wall power supply included with the TV.

Projects

Wyse Winterm Very cheap and low power consumption. Has uses in portable applications.

This is the most tricky part. PC's do not POST an NTSC or PAL
compliant video signal, but rather a basic VGA mode. It
is possible to modify the BIOS to reprogram a VGA card to output
the correct sync and scanrate. You will needed a very good
understanding of assembly and disassembly to patch your PCs system
BIOS properly (and even moreso if you want to modify a VGA card
bios) . If you are up to the task, and willing to dig deep,
check out:

Patching the system BIOS may be easier, as it is flash based and
there are usually utilities to accomplish this. A VGA BIOS
is often ROM based, requiring at the very least a new EPROM/flash part
and a programmer as well as an eraser (because it never works right the
first time).

(The old school way of doing it, shown here, VGA cards with socketed BIOS, Datarase II eraser, PB10 programmer, and some eproms. I did it this way for the kaypro project).

Of course you could also buy a scan converter, that's the easy way. But depending on how many of these you are doing, this could get expensive.

What about Linuxbios?

The chipset and
firmware/bios idustry
is a multibillion dollar industry not particularly friendly to open
source or open specs. Obtaining useful chipset information is
often left to long hours reading cryptic cots bios binaries with a
disassembler. The original IBM PC may have been open
architecture, but that was about it. These days, PC's are very
closed with few similarities to the original IBM PC. In fact,
even the well known PC bios compatibility layer that every PC starts up
with may no longer stand the test of time. Check out http://www.uefi.org/
Linuxbios works for some platforms. Most notably AMD's opteron.
And it does work with the geode with some hacking. But the
task of reverse engineering a BIOS is in many ways a necessity to
understand the real hardware. Still the Linuxbios framework has
the most promise.
Fortunately the Award BIOS has become much more understandable
recently. Check out Pinczakko's excellent pages at
http://www.geocities.com/mamanzip/

Interfacing to a TV

There are many ways to interface to a TV (color and b/w), some of them
requiring opening up the set and taping out the video and sync lines.
B/W sets are of course easier as there's only 3
connections (video, hsync, and vsync). For color, there is 5
(r,g,b hsync, vsync). On some sets these signals are often
internally combined as one composite line, even if there's no composite
or AV input on the back. Sometimes you cannot find the separate
video and sync lines because the video generator IC feeds a composite
signal to directly into the video amplifier IC. Ive seen this
with newer b/w sets, but composite under b/w is no worse than a direct
video connection. (composite video is worse only in color sets
because the color information is represented by a color burst which can
have noise and accuracy problems). A b/w composite video to a b/w
set is as clear as a direct connection (the sync pulse
information does not interfier with the video data).
Note that TVs with SCART connectors are almost nonexistent in the US.RGB on mono display's

From CGA onward, any video card outputs in color with separate Red,
Green, and Blue signals. This is overkill for a b/w or greyscale
display. For example one common circuit used to convert VGA to a mono composite video signal is:

This circuit works fine for a single b/w composite monitor. But
the Blue and Green lines are not used, which is kind of wasteful.
Depending on what you are trying to achieve it would be better to
combine the Red, Blue, and Green lines Such as:

Made from mostly trash. The case is a dental floss box. The VGA cable and resistors came from a dead monitor.

The Poor Man's Triple Headed Display

Time to test the cable. I used three composite monitors from the C=64 era.

R, G, and B are unique independent video signals

Each color line is in effect a completely independent video
signal (with only the sync pulse and dot clock shared). It is possible
to have up to 3 separate greyscale images in the same video memory space.
Here's some examples:

These images look strange on a color screen. But when
each color signal is separated to its own display, the effect
becomes clear.

How to Create RGB Triple exposures

1) Open up to 3 images in the gimp
2) For each image, convert them to greyscale, then encode each in red,
green, and blue.
Gimp's "colorify" utility does all of this in
one step: Filters->Colors->Colorify
3) Save each colorified image to a new bitmap (.bmp) file.
4) Open each of these newly created bitmaps in the gimp.
5) Copy and paste one of the colorified images over the other. (say the
red one over the blue).
Doing this simply places a new image
layer on top of the old one. The old one still exists,
but just not
visible at the moment.
6) Now merge the layers.
Go to Dialogs->layers.
Select Addition mode in the pull down.
You will see the two images combined.
7) Repeat steps 5 and 6 for the last colorified image, pasting over the
newly combined layer,
then merging it using the layers dialog, Addition
mode. I found that for this last step, I needed to close then reopen the layers dialog in order
to merge the last image.
8) Save the result to a new bitmap, you're done.

9) You can test the results by opening the new image in the gimp and pull down Filters->Colors->Decompose. Uncheck "Decompose to layers" and press OK.

Compression

JPEG compression mangles the color information, making for some
interesting but undesirable results. PNG and GIF are lossless, so
these formats are the ones to use (png for its wide bit range and gif for animations).
Creating a jpeg compressor that works with individual color spaces is possible,
ie treating an rgb image as three distinct greyscale images to compress
(with a result filesize no larger than 3x the largest greyscale
compressed image). But this is left as an exercise for the
reader.

Video

The same principal apples for video as fixed images. Ive
looked at the sources for mplayer and it is possible to get it to work
with some modifications. This can have many uses.

Given that a PC can have as many video cards as PCI slots it's
possible to make a large array of video monitors. Typically, a PC has 3 or 4 as
well as the onboard video card (or AGP), making for a possible total of 15
unique displays from a single PC. Consider the possibilities: