# Alphacool USB-Display

## Gucky_der_Mausbiber

Nabend,

also nach langem Suchen im Netz und im IRC gebe ich erstmal auf. 

Ich habe mir vor 2 Tagen ein LCD USB-Display von Alphacool gekauft. Das ganze ist ein Vollgrafik-Display mit 240x128 Pixel Auflösung und wird wie gesagt am USB-Port betrieben (USB 1.1 oder 2.0). Software lag keine bei, LinuxSoftware gibt es auch nicht auf der Homepage. Als LCD-Chipsatz ist ein T6963C verbaut, als USB-Chip anscheinend ein Atmel 89C5130A-UM. Desweiteren sind 3 x LC7940N und 2 x LC7942K verbaut, wofür keine Ahnung.

Wenn ich es an den USB Port anschliesse wird es soweit auch erkannt, siehe

```
angler ~ # lsusb

Bus 005 Device 001: ID 0000:0000

Bus 004 Device 007: ID 060c:04eb EEH Datalink GmbH

Bus 004 Device 001: ID 0000:0000

Bus 003 Device 001: ID 0000:0000

Bus 002 Device 002: ID 046d:c01e Logitech, Inc. MX518 Optical Mouse

Bus 002 Device 001: ID 0000:0000

Bus 001 Device 003: ID 05e3:0760 Genesys Logic, Inc. Card Reader

Bus 001 Device 001: ID 0000:0000

angler ~ # lsusb -v -d 060c:04eb

Bus 004 Device 007: ID 060c:04eb EEH Datalink GmbH

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.10

  bDeviceClass          255 Vendor Specific Class

  bDeviceSubClass       255 Vendor Specific Subclass

  bDeviceProtocol       255 Vendor Specific Protocol

  bMaxPacketSize0        32

  idVendor           0x060c EEH Datalink GmbH

  idProduct          0x04eb

  bcdDevice            0.00

  iManufacturer           1 ALPHACOOL

  iProduct                2 ALPHACOOL USB DISPLAY

  iSerial                 3 1.0.0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           48

    bNumInterfaces          2

    bConfigurationValue     1

    iConfiguration          0

    bmAttributes         0x80

    MaxPower              200mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass    255 Vendor Specific Subclass

      bInterfaceProtocol    255 Vendor Specific Protocol

      iInterface              0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               0

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       0

      bNumEndpoints           2

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass    255 Vendor Specific Subclass

      bInterfaceProtocol    255 Vendor Specific Protocol

      iInterface              0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               0

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x02  EP 2 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               0
```

Naja, soviel zu den technischen Daten von dem Display.

Mein System besteht aus einem 64Bit gentoo mit dem aktuellesten stable Kernel. Ich habe ne Nvidia-Grafikkarte und einen Athlon64. Im Kernel wurden auch die Optionen für LCD's aktiviert, siehe 

```
angler ~ # cat /usr/src/linux/.config | grep LCD

CONFIG_BACKLIGHT_LCD_SUPPORT=y

CONFIG_LCD_CLASS_DEVICE=y

CONFIG_LCD_DEVICE=y

CONFIG_USB_LCD=y
```

Jetzt würde ich das gerne unterLinux betreiben. 

Im ersten Schritt dachte ich an die Anzeige von Systeminformation und im zweiten Schritt würde ich gerne selbst Skripte schreiben die auf dem Display ausgeben können (z.Bsp. echo "Hallo" > /dev/display). Naja, wie gesagt gibt es auf der Homepage weder einen Linux-treiber, noch Informationen zu dem Display.

Dumm gelaufen könnte man meinen, aber so leicht gibt man ja nicht auf und nach langer Suche habe ich dann auch 2 Tools gefunden (aber leider echt nur 2), namentlich lcd4linux und lcdproc ... okay:

1. lcd4linux

Das erste wirklich wirklich grosse Problem hier ist die Tatsache das lcd4linux keine(!) Grafikdisplays unterstützt, das heißt kann nurText ausgeben. Okay, wäre nicht das schlimmste. Dumm nur das der LCDUSB-Treiber dort nicht funktioniert. Zum einen steht auf der Homepage ne ganz andere Art den zu konfigurieren als in der installierten Config-Datei und zum anderen hat auch bisher nix funktioniert.

2. lcdproc

