# Vector System Black

## Using the BeagleBone Black LCD port to drive a vector display

• http://elinux.org/24bit_LCD_for_BBB -- Doesn't work; /dev/fb always is initialized in 16-bit mode.
• Set kernel video mode to 512x512-24@60 and it is in 24-bit mode, but only 1 Hz.
• In 16-bit mode, every 16 bits are copied to the D0-D15 as is. Put X in D0-7, Y in D8-15 and it works great:
   fb[0] = X7 X6 X5 X4 X3 X2 X1 X0;
fb[1] = Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0;

• In 24-bit mode the bits are shuffled.
       uint8_t r = (y & 0xF8);
uint8_t g = (y & 0x07) << 5 | (x & 0xE0) >> 3;
uint8_t b = (x & 0x1F) << 3;

fb[fb_pix++] = r;
fb[fb_pix++] = g;
fb[fb_pix++] = b;


This means the bytes are (MSB first):

   fb[0] = Y7 Y6 Y5 Y4 Y3 ?? ?? ??
fb[1] = Y2 Y1 Y0 X7 X6 X5 ?? ??
fb[2] = X4 X3 X2 X1 X0 ?? ?? ??


The mapping of the additional pins to the bits in the frame buffer need to happen before it can be wired to the DAC.

## DACs

The R2R interferes with the BOOTSYS pins, plus it requires lots of parts. A dedicated DAC chip with a parallel input and clock is a better choice, and it will wire up easily to the LCD pins.

• DAC7821 - 20 MHz, 12 bit, 20 TSSOP. \$6.38 qty 10. 296-19540-5. Won't work since it is a current output, not voltage output.