8 x 8 pixel red display

The 8 x 8 pixel red display is one of the first projects I did after a long hiatus. I wanted to build something useless and work on my C programming skills.

The schema was made in CadSoft Eagle, the layout was laser-printed overhead sheet and the board was etched on the kitchen. Nowadays I use MakePCB or Sparkfun‘s BatchPCB.

The schematic is really simple : a 74HCT595 as high side driver, and a 74HCT595 driving a ULN2803 as low side driver.

I kept the board simple as well so I could etch it myself.

The built up board :

The software bitbangs a couple of IO ports to control the two shift registers, intensity variation is done by changing the duty cycle of the leds. This example has 3 bits intensity (8 different intensities).  We can use these “8 pixels x 8 pixels x 3 bit” intensity as 3 bitmaps with 8 pixels x 8 pixels. The highest valued bitmap (the MSB of the intenisty) is shown 2 x als long as the second highest. The second highest value is shown 2 x as long as the LSB.

Example 2 :

Making character bitmaps is a lot of work. If you have access to a unix box of sorts you can use figlet and the 5×7 font to generate these for you.

This will result in a monospaced font which are not as pretty as the hand made fonts.

For instance, you can generate the character “0” with :

figlet -f 5x7 0 | tr ' #' '01' | sed "s/\([01]\{6\}\)/B8(\100),/"

And this will output :
B8(01000000),
B8(10100000),
B8(10100000),
B8(10100000),
B8(10100000),
B8(01000000),
B8(00000000),

I used Tom Torfs binconst macro to make the bitmaps usable.

Example 3 :