Da hatte ich grosse Hoffnungen. Nicht nur das es Grafikdisplay unterstützt, als treiber gibt esdort auch einen "t6963" .. also genau meiner, und laut Homepage gibt es auch einen LCDUSB-Treiber. Okay, also angefangen, als erstes mit dem t6963 Treiber, tja, leider funktioniert das nur wenn man das Display am Parallelport betreibt und nicht mit einem USB-Wandler. Also kann ich den Treiber nicht nutzen. Tja, und als ich dann versuchte den LCDUSB-Treiber zu aktivieren musste ich festestellen das es den gar net gibt, läßt sich nicht laden und in der Config steht auch nix dazu.

Das Ergebnis ist das ich das Display nicht einmal zum Leuchten gebracht habe, geschweige den das ich was ausgeben konnte. Und dabei dachte ich eigentlich das sowas möglich sein sollte, vorallem weil ja schon ein USB-Wandler eingebaut ist.

Habe es unter Windows mal getstet und da läuft es ohne Probleme. Benutzt sogar die gleiche USB-Lib wie Linux, die libusb von sourceforge. 

Jetzt überlege ich ob ich nicht irgendwie direkt auf das Display zugreifen kann? Also über C oder dergleichen bestimmt, aber das beherrsche ich leider null. Gibt es nicht ne Möglichkeit über die Kommandozeile die libusb anzusprechen und dazu zu bringen Daten und vorallem Grafiken auszugeben.

Oder hat jemand einen Tip wie lcdproc zum laufen bekommen kann mit dem Display?

Betreibt vielleicht sogar jemand das Dsiplay unter Linux?

Wie kann ich den USB-Bus direkt ansprechen, bzw. das Display?

Oder gibt es noch andere Tools/Progs die mir helfen könnten?

Ich weiß einfach nicht weiter und habe nur noch 2 Tage Zeit das umzutauschen, deswegen bin ich auch am verzweifeln.

----------

## Gucky_der_Mausbiber

Kann mir keiner helfen? 

Emin Problem ist das ich das Ding spätestens Samstag morgen zurück bringen muss wenn es nix wird ...  :Confused: 

----------

## bbgermany

was verstehst du unter usbwandler? ist das ein adapter, der von parallel auf usb umsetzt? wenn ja, wirst du dafür erstmal die entsprechenden treiber laden müssen. ich hatte mal ein ähnliches problem auf ner IBM x440, die hatter keinen seriellen anschluss, und die usv hatte keinen usb-port. also musste ein "wandler" her. der lief nur mit einem speziellen treiber.

----------

## Gucky_der_Mausbiber

Was ich mit "USB-Wandler" meine?  Gute Frage, ich habe einfach mal angenommen das dieser Chip ein USB-Wandler ist, da der LCD ansich ja anscheinend am Parallelport betrieben wird, aber das USB-Display eben ein fertiges Modul ist mit einem USB Anschluß. Deswegen nehme ich einfach mal an das der Chip dafür da ist die Signale vom USB-Port umzuwandeln, so, das sie auf dem Display dargestellt werden. 

Ob der Chip dafür die Daten von USB->Parallel umwandelt oder ob der Chip die Daten vom USB-Port direkt zur ANzeige nutzt weiß ich leider nicht.

----------

## bbgermany

also ich hab mir nochmal lcdproc angesehen. wenn du nicht ein echtes serielles oder paralleles display hast, sieht es damit recht schlecht aus  :Sad:  zumindest, was die version 0.4.5 von lcdproc angeht. du könntest aber mal die CVS der version 0.5.x versuchen. dort gibt es die möglichkeit mit libusb zu arbeiten. vielleicht hast du damit mehr chancen.

----------

## Gucky_der_Mausbiber

So, ich habe deinen Tip mal befolgt und mir den CVS-Snapshot runtergeladen, Version 0.5 ... habe das ganze dann auch installiert, aber irgendwie fehlt mir jetzt die Datei "/etc/LCDd.conf".

Wenn ich lcdproc per Portage installiere, wird die Datei angelegt. Habe dann meine lcdproc-Version 0.45 entfernt und auch die "alte" /etc/LCDd.conf gelöscht (muss ja ne neue Config geben, den in der alten gibt es keine Möglichkeit USB auszuwählen).

So, dann eben wie gesagt den Snapshot installiert, das ganze sogar beim ersten Durchgang schon fehlerfrei *freu* .... aber leider gibt es jetzt keine LCDd.conf mehr, ne Ahnung wo ich die finde, bzw. wie das "neue" Format aussieht?

----------

## bbgermany

liegt mit im source dir von lcdproc 0.5

----------

