Labjack U12, A/D-Wandler und Digital-I/O

Der Labjack U12 ist ein USB-Gerät. Um es unter Linux zu betreiben wird also ein Kernel mit USB-Unterstützung gebraucht, also Kernelversion 2.4.x oder 2.6.x.

Systemvorbereitungen

Mindestens folgende Packete werden benötigt (z.B. mit Suse9.1):
gcc, gcc-c++, make, emacs, XFree86-devel, kernel-source,
eventuell auch noch benötigt werden: automake, libtool
Meine Beispielprogramme die Grafik benutzen benötigen noch: xtekplot1

Labjack-Treiber

Labjack wird schon ohne Treiber beim Einstecken vom Hotplug erkannt. Entsprechende Einträge in /proc/bus/usb/ werden gesetzt:
# more /proc/bus/usb/devices
...
P: Vendor=0cd5 ProdID=0001 Rev= 5.f6
S: Manufacturer=LabJack
S: Product=Labjack U12
...
# lsusb ...
Bus 001 Device 003: ID 0cd5:0001
...
Sollte das nicht funktionieren kann man noch folgendes versuchen:
# modprobe usbcore
# modprobe uhci_hcd

Packete

Eric's Labjack-Packet (linux-labjack-0.2): Erste Hürde beim Installieren war fehlerhaftes Makefile, nach entsprechenden Korrekturen hats funktioniert.

Neuerer Treiber von Sourceforge (linux-labjack.tar.gz): enthält Version 0.21 für Kernel 2.4.x und Version 0.31 und 0.32 für Kernel 2.6.x

Befolgen der Hinweise in der Datei INSTALL hat mit Suse9.1 mit Kernel 2.6.x funktioniert.

Erste Beispielprogramme

Was damals mit linux-labjack-0.2 funktioniert hat:

(damals mit Debian getestet, Neucompilieren des Kernels war nötig um USB zum Laufen zu bringen)
Erste erfolgreiche Tests: Analog Out, Analog In (AI0...AI3), Digitale Ausgabe (DIO0...DIO3)

Programme für den Labjack zu erstellen ist ohne Benutzung der Library auch kein Problem.
Hier schon mal ein paar kleine Testprogis und die dabei entstandene C++-Klasse: lauflicht.tar.gz
(Wie man die eingelesenen Analog-Werte kalibriert ist aber noch unklar)
Mein erstes richtiges Labjack-Programm: Oszilloskop

Beispielprogramme mit neuem linux-labjack (Version 0.31):

(auf Debian hats plötzlich nicht mehr funktioniert, drum neu probiert mit Suse9.1)
Die Umgehung des Firmware-Fehlers hat hier nicht mehr gleich funktioniert, also etwas umgeschrieben dann hats auch geklappt. Mit neuen Geräten (wenn der Firmwarfehler dann hoffentlich korrigiert ist) wird man dann wohl wieder Anpassungen machen müssen.

Noch ungelöste Probleme

Nach Neustarten des Rechners sind jeweils noch folgende Befehle unter root nötig:
# rmmod hid
# insmod labjack.ko
Danach muss das Labjack abgehängt und wieder eingesteckt werden.

USB-Links

www.linux-usb.org
linux-usb.org/FAQ
libusb
USB Mass Storage Devices

Elektronik-Links

PLL
Timer 555
Operationsverstärker

TODO

(Stand 28-Jan-2006)

Neues Modell: redlab-1008 (Feb.2008)

Dieses hat noch einen 37-poligen SUBD-Stecker mit 24Bit Digitial-I/O (82C55), sieht sonst gleich aus wie Labjack-U12. (Treiber vom Labjack-U12 probiert --> geht nicht)

Installation unter Kubuntu mit Linux-Kernel 2.6.22-14:
Einige Packete nachinstalliert: linux-source, usb-devel, hid-devel, ...
Neuen Treiber installiert: Von ftp://lx10.tx.ncsu.edu/pub/Linux/drivers/USB/ MCCUSBHID.1.26.tgz und dann noch MCCLIBHID.1.28.tgz jeweils mit "tar zxvf" entpackt und "make;sudo make install" gemacht.
(vielleicht wäre MCCUSBHID.1.26.tgz nicht nötig gewesen?)
Und um es als normaler User zu verwenden das gemacht:

$ cp 60-mcc.rules /etc/udev/rules.d
$ /sbin/udevcontrol reload_rules

"test-minilab1008" scheint zu funktionieren. (Status-LED blinken lassen geht)


("Damals" war: 30-Nov-2003)
Last update: 7-Feb-2008 / RPF