Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Driver for generic Windows Recognized USB HMI (Ultimarc)

Hello World!
 
What I am asking may not be possible, but here goes the config details:
Windows XP (SP2), Labview 8.2 (using whatever NI-DAQmx goes with that...) USB bus 2.2 and lower compatable.
 
Now, I've acqiured a few different cheap and simple USB bus HMI (human-machine interface) cards from the company below:
 
 
These cards are sold by the company for use as custom game controller interfaces.  They would have unlimited value if usuable as inputs for Labview apps.  These things sell for about $29.00 USD.
 
 
One is straight digital input, and one is mixed digital and analog (I-PAC is digital, A-PAC is mixed digital and analog)
When plugged into the USB bus, they are immediately recognized as HMI's and configurable in Windows and all is good.  You can even tune the inputs using the Windows game tuner screen (joystick response, button assignment, etc)
 
Problem is that NI-DAQmx will not acknoledge their existance, even when it is plugged in and Windows does.
Can I force NI-DAQmx to use the valid and existing Windows driver?
How can I get NI-DAQmx to see these?  Do I need to build a custom USB driver using VISA?
 
USB is the greatest, but I realize is complicated protocol and is a bit over my head to be custom making drivers for cheap devices.
 
Can anyone help or at least point me in the right direction?  This is making my head hurt!
 
Thanks!
 
BC
0 Kudos
Message 1 of 11
(6,436 Views)

DAQmx is only for NI's DAQ devices and they are completely different than an HMI class device. You could use the Driver Wizard as explained here to create a USBRAW interface but that would require you to remove the windows HMI driver that automatically recognizes your device. That probably would not be a good idea.Smiley Wink You can't have two different drivers installed for the same device.

Your only option to use this device would be to use the Call Library Function Node to access the windows driver.

p.s. For roughtly the same price, there is the DLP-USB-245M from FTDI. These come with a driver that makes them appear as a serial port and are very easy to interface to.

Message 2 of 11
(6,419 Views)

Thanks Dennis,

So, I think I understand the USB-RAW & BULK difference with VISA.  Time to get out the manual.

I would say that would be the way to go, although I wasn't prepared to dig that deep into VISA...  Perhaps the next rainy day.  I just really see a value for the effort here, if the effort is reasonable.  That, and I can still use them as custom game pad cards.  They have screw terminals built right on them.  No chip socket required.

Will try "Call Library Function Node" to see if I can somehow snoop or break-out and collect/view commands and communication.

If I can indentify the chip used on these devices (the ultimarc ones) might it be possible to get the command set list for the chip from the mfgr and save some time if I end up writing a driver? 

0 Kudos
Message 3 of 11
(6,413 Views)

Well, as I mentioned, you really don't have the option of using VISA. The device is automatically recognized as an HMI class device. the VISA wizard creates a cutom inf file that says to use VISA. However, the only way this custom inf file will be used is if you prevent the os from recognizing an HMI class device. You have to delete the hmi driver from the os and that would kill any USB keyboards or mice.

I have not dug into the HMI class specs but you should be able to find generic information on the class driver without getting information from the vendor. Start at http://www.usb.org/developers/devclass_docs/.

I just thought of something else. LabVIEW has the Input Device functions. One of these is for a joystick so you may be able to read from the device using this. I'm not sure if there is a way to write to it though.

Message 4 of 11
(6,407 Views)
BC,

With regards to using a VISA driver, I think you should be able to go to device manager and update the driver for the device, and select the VISA driver from the list you get when you choose 'Install from a specific Location' and then 'Don't Search. I will choose the driver to install'. Of course, you must have created and installed the VISA driver before doing this. But, you should be able to use the VISA driver for your device even though Windows recognizes it as a generic HMI device.

Pankaj
0 Kudos
Message 5 of 11
(6,397 Views)
I hadn't thought about installing the driver that way. Assuming that the USBRAW information can be obtained, it would be worth trying.
0 Kudos
Message 6 of 11
(6,391 Views)
Pankaj & Dennis,
 
Can I do this:  I already know there exixts a Windows driver that works perfectly with the USB device.  This is a fact.
I can find the driver that Windows likes for this (HMI or HID as they call it...) and I open the .inf file.
 
Next, looking Inside the .inf file, I can see assignments and classes, HEX address, etc.  Can I transplant the data into VISA?  Can I pull the intire .inf file into VISA and save it so that NI-DAQmx likes it?  Can I edit the .inf file using VISA and save it as a new file?
 
I know I am probably way over-simplifying this... but why cant this be done this way?
 
It can't be that easy, could it?
0 Kudos
Message 7 of 11
(6,365 Views)
BC,

First things first. NI-DAQmx and VISA are completely unrelated things. NI-DAQmx is the driver for NI-DAQ devices. VISA is an industry-wide API used for communicating to instruments. The benefit of VISA is that you can use the same API to communicate to different instruments over different types of buses - PCI, Serial, TCPIP, etc. NI-VISA is NI's implementation of VISA.

Now, with regards to creating a VISA driver for your device, you should follow the link provided by Dennis in his first reply. However, being able to create and install the VISA driver only  means that you will be able to communicate with the instruments. What to communicate (i.e. what commands to send it) and what kind of responses to expect will still totally depend on the device itself. So, again, it looks like the easiest way would be to use the Call Library Function Node, as Dennis mentioned in the same post. This way you will be able to use the original windows driver, which we know works great, and still be able to communicate to the instrument using Labview.

Let us know if this helps.

Thanks,
Pankaj

0 Kudos
Message 8 of 11
(6,359 Views)
Pankaj is correct. The inf file that is there now will do you no good. The inf file for a NI-VISA USBRAW device is quite different. And if you have the information for the four data fields that the wizard requires, only takes a few seconds to gnerate anyway. That's the easy part. The hard part is getting the low level commands.
0 Kudos
Message 9 of 11
(6,348 Views)

This device may show up using the initialize joystick and Query VIs.

I'm curious about this device to as a simple input device.

Byron

0 Kudos
Message 10 of 11
(4,554 Views)