UBB-VGA

This is an effort led by Werner Almesberger to use the UBB (Universal Breakout Board), a few resistors, and a VGA cable to create a workable VGA signal on the Ben Nanonote.

What it can do

At present, the maximum resolution is 1024x768 with a refresh rate of 50 Hz:

Other resolutions possible include 640x480 and 800x600.

The 16 colors are generated from a binary channel for red, green, and blue each, plus a binary luminance channel that affects all colors.

The hardware

The current design is based on the Universal Breakout Board (UBB) that plugs into the Ben's 8:10 card slot. The MMC controller in the Ben's Jz4720 CPU is tricked into considering the UBB-VGA board as a MMC/SD device and streaming the pixel data at a rate of up to 56 MHz.

The pictures below show a prototype that connects directly to a VGA cable:

 

The circuit is very simple. It consists of UBB itself, ten resistors, and the VGA cable:

Each of the three analog color channels uses three resistors for lowering the 3.3 V logical voltage to the 0.7 V VGA level and for mixing in the luminance (Y) signal. The tenth resistor pulls down the HSYNC/CMD line, to fake the "not busy" signal the MMC controller expects to receive from a MMC device when starting a block write.

The software

The driver currently runs in user space (with a lot of dirty tricks) and blocks all other system activity while running. It can display the test image shown above, the content of the LCD display, or a PNM image. The source code can be found here.