Digital Media Photography Blogs > Photography

Making the NEC D16314AGJ-011 display controller chip work with MythTV status bars


In my initial MythTV article about hardware, I wrote that I had selected the Silverstone LC-03V because of the vacuum-fluorescent display (VFD). Although Silverstone boasted about the ready availability of Windows drivers, I had to do some digging. I discovered that the VFD used the NEC D16314AGJ-011 controller chip, which was described as being compatible with the well-known HD44780 chipset supported by LCDproc.

I didn't have any problems with the chip until I upgraded to MythTV 0.19...

In my initial MythTV article about hardware, I wrote that I had selected the Silverstone LC-03V because of the vacuum-fluorescent display (VFD). Although Silverstone boasted about the ready availability of Windows drivers, I had to do some digging. I discovered that the VFD used the NEC D16314AGJ-011 controller chip, which was described as being compatible with the well-known HD44780 chipset supported by LCDproc.

I didn't have any problems with the chip until I upgraded to MythTV 0.19. One of my favorite additions in MythTV 0.19 is the use of the VFD to create status bars for playback and recording. These status bars are composed of solid blocks, which are character number 255 to the controller chip. Unfortunately, in the NEC chip, ASCII character 255 is not the "solid block" character, but is an umlaut-y (ÿ). The status bar will be displayed as a series of such characters, so an almost-complete recording or playback will shown as the ugly series ÿÿÿÿÿÿÿÿÿÿÿ.

A little bit of Google magic led me to Jake Angerman's Linux jukebox setup tutorial. He had already faced the same problem, and pointed the way towards a solution. According to the NEC 16314 parallel controller data sheet, character #255 is indeed the unsuitable ÿ. By running Jake's program to map through the character set, I decided to replace character #255 with character #7.

In LCDproc's HD44780 driver, the unsurprisingly-named hd44780-charmap.h maps input characters to output characters. When MythTV (or any other program) passes a request to display character #255, the server will actually output the character from position #255 in the array. After scanning through the characters, I decided on character #7. The required change was simple. All I did was replace the 255 in the position in the array with a 7. Here's a patch against LCDproc 0.4.5:

mythtv@myth ~/lcdproc-0.4.5/server/drivers $ diff -u  hd44780-charmap.h.orig hd44780-charmap.h
--- hd44780-charmap.h.orig      2006-02-20 12:14:14.000000000 -0800
+++ hd44780-charmap.h   2006-02-20 12:36:28.000000000 -0800
@@ -96,4 +96,4 @@
 111,110,111,111,
 111,111,239,253,
  48,117,117,117,
-245,121,240,255};
+245,121,240,7};

The ambitious thing to do would be to figure out the code and write some special code for the NEC chip. It has a character generation RAM (CGRAM) area that allows you to program what is displayed. Rather than rely on a character the pre-exists in the CGRAM, in theory, I could write some code of my own that can draw a solid block.

Categories





AddThis Social Bookmark Button



Comments (2) | TrackBacks (0)
Read More Entries by Matthew Gast.

0 TrackBacks

Listed below are links to blogs that reference this entry: Making the NEC D16314AGJ-011 display controller chip work with MythTV status bars.

TrackBack URL for this entry: http://blogs.oreilly.com/cgi-bin/mt/mt-t.cgi/588

2 Comments

Anonymous said:

Jake Angerman said:

I'm glad I could help. The script that cycles through the character sets can be found at http://angerman.net/articles/jukebox/#lcdproc

Leave a comment


Type the characters you see in the picture above.

Topics of Interest

Related Books

Recommended for You

Archives


 
 


Or, visit our complete archive.  

Stay Connected