Access the board from Win32 API?


I purchased your board so that I could study USB programming for Windows, as well as FPGAs. But USB programming is the main reason. For the FPGA, I have written and simulated a circuit that dumps data to the USB port. (Thank you for your support earlier).

I would now like to access the data from a user-mode software program. However, I would like to use the Win32 API rather than the FrontPanel library. Is there anything that I should know, such as the driver’s GUID value , and if so, is it possible to receive that information?

Thank you for your time and help.



We don’t provide any details of our underlying API. Primarily because our business is in making this layer transparent to the user with a reliable, convenient abstraction. This underlying API may change from version to version and we do not intend to handle support for those bypassing this API.

However, if I wanted to find the GUID of a particular driver, I’d look in the driver INF file. :slight_smile:

If you’re interested in USB programming, you may want to consider Mac OS X or Linux as your platform to get started. Windows makes the whole USB interface unnecessarily complicated. Mac and Linux provide user-mode interfaces to the USB system. On all three platforms, “libusb” is available which provides a generic user-mode USB interface.


I get your hint. :slight_smile: I have been studying the Windows DDK and I have no interest in writing a driver for USB. :slight_smile: I am just trying to build a reliable hardware tool for managing several devices (it does firewire correctly right now, and now I am trying to do data acquisition with your USB board).

I agree with you about Mac OS X. It is so much easier to work with hardware using IOKit. But I work in an R&D lab for wireless communications, and Windows is the only thing I have available to work with. If only they would let me bring my iBook from home…

Thanks for the input though!


On the Windows platform, then, I’d suggest two options: use libusb. It’s portable. I don’t have any experience with the Windows version, but I think pre-v1.0 is getting to be pretty solid now on all three platforms.

The second option is to get the CyAPI and CyUSB drivers from Cypress. They do everything you’d want from a nice user-mode interface. And, since the XEM3001 uses a Cypress chip, you’re even legal.