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

The video signal timing is controlled by software. Available resolutions include 640x480 and 800x600. At present, the maximum resolution is 1024x768 with a refresh rate of 50 Hz:

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. In its simplest form, it consists of UBB, ten resistors, and the VGA cable:

Each of the three analog color channels uses three resistors for lowering the 3.3 V logic voltage to the 0.7 V analog 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.