views:

205

answers:

3

Hello,

I am not a developer, but I think that my question is interesting enough (and I am desperate enough) to post here on stackoverflow

My company uses a program written in C# to drive a kiosk PC that uses .Net 2.0 SP1 and a USB signature pad. The signature pad is a HID that uses the generic Microsoft HID driver.

We tried to install our software on a kiosk PC that uses a different brand of motherboard than we previously used. We moved from a Gigabyte board to an ASUS board. Other than the brand, the specs are identical, same north bridge, same south bridge, same CPU, same host controllers etc. Also, our install procedure is documented and hasn't changed in months.

On the new motherboard, the signature pad is recognized as a HID, installs without an issue, and the manufacturers software can run the device, but our software does not recognize that device is even connected. The only thing that has changed is the motherboard brand. The manufactures software that can initialize the device is not written in C#.

Any thoughts, suggestions, or solutions are welcome!!!!

A: 

Can you run some kind of debugger or logging on both boards and see what the status etc. is that the device is returning?

nzpcmad
But he's not a developer... Logging might be alright.
Robert Gould
+2  A: 

It's could possibly related to programing/but i am thinking its the hardware/driver issue.

You could try removing all drivers and reinstall new drivers under computer management.

Most new motherboards of a different model/brand require windows to be reinstalled.

Elijah Glover
+1  A: 

If it's not a hardware/driver issue then a few other things may be going on.

A bit (lot) of a stab in the dark, but it might be that the kiosk software might have a hard coded string or "magic number" buried inside of it, designed to identify a particular device in a certain configuration, especially if the software manufacturer designed it to work on just one particular board and config.

That shouldn't happen, but here on planet earth, it sometimes (too often) does. I have worked on POS software a long time ago that did things like this in order to enforce vendor lock in for hardware supply (not my idea).

I would look around to see what the hardware ids for the HID are on both boards, and see if they are any different.

Probably the best course of action would be to contact the software provider, but if that is not an option, you may be able to get some insights into the innards of the program, and any hardcoded device identifiers using reflector: http://www.red-gate.com/products/reflector/.

Note that as you are not a developer, this may just look like greek (insert any other language that you don't understand if you are fluent in greek), and explaining what it all means is way beyond the scope of this answer. But the thing to look for would be the hardware id of the HID from the first board, or anything else up the chain to the usb controller.

seanb
He just replaced the motherboard and didn't replace his signature pad
Elijah Glover
Replacing the motherboard can change the device enumeration order. If the software was hard coded to depend on the assigned enumeration number then the pad won't work until it's changed.
Adam Hawes