TV output on low-cost portable computers
kragen at pobox.com
Thu Mar 2 03:37:02 EST 2006
Microsoft's recently-proposed alternative to the $100 OLPC PC was a
device to connect cellphones to TVs for a larger display. You can
generate an NTSC video signal without a whole lot of hardware. Is it
beneficial, and how hard is it?
Is it beneficial?
My recent trip to Toys "R" Us yielded less robotic platform goodness
than I'd hoped, but some other interesting ideas. There was a Coleco
8-in-one game device that produces TV video out for US$10 list price,
although it was discounted to $5 for a going-out-of-business sale, and
several other such devices including an Etch-A-Sketch-branded device
that includes features like drawing your own mazes.
http://www.mindfully.org/Resource/Video-Formats-World.htm lists the
video formats used in various countries. The ones that interest me
most at the moment:
Argentina, Paraguay, Uruguay: PAL
Brazil: PAL-M (see http://www.atariage.com/common/video_key.html)
Bolivia, Chile, Colombia, Ecuador, Guyana, Peru, Surinam, Venezuela: NTSC
So even just producing NTSC video would make TVs throughout most of
the Americas happy. How many of them are there, though? Do most
people have access to TVs?
The Inter-American Development Bank issued an "E-Commerce Brief" in
October 2000 containing a number of amazingly stupid mistakes (".asp"
doesn't mean "application service provider", "Computers x 100 inhab."
clearly would be around 1e11 rather than 9.12 (presumably they meant
"Computers / 100 inhab."), and "only 46% of web sites are active" is
almost as meaningless as "5% offer online commerce", Uruguay's GNP per
capita is not "00" --- see the mind-boggling stupidity yourself at
http://www.iadb.org/sds/doc/ECommerceBrief07.pdf), and also asserting
that "TV penetration" is "97% of households".
The World Bank's 2005 World Development Indicators report
(http://devdata.worldbank.org/wdi2005/Cover.htm) has a table entitled
"the information age", table 5.11,
http://devdata.worldbank.org/wdi2005/Table5_11.htm --- like the rest
of the WDI site, it's badly laid out and very difficult to access.
But it does contain a column for televisions per 1000 people:
per 1000 people
Argentina 326 162.9
Bolivia .. 7.4
Brazil 369 13.4
Colombia 319 ..
Chile 523 57.4
Ecuador 252 13.9
Paraguay .. 21.3
Peru 172 16.6
Trinidad an 345 ..
United 938 255.0
Uruguay .. ..
Venezuela, 186 32.4
World 275w 65.5w
America & 289 33.5
The table does not acknowledge the existence of Guyana and Surinam.
These numbers are consistent with a TV in nearly every household in
So I conclude that a computing device's NTSC/PAL-M TV output, if
available, could be used by almost any inhabitant of South America;
and that it can bring the cost of a computing device under US$10.
NTSC output by itself would be less beneficial.
In a larger sense, knowing whether this feature is beneficial requires
knowing whether more access to information, or video games, or
whatever, is beneficial. Papers like Navia and Zweifel's 2004 "I Want
My MTV: Media, Freedom of Information and Democracy"
considered this topic.
In the future, NTSC TVs are likely to become even more inexpensive as
over-the-air NTSC broadcasting ends in the US.
How hard is it?
Texas Instruments' "application report" SLA1177
reports on using their MSP430 microcontroller (specifically the
MSP430F1121A) to generate 32-pixel-wide NTSC video signals in real
time. Digi-Key tells me that this microcontroller model costs US$2.13
in quantity, and apparently it's clocked at 8MHz without a clock
crystal. The appnote says the audio and video signals are generated
from an interrupt-handler routine, which presumably runs at least once
per pixel, or 32 times in 52 microseconds, 1.625 microseconds ---
every 13 clock cycles. Apparently generating this NTSC video is
enough to completely occupy the processor except during the vertical
Someone at Cornell is using an ATMEGA32 Atmel AVR to generate 128x100
pixel black-and-white NTSC video
don't say what the clock speed is, but they do mention that the CPU
can't do much else while it's painting the screen.
The actual monochrome encoding scheme
(http://www.williamson-labs.com/480_tv.htm) sounds relatively
A normal NTSC frame contains 525 lines, of which 485 are active. If
you were to display 640x480 pixels, you'd need to emit a pixel 640
times in 52 microseconds, or once every 81 nanoseconds --- a dot clock
of about 12 MHz. A microcontroller clocked at 20MHz would have a hard
time keeping up with this; perhaps the 70MHz LPC2101 ($1.75 in
quantity from Digi-Key) could cope, but it doesn't have enough RAM for
a framebuffer, barely enough for an 80x24 character generator.
So I conclude it's hard in the sense that generating nice video
requires significant hardware resources --- it can't run comfortably
as a small quiet task on a microcontroller doing other things. It can
easily run on a microcontroller that doesn't have other things to do,
though, and on a relatively capable microcontroller it might use a
small fraction of the available resources. If you had something as
simple as a FIFO, though, it could help dramatically.
I haven't found much information about NTSC color.
I'm assuming PAL is only slightly more difficult.
If you wanted to playback recorded video rather than generating a
character display, you'd have to retrieve a 1MB frame (assuming 24-bit
color at 640x480) 60 times per second, for about 220 megabits per
second. That's going to be hard to achieve with a purely serial
design, although several microcontrollers controlling different parts
of the screen could do it.
Not much has changed since the ZX-81.
More information about the Kragen-tol