LCDproc development and user support list

Text archives Help

[Lcdproc] Source of strange chars with Matrix Orbital VKD204 and LCDproc 0.5.2 located!

Chronological Thread 
  • From: ethan.dicks AT (Ethan Dicks)
  • Subject: [Lcdproc] Source of strange chars with Matrix Orbital VKD204 and LCDproc 0.5.2 located!
  • Date: Mon May 7 06:23:02 2007


I finally tracked down why 0.5.2 leaves strange chars in certain
places on the screen. In MtxOrb_backlight(), the command sent is {
0xFE, 0x89, [brightness] }. The command byte in the code is given in
hex, but 89 is the _decimal_ equivalent for setting display brightness
on a VFD. Removing the "\x" or replacing the constant with 'Y' to
match up with the style in the rest of the code works fine.

I can submit a patch once one final issue is resolved - in the rest of
the function, if the attached module is not of type "IS_VKD_DISPLAY"
(shouldn't that be "IS_VKD_DISPLAY || IS_VFD_DISPLAY"?), the
brightness value is scaled from 0-1000 to 0-255, which makes sense for
an LCD module, but then the command byte is 0x99. I've been over a
couple of MtxOrb manuals and can't find that in the command set. For
the older LCD displays, the command to set backlight on is 'B' (off is
'F'). It seems that if the backlight brightness is controllable in
software, it must be a newer command not supported by all LCDs (and
not documented in the manuals I've been reading).

Can anyone comment on which models of MO LCDs respond to either {
0xFE, 0x99, [n] } or { 0xFE, 99, [n] } and which one works? I can
easily submit a patch to at least send the correct brightness code for
VFDs, but perhaps there is more to tweak in MtxOrb_backlight()?

Also, somewhere, in LCDd.conf perhaps, there should be some mention
that for a VFD, a brightness of 0x00 is the brightest (100%) and 0x03
is the dimmest (25%). It is not what you might expect that putting a
brightness of 1000 in the LCDd.conf will give you a brighter screen
than using 0. The code doesn't have to change, but something should
be said to the user so it isn't confusing. Note that there could be
some developer confusion if one is merely reading manuals. I caught a
thread in the Matrix Orbital forums that at least one newer manual has
it wrong and incorrectly documents a brightness of 0x03 equaling 100%
and 0x00 equaling 25%.

With the patch in MtxOrb.h to turn off line scrolling and the patch to
MtxOrb.c to send the correct brightness code, LCDproc 0.5.2 works
great with my Matrix Orbital VKD204 again. Once I get an answer to
what else should be going on in MtxOrb_backlight(), I will be happy to
post a short patch to both of these files.

Keep up the good work, everyone!


Archive powered by MHonArc 2.6.18.

Top of page