Velleman Board unter raspberry

Hallo,

ich habe ipsymcon erfolgreich mit einer Fhz und 1wire zum Laufen gebracht, nur das Vellemann Board will nicht.

Ich kann per Linux-Konsole nach dieser Anleitung (Raspberry Pi: Wie kann der Raspberry Pi mit Kali bzw. Debian Linux den K8055 von Velleman über Konsole und Python ansteuern? | Wenzlaff.de: Rund um die Programmierung) darauf zugreifen und die Ausgänge schalten.

Ich kann das Board in der Verwaltungskonsole hinzufügen, aber es erscheint nicht in Geräteliste des HID als übergeordnete Instanz.

Fehlt mir hier der richtige Treiber für das Board oder was mach ich falsch?

Gruß Schorsch

Das scheint wohl noch ein Fehler zu sein. Bei mir sehe ich es auch nicht :wink:

paresy

Bei mir verhält sich das genauso.

Ich kann über die Konsole des Pi das Board ansprechen aber nicht über das IPS

Hallo,

hab das jetzt erstmal mit zwei Batchdateien (k8055 -d:0 oder k8055 -d:1) auf der Linuxkonsole gelöst.


<?
if($_IPS['SENDER'] == "TimerEvent")
{
	shell_exec("sudo /home/pi/k8055_port0_aus");
	IPS_SetScriptTimer($_IPS['SELF'], 0);
} else {
	shell_exec("sudo /home/pi/k8055_port0_ein");
	IPS_SetScriptTimer($_IPS['SELF'], 2);
}
?>

Gruß Schorsch

Hallo zusammen,

mit den Standard Raspberry Images wird kein Treiber für das Velleman Board geladen.Unter Jessie 4.4’er Kernel bekomme ich folgende Ausgaben. Für Device 006 wird kein Treiber geladen.

pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 0403:f06f Future Technology Devices International, Ltd
Bus 001 Device 006: ID 10cf:5500 Velleman Components, Inc. 8055 Experiment Interface Board (address=0)
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@raspberrypi:~ $ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 6, If 0, Class=Human Interface Device, Driver=, 1.5M
|__ Port 5: Dev 5, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M

Wenn ich das richtig interpretiere ist das auch so gewollt: hid: blacklist Velleman data acquisition boards - Patchwork

Zitat: blacklist Velleman data acquisition boards
Ian Abbott - Feb. 13, 2013, 1:22 p.m.
These are simple data acquistion boards, not HID devices and are handled
by the vmk80xx comedi driver. At least one of them (10cf:5500)
misidentifies itself as a HID in its USB interface descriptor. Ignore
all these devices.

Die einzige Option scheint der Comedi-Treiber vmk80xx zu sein.

Hat es schon jemand geschafft diesen auf dem PI installiert zu bekommen?

Dank + Gruß

Henning

Hallo zusammen,

im Quelltest des PI in hid-core.c ist folgender Abschnitt:

case USB_VENDOR_ID_VELLEMAN:
/* These are not HID devices. They are handled by comedi. */
if ((hdev->product >= USB_DEVICE_ID_VELLEMAN_K8055_FIRST &&
hdev->product <= USB_DEVICE_ID_VELLEMAN_K8055_LAST) ||
(hdev->product >= USB_DEVICE_ID_VELLEMAN_K8061_FIRST &&
hdev->product <= USB_DEVICE_ID_VELLEMAN_K8061_LAST))
return true;

Wenn man ihn so anpassen und kompilieren würde, dass das Board wieder als HID-Devices erkannt werden würde, kann IPS das Board dann direkt ansteuern oder brauche ich trotzdem den comedi-Treiber?

Gruß

Henning

Dein Erklärung klingt gut - Sobald es als HID Device und nicht über den anderen Treiber behandelt wird, sollte es auch in IPS sichtbar sein und dann werten wir die Daten aus.

paresy

Hallo zusammen,

die Idee mit der „Quick and Dirty“-Lösung (Editierung der hid-core.c) und Neu-Kompelierung des Kernels funktioniert.

root@raspberrypi:/home/pi# lsusb
Bus 001 Device 005: ID 10cf:5500 Velleman Components, Inc. 8055 Experiment Interface Board (address=0)
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@raspberrypi:/home/pi# lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 5: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

root@raspberrypi:/home/pi# dmesg

[ 5.997636] usb 1-1.5: new low-speed USB device number 5 using dwc_otg
[ 6.178502] usb 1-1.5: New USB device found, idVendor=10cf, idProduct=5500
[ 6.191626] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.204975] usb 1-1.5: Product: USB K8055
[ 6.215002] usb 1-1.5: Manufacturer: Velleman
[ 6.374498] hid-generic 0003:10CF:5500.0004: hiddev0,hidraw0: USB HID v1.00 Device [Velleman USB K8055] on usb-20980000.usb-1.5/input0

Hat das Velleman Board den HID-Treiber, erkennt auch IP-Symcon das Board.

Gruß

Henning

Hallo,

es funktioniert mit 4.4 und Stretch wie oben beschrieben.

Schnittstellenauswahl beim K8055

Gruß

Henning

Hallo,

Auf Nachfrage „computerpap“ fasse ich einmal die notwendigen Schritte für den Kernel kompilieren mit einem angepaßten HID-Treiber für Velleman K8055 Board zusammen.

Erstmal eine Update von raspbian.

sudo apt-get update
sudo apt-get upgrade

Dann notwendige Pakete installieren:

sudo apt-get install git bc gcc make nano

Den Quelltext laden:

git clone --depth=1 GitHub - raspberrypi/linux: Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://www.raspberrypi.org/forum

Die hid-core.c editieren:

cd linux
nano drivers/hid/hid-core.c

In Nano mit STRG+W nach K8055 suchen und die folgenden Zeilen mit STRG+K löschen:

    case USB_VENDOR_ID_VELLEMAN:
            /* These are not HID devices.  They are handled by comedi. */
            if ((hdev-&gt;product &gt;= USB_DEVICE_ID_VELLEMAN_K8055_FIRST &&
                 hdev-&gt;product &lt;= USB_DEVICE_ID_VELLEMAN_K8055_LAST) ||
                (hdev-&gt;product &gt;= USB_DEVICE_ID_VELLEMAN_K8061_FIRST &&
                 hdev-&gt;product &lt;= USB_DEVICE_ID_VELLEMAN_K8061_LAST))
                    return true;
            break;

STRG+X und J zum Speichern.

Dann den Anweisung von Kernel building - Raspberry Pi Documentation folgen.

Kurzversion für einen RPI2 (Abweichung für RPI1 s. o.g. Link).

cd linux
KERNEL=kernel7
make bcm2709_defconfig

make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/
.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

Sudo reboot

Hatte bei meinem nicht übertakteten RPI3 leider Speicherfehler beim Kompilieren und eine CPU Temperatur von 82°C (kein Kühlkörper). Deswegen hat bei mir die Aufgabe mein 2’er RPI übernommen.

Das raspbian mit dem angepaßten Kernel läuft aber ohne Probleme nun auf meinem 3’er RPI und somit auch das Velleman Board.

Gruß

Henning