Need an experienced expert in USB & PS2 keyboard and mouse input devices to regular PCs (Windows OS primarily but would expect this to work with all operating systems that run on a PC, like Linux).
This project is a request for a proposal on how to best accomplish the following goal:
1) Need to create a device that connects between a USB or PS2 keyboard and mouse, and a standard PC's USB or PS2 connector. See attached picture.
2) The device needs to be able to read the keystrokes, mouse button clicks, and mouse movements.
3) The device needs to be able to pass through input events to the PC with complete accuracy. And not induce any delay between normal behavior (speed) compared to the keyboard and mouse being directly connected to the PC.
4) The device can read, modify, and reproduce keystrokes.
5) The device can read, modify, and reproduce mouse buttons and mouse movement. The mouse movement reproduction must exactly match the input, unless automatically changed on purpose by the device's program.
6) The device needs to be able to be programmed with a script (or some kind of recompiled downloadable firmware).
5) The programming features include:
a. Ability to remap a key. So if a user presses the key "a," the device send a "b" character to the PC.
b. Ability able to cause repeated keystrokes. For example, if a user presses the key "a," the device sends "bbb." With delays between each character as programmed.
c. Ability able to cause combination of keystrokes. For example, if a user presses the key "a," the device sends "b c d d d." With delays between each character as programmed.
d. Ability to have keystrokes change mouse button behavior. For example, if a user presses the key "a," then it changes what happens when the user next presses a certain mouse button. For example, the mouse button1 normally is a left-click, but after the user presses the "a" key on the keyboard, all following mouse button1 presses send the character "b" to the PC instead of a left-click. Basically have the keyboard be able to remap the mouse buttons on the fly. Or the other way around, mouse remaps keyboard. The interoperability or remapping the mouse and keyboard dynamically is a key feature.
It is very possible that this goal may be accomplished with existing products or components. Some of these features are very similar to a keystroke and mouse logger. Your suggestions on how to best accomplish this goal with the lowest cost to manufacture is welcomed.
This project is just for a proposal on how such a device would be designed and made based on the above specifications. Actual budget can be suggested by applicant.
YES I KNOW THIS IS BEST DONE IN SOFTWARE. There is a very specific reason why I want the project goal to be realized in an external hardware device. Thanks!