!K8055

!K8055 is a demo application to send data to, and display data from, a Velleman K8055 USB I/O card. Unfortunately the Castle and Simtec USB systems present completely different interfaces to the programmer, so there are two versions of the application here.

The main function of !K8055 is to show interested readers some ways to communicate with USB devices. If you need a K8055 card, you probably need it for a specific reason, so you will probably want to write your own driver. If you examine the code, you will see that over 80% of it is the GUI, and just a small part is USB code. The GUI also took me longer to write than the USB code.

!K8055 is freeware, and is released under the GPL. This means that you are free, not only to use it, but to alter it if you wish. Please consult the file "gpl" inside the application, which details the terms of the license. If you write your own code, having learned from my code here, I would urge you to release yours under the GPL too; but I'm not going to threaten you with lawyers if you use a few lines in a non-GPL product.

Iyonix users - IMPORTANT!

You must have updated your ROM to version 5.11, otherwise this programme WILL NOT WORK. There is one known remaining bug in the USB stack that will leak a handle if the card is unplugged while the app is still running. In turn, the result will often be a "Device not found" error at shutdown, which stops the shutdown process there and prevents power down until the error box is acknowledged. Remember to shut down !K8055 before unplugging the card.

UNIpod, Simtec USB podule and A9 users - IMPORTANT!

At time of writing, there is a problem that prevents operation of the K8055 card if the USB_HIDInput module is running. The K8055 claims to be an HID (an odd decision, but there you go). USB_HIDInput sees this HID and, although it doesn't claim the card (it is still free), nevertheless it holds on to the input endpoint, thus making it impossible for my (or any other) application to communicate with the card. You will see "Pipe is in use (error 9542428) at line 820" or something similar. The solution for now is to *unplug usb_hidinput (UNIpod or USB podule) or *rmkill usb_hidinput (A9), which clearly you can only do if you aren't using any real USB HIDs (keyboard, mouse, joystick, etc.) The long term proper solution is for us to lobby Simtec to fix their USB stack to stop it holding on to things it doesn't understand.

Download

You can download !K8055 for the Castle stack here and for the Simtec stack here.

For support: e-mail me at dave@davehigton.me.uk

Revision history

0.01C 2006 March 9 First issue, Castle stack

0.01S 2006 March 10 First issue, Simtec stack

0.02C 2012 August 27 Contact details updated, Castle stack

0.02S 2012 August 27 Contact details updated, Simtec stack

Page last updated 2012 August 27