|
|||||||||||||||||||||||||
alphacool LCDIt started with the fact that my shiny new Mediabox case urged for a new, external display. After some research I decided to get one of those alphacool LCD display with a resolution of 240x128 in an external case. The display I used before has not proven to be worth the hassle. It was too small and too dark to use it in a comfortable way. Also it was not capable of displaying enough information to control the VDR just by using the display instead to fire up the TV set every time. These issues should be fixed by the new alphacool display. The BasicsThe external version of the display is embedded in a little case made of stainless steel which is obviously manufactured by alphacool in a small batch. The overall quality of the case is 'ok' though it doe not look the professional way one would expect. The case does have its manufacturing flaws. The edges are rough and sharp. This is not only a potential health risk, it could also damage the surface of some expensive furniture. The display is also available in other versions:
Actually I wanted to get the double sized 5 1/4"slot-in, but the new case has a cover which hides the both 5 1/4" slots and thus excludes the use of the slot-in version of the display since the display would be unusable hidden behind the cover. HardwareDisassembled the display consists of the following parts (picture on the right, from the upper left to the lower right):
The display can easily be assembled and disassembled. Placing the spacer is a little bit tricky though. The electronics of the module os nothing spectacular. However the module does have a professional look which suggests that the module is in fact manufactured by a 3rd party. Also the USB device ID points this out. The display is consists of an Atmel microcontroller, a dislay controller made by Toshiba and the display drivers. There are also the usual parts like oscilators, capacitors, resistors etc present on the PCB plus some additional connectors with unknown functions. A closer look on the display controller reveils the wide spread T6963 display controller. The commonly well known LCD controller by Toshiba has a solid base in the open source community and is also supported by the serdisplib project which is maintained by Wolfgang Astleitner. The datasheet of the controller can easily be found on the net and describes the features in depth. The USB interfacing and the display controller is done by a little Atmel microcontroller using a 3rd party firmware. According the USB device ID the firmware is maintained by EEH Datalink GmbH. But this is only a wild guess. The microcontroller is an Atmel 89C5130. The datasheet is also available through the net. The controller has a rich feature set compared to its size. It is filled with about 1KByte RAM, 16KByte flash memory which is in-system programable via the USB interface, a 4KByte EEPROM for the boot loader and a 256 Byte RAM scratchpad inside the CPU core. The integrated USB interface is capable of USB 1.1 and 2.0. Along with that there is the usual stuff like a bunch of I/O pins, counters and so forth. In theory it should be possible to write and flash an own firmware to the controller, but this is a little bit oversized for this project. SoftwareThe display is shipped with a CD which may contain the Windows software - 'may', because I don't really know this since I didn't insert the CD even once. I don't use Windows on my Mediabox system. The net declares no driver support for Linux. An Before I dumped the display I took a look at the driver and included support for both variants of the module (the little version which I do not own couldn't be tested). Many thanks to Nessie for reveiling the control codes of the microcontroller and many thanks to Wolfgang Astleitner for the great support on the display buffer code. Also a huge thanks to Faisal Kalapatt who bounced ideas with me on the optimized transfer. Features:
Starting with version 1.97.7 the driver is part of the serdisplib project. The following text describes the patch process against version 1.97.6. This process is not required if you use the current version of the serdisplib. Installation: The driver is shipped as a patched again version 1.97.6 of the serdisplib package. To compile the library with USB support enabled you'll have to have libusb installed. In order to set this up you'll also need to have the CONFIG_USB_SUSPEND flag of the kernel deactivated, beginning with libusb version 0.1.12. This ensures that the display is recognized properly (see also First some things need to be set up:
If libusb is missing you'll have to compile and install this prior to compile serdisplib. I will not lay this out here since it is rather straight forward and shouldn't be a problem. Then unpack and patch serdisplib: # tar xvzf serdisplib-1.97.6.tar.gz Followed by configure and make: # ./configure --enable-libusb ... and a final test: # src/testserdisp -n ALPHACOOL -p usb:060c/04eb [-o "OPTALGO=0"] The display should now present you with the serdisplib test pattern. Appending OPTALGO=0 deactivates the optimized display transfer. This may help in case of a broken graphic output (pixel garbage). The test tool offers a little shell which can also be used to test the rotation feature. If the picture is rotated by 90 degrees the picture will be flushed so the display is empty then. In this case you'll have to issue the command 'test' to generate a new test pattern. Rotation by 180 degrees work out of the box since the width and height remain the same. 90 degree steps swap width and height and therefore the picture cannot be displayed anymore. User who want to use the whole package with GraphLCD can try the following configuration file snippet for /etc/graphlcd.conf: [serdisp] History
Downloads
|
|||||||||||||||||||||||||