[mythtv-users] VFD finetuning
Andrew Lyon
andrew.lyon at gmail.com
Thu Nov 9 13:16:01 UTC 2006
On 11/9/06, Andrew Lyon <andrew.lyon at gmail.com> wrote:
> On 11/9/06, Andrew Lyon <andrew.lyon at gmail.com> wrote:
> > On 11/9/06, Peter Carlsson <maillist.peter at home.se> wrote:
> > > Hello!
> > >
> > > I have a SilverStone LC03V and would like to have the
> > > VFD display to show some more information. How do I
> > > configure it to display system information i.e. memory
> > > usage, temperature, CPU usage etcetera?
> > >
> > > I am from Sweden and when MythTV displays information
> > > about recordings etcetera it doesn't show swedish
> > > characters correctly. How could I change the character
> > > set to at least show 'a' and 'o' instead of swedish
> > > characters?
> > >
> > > I am running Debian (testing).
> > >
> > > Best regards,
> > > Peter Carlsson
> > > _______________________________________________
> > > mythtv-users mailing list
> > > mythtv-users at mythtv.org
> > > http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
> > >
> >
> >
> > You will find that is not going to be easy, at least not if you have
> > the same problem that I ran into.. I have a silverstone vfd that fits
> > into a 5 1/4 drive bay, when it was used with LCDProc I found that
> > some characters were not displayed correctly, e.g. the blocks used to
> > display volume bars were displayed as symbols.
> >
> > I got the manual for the vfd display used in the silverstone vfd unit
> > and quickly realised that it came with a different character set than
> > LCDProc was designed for, however the LCDProc software can also send
> > bitmapped characters, as the missing/incorrect characters were simple
> > bars (and partial bars) it was easy to create bitmaps for them and
> > patch the source code to use those instead of the built in characters.
> >
> > But if you are talking about "real" letters and symbols it will be
> > harder, as you will have to draw them using 0's and 1's!
> >
> > The patches that I made were lost a long time ago when LCDProc was
> > upgraded by portage and I've never bothered to recreate them, but it
> > wouldnt take me too long to do so, so if you'd like me to post the
> > details let me know.....
> >
> > Andy
>
> I retract that statement!, I found the patch, its very simple but you
> can get the rough idea of how to create and assign bitmap characters:
>
> --- /usr/src/build/lcdproc-0.4.5/server/drivers/hd44780.c 2004-12-08
> 20:34:12.000000000 +0000
> +++ /usr/src/build/lcdproc-0.4.5/server/drivers/hd44780.c.orig 2004-12-08
> 19:45:12.000000000 +0000
> @@ -541,16 +541,7 @@
> 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1,
> };
> - char h[] = {
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - };
> +
> HD44780_set_char (1, a);
> HD44780_set_char (2, b);
> HD44780_set_char (3, c);
> @@ -558,7 +549,6 @@
> HD44780_set_char (5, e);
> HD44780_set_char (6, f);
> HD44780_set_char (7, g);
> - HD44780_set_char (9, h);
> }
>
> /////////////////////////////////////////////////////////////////
> @@ -608,21 +598,12 @@
> 1, 1, 1, 1, 0,
> 1, 1, 1, 1, 0,
> };
> - char e[] = {
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - 1, 1, 1, 1, 1,
> - };
> +
> HD44780_set_char (1, a);
> HD44780_set_char (2, b);
> HD44780_set_char (3, c);
> HD44780_set_char (4, d);
> - HD44780_set_char (9, e);
> +
> }
>
> /////////////////////////////////////////////////////////////////
> @@ -631,12 +612,12 @@
> void
> HD44780_vbar (int x, int len)
> {
> - char map[9] = { 32, 1, 2, 3, 4, 5, 6, 7, 9 };
> + char map[9] = { 32, 1, 2, 3, 4, 5, 6, 7, 255 };
>
> int y;
> for (y = HD44780->hgt; y > 0 && len > 0; y--) {
> if (len >= HD44780->cellhgt)
> - HD44780_chr (x, y, 9);
> + HD44780_chr (x, y, 255);
> else
> HD44780_chr (x, y, map[len]);
>
> @@ -651,11 +632,11 @@
> void
> HD44780_hbar (int x, int y, int len)
> {
> - char map[6] = { 32, 1, 2, 3, 4, 9 };
> + char map[6] = { 32, 1, 2, 3, 4, 255 };
>
> for (; x <= HD44780->wid && len > 0; x++) {
> if (len >= HD44780->cellwid)
> - HD44780_chr (x, y, 9);
> + HD44780_chr (x, y, 255);
> else
> HD44780_chr (x, y, map[len]);
>
> @@ -728,7 +709,7 @@
> int row, col;
> int letter;
>
> - if (n < 0 || n > 9)
> + if (n < 0 || n > 7)
> return;
> if (!dat)
> return;
>
>
> Andy
>
doh, think I diffed the files the wrong way around, sorry about that,
its the first time ive had to make a patch output from my own changes
so bear with me..
--- /usr/src/build/lcdproc-0.4.5/server/drivers/hd44780.c.orig 2004-12-08
19:45:12.000000000 +0000
+++ /usr/src/build/lcdproc-0.4.5/server/drivers/hd44780.c 2004-12-08
20:34:12.000000000 +0000
@@ -541,7 +541,16 @@
1, 1, 1, 1, 1,
1, 1, 1, 1, 1,
};
-
+ char h[] = {
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ };
HD44780_set_char (1, a);
HD44780_set_char (2, b);
HD44780_set_char (3, c);
@@ -549,6 +558,7 @@
HD44780_set_char (5, e);
HD44780_set_char (6, f);
HD44780_set_char (7, g);
+ HD44780_set_char (9, h);
}
/////////////////////////////////////////////////////////////////
@@ -598,12 +608,21 @@
1, 1, 1, 1, 0,
1, 1, 1, 1, 0,
};
-
+ char e[] = {
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ };
HD44780_set_char (1, a);
HD44780_set_char (2, b);
HD44780_set_char (3, c);
HD44780_set_char (4, d);
-
+ HD44780_set_char (9, e);
}
/////////////////////////////////////////////////////////////////
@@ -612,12 +631,12 @@
void
HD44780_vbar (int x, int len)
{
- char map[9] = { 32, 1, 2, 3, 4, 5, 6, 7, 255 };
+ char map[9] = { 32, 1, 2, 3, 4, 5, 6, 7, 9 };
int y;
for (y = HD44780->hgt; y > 0 && len > 0; y--) {
if (len >= HD44780->cellhgt)
- HD44780_chr (x, y, 255);
+ HD44780_chr (x, y, 9);
else
HD44780_chr (x, y, map[len]);
@@ -632,11 +651,11 @@
void
HD44780_hbar (int x, int y, int len)
{
- char map[6] = { 32, 1, 2, 3, 4, 255 };
+ char map[6] = { 32, 1, 2, 3, 4, 9 };
for (; x <= HD44780->wid && len > 0; x++) {
if (len >= HD44780->cellwid)
- HD44780_chr (x, y, 255);
+ HD44780_chr (x, y, 9);
else
HD44780_chr (x, y, map[len]);
@@ -709,7 +728,7 @@
int row, col;
int letter;
- if (n < 0 || n > 7)
+ if (n < 0 || n > 9)
return;
if (!dat)
return;
Andy
More information about the mythtv-users
mailing list