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: peter AT (Peter Marschall)
  • Subject: [Lcdproc] Source of strange chars with Matrix Orbital VKD204 and LCDproc 0.5.2 located!
  • Date: Sun May 13 12:50:02 2007

Hi Ethan,

first let me thank you for your in-depth analysis.

BTW my LK202-25 works without problems using type "lkd".

On Monday, 7. May 2007 08:22, Ethan Dicks wrote:
> 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.

You are right.
I got this mixed up when I patched the driver.

The MO manuals are quite a mess with regard to the commands
understood by a certain display.
Sometimes the list of contents mentions other codes than
those found in the section referenced, sometimes the list
summarizing the commands differs from the detailed
sections, ...
I cannot exactly tell what's correct

And don't forget the amount of manuals: one for each product
(about 45) and sometimes up to 4 different releases !!!

To cut a long story short: the patch suggested above will be in
tonight's nightly tar ball (together with turning off autoscroll)

> 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).

I was in contact with MO whether they were able to give me
a list to map manual revisions to firmware releases.
Unfortunately they were not able to compile such a list.

So, I thought, it is better to use the newer commands so that
people that buy a new display have it supported.
I don't know how far back the support for the "new" commands
reaches, and what module/firmware combinations are exactly
supported and what are not.
Well, blame the missing documentation ;-))

Please see below for a discussion of the types.
Maybe our understanding of the types differs.

> 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()?

According to
section 10.4 it is \x99 (dec 153).

> 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%.

Hmmm, I guess you are sure of that since you got the hardware.
But I guess it is not only a few manuals that got it wrong.
All manuals I have looked at so far tell: 0=25%, ..3=100%.

I'd rather have it corrected in the code instead of documenting
the behaviour to have consistent behaviour for all drivers.

If the type of display is known, a simple patch such as
if (IS_xxx_DISPLAY)
promille = 100 - promille;
when setting (or evaluating -- dunno where's the better place)
the brightness should help.

Would you mind to play around with it (and extend you patch ;-)?

> 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.

I'm glad to hear that.

BTW I have only extended the MtxOrb driver and have only partially understood
the exact meaning of the type parameter:

Do you know the type values are supposed to map to the displays names or to
product IDs ?

Here's my idea (basically based on the first 2 characters of the product ID):

ID Product ID type (my understanding)
1 LCD0821 lcd
2 LCD2021 lcd
5 VK202-25 vkd
6 LCD4021 lcd
7 LCD4041 lcd
8 LK202-25 lkd
9 LK204-25 lkd
A LK404-55 lkd
B VFD2021 vfd
C VFD2041 vfd
D VFD4021 vfd
E VK202-25 vkd
F VK204-25 vkd
10 GLC12232 ?
13 GLC24064 ?
15 GLK24064-25 ?
22 GLK12232-25-WBL ?
24 GLK12232-25-SM ?
31 LK404-AT lkd
32 MOS-AV-162A ?
33 LK402-12 lkd
34 LK162-12 lkd
35 LK204-25PC lkd
36 LK202-24-USB lkd
37 VK202-24-USB vkd
38 LK204-24-USB lkd
39 VK204-24-USB vkd
3A PK162-12 ?
3B VK162-12 vkd
3C MOS-AP-162A ?
3D PK202-25 ?
3E MOS-AL-162A ?
40 MOS-AV-202A ?
41 MOS-AP-202A ?
42 PK202-24-USB ?
43 MOS-AL-082 ?
44 MOS-AL-204 ?
45 MOS-AV-204 ?
46 MOS-AL-402 ?
47 MOS-AV-402 ?
48 LK082-12 lkd
49 VK402-12 vkd
4A VK404-25 vkd
4B LK402-25 lkd
4C VK402-25 vkd

Do you agree with this?

I do not know whether this list, which is from section 12.3 of the
LK202-25 manual v3.0, is comprehensive.


Peter Marschall
peter AT

Archive powered by MHonArc 2.6.18.

Top of page