Small steps


I have found a Linux C program that controls the K8055 board. I am trying to adapt this to the K8090 board. So far I have the board being recognized by the Linux OS.

usb 1-1: New USB device found, idVendor=10cf, idProduct=8090
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
cdc_acm 1-1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-1:1.0: ttyACM0: USB ACM device

Under my own program control using parts of the K8055 program, the terminal output is:

Velleman Device Found @ Address 004 Vendor 0x010cf Product ID 0x08090
Got driver name: dummy
Disconnected OS driver: Success
usb 1-1: usbfs: interface 0 claimed by usbfs while ‘k8090’ sets config #1
Found interface 0
Took over the device
Write retry
Write retry
Write retry
Read retry
Read retry
Read retry

As can be seen, the K8090 is enumerated properly but writing/reading to the device is failing. Without disassembling the windows driver, can anyone tell me how many bytes are supposed get sent to the K8090? Where can I find a command list?

Are these two defines proper?
#define USB_OUT_EP 0x01 /* USB output endpoint /
#define USB_INP_EP 0x81 /
USB Input endpoint */


The K8090 is an USB Communications Device Class (CDC) which uses the Windows built-in driver usbser.sys to create a virtual COM port. We do not know anything about the inner workings of the driver, though the driver’s source can probably be found in the Windows Driver Development Kit.

But maybe linux also has a CDC driver readily available…

VID and PID are correct
VID = 10cf (Velleman)
PID = 8090 (K8090)