(Right is a screenshot, but in reality the screen is clearer and brighter than the photo !)
CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB_DEVICEFS=y CONFIG_USB_EHCI_HCD=m CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_STORAGE=m CONFIG_USB_HID=y CONFIG_USB_HIDINPUT=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_FTDI_SIO=yUDEV has also change, and I now use this rule:
ATTRS{interface}=="MX2/MX3", DRIVER=="ftdi_sio", SYMLINK+="MX2MX3"
CONFIG_USB=y CONFIG_USB_DEVICEFS=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_FTDI_SIO=yI have also changed to udevfs and added this to my rules config to give me
/dev/MX2MX3
;
BUS="usb", SYSFS{interface}="MX2/MX3", NAME="%k",
SYMLINK="MX2MX3"
I also had to update my custom LCDproc client program as the 2.6.x
kernels break down the CPU usage into more detail. /proc/stat now has 7 CPU fields instead of 4
(new are IO wait and hard and soft IRQ) (it took me some time to find
out the details, man proc
is out of date: see /usr/src/linux/Documentation/filesystems/proc.txt
on your local filesystem).
Aug 2005: I now use the switches to allow me to either kill the local X server, or to call poweroff. The former is most useful in case an X app. locks up (I only have one machine so I can not remotely login to kill it).
I suspect that most of the Matrix Orbital model numbering system refer to the LCD colouring, the keypad, the number of rows etc and that the "LK202" is the relevant part (and the manual on the CD is actually called "LK202-24-USB_02.pdf".)
Also the display appears to be fundamentally a serial device: the USB model just has an extra USB to serial chip. So with the correct Linux module and patch any application that talks to a serial device can use the USB hardware.
You need this s/w installed:
I basically just followed these instructions: Matrix Orbital LK202-24-USB
Do not forget to enable the correct USB serial driver: CONFIG_USB_SERIAL=y and CONFIG_USB_SERIAL_FTDI_SIO=y (I already had USB builtin for my keyboard).
After rebooting my display appeared as device
/dev/usb/tts/0
but looks to the application like a
*serial* device.
cat /proc/bus/usb/drivers
and cat
/proc/bus/usb/devices
will give you some useful info: for the
latter find the block containing "S: Manufacturer=Matrix Orbital" and
check that the "ProdID" value is on the list patched into ftdi_sio.h
above (mine is "fa01").
I setup the driver config as below. NOTE: at first I used the default contrast (160) setting first but the display washed out with no readable text: it took some time before I realised the problem was simple to fix :-( I set it to 60 and it all looked fine !
Display LK202-25
Port /dev/usb/tts/0
Speed 19200
Contrast 60
This tested my display OK, but I ditched when I found:
It can also handle some keypad functions: switching between different screens that clients provide, and setting the contrast etc. depending on the device.
LCDproc comes with a default client: "lcdproc" that the user can run to display rolling pages of system information. Other clients can be found on the net, or you can write your own; lcdproc is written in C and some Perl examples are supplied. But as the server uses a simple TCP/IP socket the client and server can be on different machines, and the client can be written in any language :-)
Driver=MtxOrb
device=/dev/usb/tts/0
size=20x2
contrast=60
type=lkd
LCDd -d MtxOrb
- should give you
a splash screen: if nothing then check "device" and "contrast", if
jumbled characters check "size" and "type" ("k" for keypad model,
otherwise "lcd").
lcdproc
- should give you rolling
updates on your LCD.
Matrix Orbital (Manufactures site)
Matrix Orbital / MX-212 (direct link)