linux4media l4m320t
usb colour display module

disclaimer / info:

DISCLAIMER:
THIS IS EXPERIMENTAL SOFTWARE AND HARDWARE. USE AT YOUR OWN RISK. THE MAINTAINER(S) OF THESE PAGES AND THE DEVELOPER(S) OF SOFTWARE AND HARDWARE PRESENTED ON THESE PAGES CAN NOT BE HELD LIABLE UNDER ANY CIRCUMSTANCES FOR DAMAGE TO HARDWARE OR SOFTWARE, LOST DATA, OR OTHER DIRECT OR INDIRECT DAMAGE RESULTING FROM THE USE OF THIS SOFTWARE OR HARDWARE. IF YOU DO NOT AGREE TO THESE CONDITIONS, YOU ARE NOT PERMITTED TO USE OR FURTHER DISTRIBUTE THIS SOFTWARE OR TO USE ANY TEMPLATES FOR BUILDING HARDWARE PRESENTED HERE.

linux4media L4M320T usb colour display module:

description

L4M320T usb display modules are colour display modules with touchscreen and optional support for IR-decoding of certain remote controls and were developed by www.digitaldevices.de, but are now discontinued.
[l4m320t overview]
front and back of the display. when connecting an IR-sensor to the display several remote controls could also been used.
specifications
resolution 240x320
colours 64k (16bit)
controller display: Himax HX8347-D(T) + Cypress CY8C24894 USB microcontroller
adjustable contrast yes
extra features IR-sensor can be connected
supported since serdisplib 2.01
name in serdisplib "L4M320T"       (example: serdisp_init(sdcd, "L4M320T", ""); )

some images

[l4m320t testserdisp]
test image generated by testserdisp (with option ROTATE=270)
top ^

connecting the L4M320T USB display module:

intro

the L4M320T is not claimed by any standard kernel module and no kernel module providing ioctl is existing yet. thus only libusb is supported at the moment.

important

  • this driver supports two different categories of firmwares: one without and one with support for IR-controls.
  • firmware versions without support for IR have USB productID ee20, firmware versions with support for IR have productID ee21.
  • libusb needs to be installed on the system for serdisplib to be able to support this display module! (libusb will be dynamically loaded by serdisplib via dlopen()).

libusb

  • the vendor/production IDs for display modules without IR-support are: 4243/ee20 (hex)
  • the vendor/production IDs for display modules with IR-support are: 4243/ee21 (hex) or for newer controllers: 23ae/ee21 (hex)
  • the device-string for accessing the dislay is: 'USB:4243/ee20', 'USB:4243/ee21', or 'USB:23ae/ee21' respectivaly.
  • the following examples will contain vendor ID 4243. replace with 23ae if required.
  • the following examples will contain production ID ee21. replace with ee20 if required.
     
  • default device: 'USB:4243/ee21'
examples
configuration in lcd4linux
 Display SerDispLib {
   Driver 'serdisplib'
   Port 'USB:4243/ee21'
   Model 'L4M320T'
 }
configuration in graphlcd
 [serdisp]
 Driver=serdisp
 Device=USB:4243/ee21
 Controller=l4m320t
calling test program testserdisp
 testserdisp -n l4m320t -p 'USB:4243/ee21'
 testserdisp -n l4m320t -p 'USB:4243/ee21' -o 'BRIGHTNESS=50;ROTATE=90'
 testserdisp -n l4m320t
top ^

passing options through serdisp_init():

intro

using the third parameter of serdisp_init(), driver specific options and custom wiring can be set.
common information about passing options and customisable wiring can be found in a separate document.
    examples:
      serdisp_init(sdcd, "L4M320T", "INVERT=YES;ROTATE=90");
      serdisp_init(sdcd, "L4M320T", "BRIGHTNESS=80");
    

options

identifiershortremarkdefault
ROTATEROTrotate display (1 == 180 degrees)0
INVERTINVinvert display0
CONTRAST set display contrast5
ALARMHOURALHOURalarm hour0
ALARMMINUTEALMINalarm minute0
ALARMDAYSALDAYSalarm days (bitmask: %X6543210: bit 6: saturday, bit 5: friday, ..., bit 0: sunday)0
TOUCHSKIP skip a defined amount of initial touch events (improves accuracy)4
BRIGHTNESS sets brightness of display (by dimming current contrast level)100
ALARMMODE when to set alarm (right at the beginning or when quitting the driver)0

