matrixorbital

logo.jpg

This driver supports the serial and USB interface alphanumeric display modules by Matrix Orbital Corporation and some SureElectronics USB LCD boards.

lcd2041.jpg

The USB versions simply use an USB-to-serial converter (probably pl2303), and use the same protocol as on the serial port. So you just have to change the Port entry in the config file to get them to work.

The driver fully supports the text, bar and icon widgets.

All the cool features of the newer displays (GPO's, PWM outputs, fan speed measurement) are supported by the driver.


Display <name> {
    Driver    'MatrixOrbital'
    Model     <string>
    Port      <string>
    Speed     <number>
    Contrast  <number>
    Backlight <number>
    Icons     <number>
}

Driver'MatrixOrbital'
Modelsee below
Portserial device the display is attached to (e.g.'/dev/ttyS2')
Speedthe baud rate from the display must match this value. Possible values are 1200, 2400, 9600 and 19200
Contrastinitial contrast value, 0..255 (default is 160)
Backlightinitial backlight state, 0..255 (note: this means 'backlight on for n minutes)
IconsNumber of user-defined chars reserved for Icons (default: 0)

The driver supports various different MatrixOrbital displays, which can be selected with the Model parameter:

ModelSizeProtocol
LCD08212×81
LCD20212×201
LCD16414×161
LCD20414×201
LCD40212×401
LCD40414×401
LK202-252×202
LK204-254×202
LK404-554×402
VFD20212×201
VFD20414×201
VFD40212×401
VK202-252×201
VK204-254×201
GLC12232???1
GLC24064???1
GLK24064-25240×641
GLK12232-25122×321
LK404-AT4×402
VFD16212×161
LK402-122×402
LK162-122×162
LK204-25PC4×202
LK202-24-USB2×202
LK204-24-USB4×202
DE-LD0112×163
DE-LD0214×203

The models differ (apart from the protocol) in the size only.

There's an old Protocol (1) an a newer one (2). All current models use Protocol 2, which supports Display autodetection. So if you have a newer display, you can try to omit the 'Model' parameter, and see ic LCD4Linux auto-detects your display.

Sure electronics USB LCD boards like DE-LD011 (16×2) and DE-LD021 (20×4), which emulates MatrixOrbital protocol, uses protocol 3. Also, You have to set Speed as 9600 in this case.


The driver provides the following functions (depends on the display model):

LCD::contrast()return current contrast setting
LCD::contrast(n)set contrast to n (0..255)
LCD::backlight()return current backlight setting
LCD::backlight(n)set set backlight off (0) or on for n minutes (1..255)
LCD::GPO(n)return value of GPO number n (1..6)
LCD::GPO(n, v)set GPO n(1..6) to value v (0..255) see note below!
LCD::GPI(n)return value of RPM input number n (1..6)

Note: Some MatrixOrbital Displays are able to control the speed of one or more fans, and read the speed back. This has been implemented using the GPIO driver. As these displays have normal GPO's, too, and the number of fans differs from model to model, the normal GPO's are turned on with a value of 255 (and not 1, as you'd probably expect), and there's sort of a hysteresis in turning it off again….

Example for a LK-202: (three fan outputs, three normal GPO's)

LCD::GPI(1)return speed of fan 1
LCD::GPI(3)return speed of fan 3
LCD::GPI(4)returns always zero (only three fans supported)

fan PWM control:

LCD_GPO(1,0)turns fan 1 off
LCD_GPO(1,128)sets fan 1 to 50%
LCD_GPO(1,255)sets fan 1 to 100%

normal GPO control:

LCD_GPO(4,0)turns GPO 4 off
LCD_GPO(4,128)GPO 4 is still off
LCD_GPO(4,254)GPO 4 is still off
LCD_GPO(4,255)turns GPO 4 on
LCD_GPO(4,254)GPO 4 is still on!
LCD_GPO(4,1)GPO 4 is still on!
LCD_GPO(4,0)now turns GPO 4 off

at the moment (lcd4linux-0.10.0) there is no support for keypads.


  • matrixorbital.txt
  • Last modified: 2020/07/17 18:33
  • (external edit)