none
Driver Development for Custom USB Keyboard. RRS feed

  • Question

  • Hello,

    I am trying to develop driver for a custom keyboard, what should be the first step with which i should proceed??

    I have tried HID-UMDF driver development, but problem is I am not able to figure out where to write the code for my key mapping, I have a custom volume control button and I want to map its input to my output. So where to write code for the same?? 

    Thank You

    Thursday, September 5, 2013 11:26 AM

Answers

  • If it is hid, you just open the handle to it and call hid.d APIs. Make sure your buttons and knobs are in a private TLC, not the keyboard TLC (which you can't open from an app). If onto your app is using the device and you are not hid compliant, use winusb.sys instead. The app talks to winusb.dll and you install the driver on the device and you can get whatever data you want in whatever format you want

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Saturday, September 7, 2013 2:18 PM

All replies

  • Hello,

    I have a new input device, I want to know how to develop a driver for it 

    Thank You

    Thursday, September 5, 2013 12:18 PM
  • When you say a new input device, is this something that truly does not fall into one of the categories of devices that people typically see?  If it does fall into a category use that model in Windows, if it is close to a Windows category then base your design on that.

    Assuming the device is totally new, you need to think about the user interface.  I recommend you create a user space DLL with a clean easy to use interface.  Make sure the interface reflects things like asynchronous I/O that Windows is based on.   Once you have the DLL interface designed, map this into a simple model to call the driver.  Note: if you can't make this a fairly simple mapping you probably have not designed the interface well to match Windows.  The reason for the DLL is if you decide you need to improve performance you can hide the changes in the DLL.

    You have not said how the new device is connected to the computer.  This connection dictates the driver sample that is best to start looking at for developing your driver.  The interfaces for a USB device are different than for a PCI device.  For that matter depending on the device whether the driver is developed with the User Mode Driver Framework or the Kernel Mode Driver Framework is dependant on the connection and the speed needed.

    No matter what the answers to the above are use on of the samples Microsoft provides with the Windows Driver Kit. Unfortunately, there are a large number of poor samples available from other souces on the Net.


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Thursday, September 5, 2013 1:10 PM
  • How is the device connected to the PC? Is the only custom thing the volume control? Is it on or off the input device?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Thursday, September 5, 2013 2:09 PM
  • Device is connected through USB, No its like a keyboard which is sort of keyboard one can see in radio stations. with volume controllers, filters etc.  I want to know how do I start writing driver for it??
    Friday, September 6, 2013 6:16 AM
  • Thank You sir,

    I am connecting my device with help of usb and it comes under HID class as it need human interaction one like in case of our standard keyboard, nut instead of normal keys i have filters and some volume control rollers. can you guide me how to proceed with the driver development of same?? Is it required to develop the whole driver?? or i can just map my keys in present windows keyboard driver??

    Friday, September 6, 2013 6:21 AM
  • Why does it not comply with the HID specification? That way, you get the in box driver for free

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, September 6, 2013 6:26 AM
  • I manufactured that device to control lights and sound around my party hall!! I did not bought it!

    It have a round volume control button and some filters on it! how can i pass the values of  those input please help me??  The input device is similar to prg v276 keyboard. please guide me how can I manage to provide this inputs to my application in windows. do i need to write a entirely new driver??

    Thank you 

    Friday, September 6, 2013 6:31 AM
  • Hello, Doron  can you guide me through this development process. I have a keybord similar to prg v276. with some different kind of inputs. What should I do?? develop whole new driver needed or not??
    Saturday, September 7, 2013 6:40 AM
  • Thank You Pavel :),

    But mine device is not a PRG product. I have manufactured that device and now want a driver to support it on windows! It is HID but how would I pass my inputs in the application running in my windows??

    Saturday, September 7, 2013 1:07 PM
  • Pavel, Can you guide me how to make my device HID compatible????? and talk to it in user mode?
    Saturday, September 7, 2013 1:10 PM
  • If it is hid, you just open the handle to it and call hid.d APIs. Make sure your buttons and knobs are in a private TLC, not the keyboard TLC (which you can't open from an app). If onto your app is using the device and you are not hid compliant, use winusb.sys instead. The app talks to winusb.dll and you install the driver on the device and you can get whatever data you want in whatever format you want

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Saturday, September 7, 2013 2:18 PM
  • Thanks Doron, your advice is really helpfull. Can you help me a little more?? I am not getting how to write TLC and if I am using winusb.dll how should i proceed ahead?? Do you have any sample code which can help me?

    Saturday, September 7, 2013 3:29 PM