ranges, aliases

identifierrangealiases
ROTATE0, 1, 90, 180, 270YES=180, NO=0, TRUE=180, FALSE=0
INVERT0, 1YES=1, NO=0, TRUE=1, FALSE=0
CONTRAST0 - 10 
ALARMHOUR0 - 23 
ALARMMINUTE0 - 59 
ALARMDAYS0 - 0x7FOFF=0,ALL=127
TOUCHSKIP0 - 10OFF=0,DEFAULT=4
BRIGHTNESS0 - 100 
ALARMMODE0 - 3POST=0,IMMEDIATE=1,POSTDELAY=2,IMMEDDELAY=3
examples for alarm:
"alhour=23;almin=30;aldays=0x71"alarm at 23:30; 0x71 = %01110001 => alarm at saturday, friday, thursday, and sunday
"alhour=23;almin=30;aldays=all"alarm at 23:30; all= all days
"alhour=23;almin=30;aldays=0"alarm de-activated (because of alday=0)
top ^

tools

l4m320t_tool

this small utility is automatically compiled if serdisplib is configured with support for l4m320t-modules. it supports the following features:
  • firmware update
  • calibrate touchscreen
  • changing the boot logo(s)
  • setting alarm
the utility can be found in tools/ after compiling the library.
nota bene
some options only work with recent firmware versions!
usage:
  l4m320t_tool [<options>]

  Options: (default values in squared brackets)
    -p dev|port      output device or port, default: 'USB:4243/ee21'
    -i               print firmware version information and serial number
    -B id        [0] show a stored bootlogo; id=[0, 2]
    -c value     [5] contrast / brightness; value=[0, 10]
    -a "HH:MM"       set alarm time
    -d "%6543210"    set alarm days (bit field, to be entered as hexadecimal or decimal)
                       bit 6: saturday   bit 5: friday
                       bit 4: thursday   bit 3: wednesday
                       bit 2: tuesday    bit 1: monday
                       bit 0: sunday
                     examples:
                       -d 0x7F: %1111111 -> all days
                       -d 0x41: %1000001 -> saturday and sunday
                       -d 0:    de-activate alarm
    -f imagefile(s)  change up to three bootlogos (240x320, readable by libgd)
    -u firmwarefile  update firmware (.hex or .bin)
    -C               calibrate touchscreen
    -y               enforce certain actions (e.g. overwrite newer firmware version with older one
    -1               display module with firmware version < '90D'
    -v               verbose (-v repeated: <= 2: log to syslog, >= 3: log to stderr, >= 5: log to stdout)
    -V               version information
   
  • the following requirements must be met to be able ot change boot logos:
    • l4m320t has been compiled with libgd-support
    • Resolution: 240x320
    • processable by libgd
examples:
  l4m320t_tool                                  # show default (= first) bootlogo
  l4m320t_tool -B 1                             # show second bootlogo
  l4m320t_tool -i                               # print firmware version and calibration information
  l4m320t_tool -p "USB:4243/ee21" -i            # same, but set custom device path
  l4m320t_tool -1                               # add -1 for firmware version without IR-support (prodID ee20)
  l4m320t_tool -C                               # calibrate touchscreen
  l4m320t_tool -u firmware.hex                  # flash new firmware (.hex or .bin, .bin additionally requires option -y)
  l4m320t_tool -y                               # force an action refused by the tool (eg. downgrading firmware)
  l4m320t_tool -f bootlogo.png                  # change first bootlogo
  l4m320t_tool -f bl0.png bl1.png bl2.png       # change all three bootlogos
  l4m320t_tool -a "23:30" -d 0x41               # set alarm at 23:30, saturday (bit6) and sunday (bit0)
  l4m320t_tool -a "23:30" -d 0x7F               # set alarm at 23:30, all days
  l4m320c_tool -a "23:30" -d all                # set alarm at 23:30, all days (all = alias for '0x7F')
  l4m320c_tool -d 0                             # de-activate alarm
   
some images:
[l4m320t custom boot logo] [l4m320t calibration]
custom bootlogo, uploaded with l4m320t_tool calibrating the touchscreen
top ^

thanks:

special thanks go to
donating displays  *  www.digitaldevices.de
top ^

history:

2017-02-07 moving documentation to serdisplib page
2010-10-17 first release of documentation (SVN)
top ^

design by wolfgang astleitner, (C) 1998 - 2017