Info: OWL USB Connect(ing)
There have been a few posts in the review of the concerning this device being connected to a Linux box. Over the weekend I have done a few little tests to see what could be achieved, and here are my findings: First of all I connected the device to a USB port of an Ubuntu Server (9.10) and was happy to see that when I listed the USB devices I see a new device: # lsusb Bus 002 Device 003: ID 0fde:ca04 And this is encouraging, shame there is no description text to help with things. However, entering these codes into the for vendor or device, nothing is reported back. Less encouraging. I re-connected the OUC (OWL USB Connect) to a Windows XP. The device reports as: Tenx Nonstandard Device And XP also reports this as Vendor ID= 0FDE and Device ID= CA04 which at least is consistent. When you let XP install the driver for this, it believes this a ‘USB Composite Device’. Then a ‘USB Human Interface Device’ (HID), twice. Then a ‘HID-compliant device’, twice. All without using thesupplied driver CD. After all that, XP reports 2off ‘HID-compliant devices’ and 2off ‘USB Human Interface Device’. The Tenx device has now gone. Each of these new devices report the same vendor and device IDs as detailed above. I then un-installed theses devices and unplugged the OUC again. On installing back on the Linux system, I searched for new devices in the ‘/dev’ directory and checking they disappeared on removal of the OUC, discovered that the OUC installed as: /dev/hidraw0 /dev/hidraw1 I tried to ‘cat’ these devices, but nothing was returned. I used the following to get a more in depth result of the USB device: lsusb -v -d 0fde:ca04 and got the following: Bus 002 Device 005: ID 0fde:ca04 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0fde idProduct 0xca041x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 ** UNRECOGNIZED: 09 21 10 01 21 01 22 17 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) So, after a little search of the Internet, I found this bit of code, posted by Krizzz on . Although this code was designed to gain data from a digital scales, I think it should fetch data from OUC if it is churning anything out: #include <stdlib.h> #include <stdio.h> #include<sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <asm/types.h> #include <fcntl.h> #include <unistd.h> #include <linux/hiddev.h> #define EV_NUM 5 int main (int argc, char **argv) { int fd = -1; int i; struct hiddev_event ev[EV_NUM]; char name[100]; if (argc != 2) { fprintf(stderr, “usage: %s hiddevice – probably /dev/usb/hiddev0\n”, argv[0]); exit(1); } if ((fd = open(argv[1], O_RDONLY)) < 0) { perror(“hiddev open”); exit(1); } ioctl(fd, HIDIOCGNAME(100), name); printf(“OK name = %s\n”, name); printf(“Reading values .. \n”); while (1) { read(fd, ev, sizeof(struct hiddev_event) * EV_NUM); for (i = 0; i < EV_NUM; i++) { printf(“EV: PARAM %x : %d\n”, ev[i].hid, ev[i].value); } } close(fd); exit(0); } I compiled it with, as instructed: gcc -o hidtest -Wall -W hid.c And first tested with: ./hidtest /dev/hidraw0 This returned: OK name = Reading values .. After after 10minutes produced nothing else. I tried the same on ‘/dev/hidraw1′ and also got exactly the same back –nothing. So I’m at a bit of a loss as what to do next. It looks like you may need to send commands to the OUC in order for it to return data back to you. If you have any other ideas or suggestions for me to try, please drop me a line (or comment). #include <stdlib.h> #include <stdio.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <asm/types.h> #include <fcntl.h> #include <unistd.h> #include <linux/hiddev.h> #define EV_NUM 5 int main (int argc, char **argv) { int fd = -1; int i; struct hiddev_event ev[EV_NUM]; char name[100]; if (argc != 2) { fprintf(stderr, "usage: %s hiddevice - probably /dev/usb/hiddev0\n", argv[0]); exit(1); } if ((fd = open(argv[1], O_RDONLY)) < 0) { perror("hiddev open"); exit(1); } ioctl(fd, HIDIOCGNAME(100), name); printf("OK name = %s\n", name); printf("Reading values .. \n"); while (1) { read(fd, ev, sizeof(struct hiddev_event) *EV_NUM); for (i = 0; i < EV_NUM; i++) { printf("EV: PARAM %x : %d\n", ev[i].hid, ev[i].value); } } close(fd); exit(0); } VN:F [1.9.22_1171] please wait... Rating: 4.3/ 5 (4 votes cast) Info: OWL USB Connect(ing), 4.3 out of 5 based on 4 ratings Related posts: So what are the differences between the two types of... QR Barcode URL These bar-codes appear not only on web... One of the biggest reasons to install your own phone... While I have been looking into the design and installation... Recently I was working on a large Arduino project and...
January 9th, 2010 | Tags: , , , | Category: ,