Direct client

Looking for a USB Keyboard Windows OS Driver Developer for a custom made keyboard with 120 keys (16 more than the ANSI 104 key keyboard)

Anywhere  ‐ Remote
This project has been archived and is not accepting more applications.
Browse open projects on our job board.

Description

Hello,
I am looking for a Device Driver developer for a Custom designed USB Keyboard for Windows OS.
Below is a copy paste from the document which has the requirements.
I have tried to include as much as I could quickly think of.
Anyway please feel free to contact me anytime as many things may not be clear.
Cheers,
Vikas

This is planned to be a multi-script(multilingual) keyboard. Probably supporting many more scripts, but my initial target is only for 2 scripts, Latin(English) and Devanagari(Hindi). (Although I hope the code to be written such that it can easily be extended later for other scripts.)
All the keys are the same keys found on most keyboards except the ones that are shown in yellow colour.
The keys in yellow are the new keys which has been added by me.
The yellow keys will have different scan codes (make and break codes) and thus characters will be assigned to these based on the script chosen.
While the scan codes for the rest of the keys will remain the same as they are in a standard ANSI windows keyboard of 104 keys.
Additional mention is the Fn key about which I am not currently sure what the scan codes are! Whatever are the current standard codes will be chosen anyway.
The CapsLock key has been removed from the keyboard and is replaced with the other keys.
The CapsLock functionality has been assigned to a combination of Shift2+Tab.
The 3 (three) MODIFIER keys added are Left Shift2, Right Shift2 and the Script Switching Key (SS Key).
The other 11 newly added keys, will act as normal character keys.
There are 118 keys in total (104+14)
The OS (Operating System) Driver is needed for a Wired, USB Standard Type A port. (Although it will be good if the driver can be coded such that later it becomes easy to reuse the code for other port types)
OS: Windows Only - But for its all major versions (Again, will be good if the code can be easily used and modified for other OSes)
Chipset (32 bit, 64 bit, IBM) – I am not sure if and how much does it matters! Please suggest, But I assume the driver should work irrespective if this.
2KRO only keyboard [https://en.wikipedia.org/wiki/Rollover_(key)]. The Driver must either properly handle or discard “other” key combinations.
The keyboard device will be detected as a HID Device of type Keyboard by the Operating System.
In Latin/English mode, all usual keys and key combinations must work in the same way as they do normally for any ANSI keyboard. The exceptions are the newly added keys and the key combinations which I will describe and will also provide the details.
Shift2 Key to perform the same function as the Fn key (Only with those typical keys which are typically used with the Fn keys. i.e. Non-Character and Non-Modifier keys etc.) . Later I plan to get rid of the Fn key from the keyboard if the Shift2 Key will be able to do the same job equally well. For as of now wherever I mention Fn key, please also assume that I also mean the Shift2 Key.
SOME of the key presses or key combinations must lead to printing the character(s) on the event of key release (Break Code) and NOT on key press (Make Code), while it is other way around in most key combinations.
Some settings should enable the change in the mode, only after the key combination is “pressed and hold” for a few seconds.
A key combination is used to switch between the default type of numbers (Latin type or Hindi type). An LED indicator shows the status.
(?) A Keyboard Shortcut to open the onscreen keyboard help window (?)
The current settings of the keyboard driver must remain saved even if the keyboard is powered OFF and ON.
(?) To be able to install the fonts along with the driver if possible (?)
In case of multiple keys (any type) involved, the order in which the keys are pressed (order of either all of the keys or at least some of the keys involved) does matter, but the order of key releases should not.
Please suggest that in various script modes and their modifier key combinations, how the following affects you in your development: Repeat delays, Repeat rate and Polling rates etc.
As this is a 2KRO keyboard thus pressing any two keys e.g. A+B will print one set of characters (say DEF) while pressing B+A will print another set of characters (say XYZ). --- Very Important
(?) Repeat Rate and Repeat Delay are different in different script modes and also even in same script mode they are different with different modifier key combinations. (?) (Will explain you more on phone)
(?) Reset option (Key combo or GUI) to reset the settings to default. (?)
(?) A GUI window of the Driver settings and status if required (?)


The Modes
Default/Random (Out of Box, Power ON, Power ON with previous settings saved)
Script Type (Toggle scripts Latin & Devanagari) --- (More scripts later)
Number Type Lock (ON/OFF) ---> 20 Numeric Keys Only
Caps Lock (ON/OFF) ---> Latin Script Mode Only
Num Lock (ON/OFF)
Scroll Lock (ON/OFF)
Function Lock (ON/OFF)
Insert/OverType Key (ON/OFF)
Menu Key (ON/OFF)
Sticky Key (ON/OFF)
Slow Key (ON/OFF)
Filter Keys (ON/OFF)
Various Accessibility Modes (ON/OFF)
Various Keyboard Settings (Both ends and in between)
The modes in the RED are the ones that are new. Rest all are the same as those exist in a normal keyboard and are added here just for reference purposes, as they are part of all existing keyboards.

The Levels possible in “one or more of the above modes” are:
Individual key
Shift+
Shift2+ (Devanagari Script Mode Only)
Shift+Shift2+ (Devanagari Script Mode Only)
Ctrl+Shift2+ (Devanagari Script Mode Only)
Alt+Shift2+ (Devanagari Script Mode Only) --- For Repeat Character Entry
Any 2 Non-Modifier Keys’ Combos (Devanagari Script Mode Only)
Fast Double Click (Just 15 keys in Devanagari Script Mode Only)
Win+
Alt+
Ctrl+
Ctrl+Shift+
Alt+Shift+
Ctrl+Alt+
Ctrl+Alt+Shift+
(Fn+) OR (Shift2+) (Mainly used only with 12 function keys and Esc key, etc.)
Invalid Key combinations (Must be either discarded or taken care of in exception handling)
SS Key+
Shift2+SS Key+
Alt+Shift+Shift2+
Ctrl+Shift+Shift2+
Ctrl+Alt+Shift2+
Ctrl+Alt+Shift+Shift2+
Other modifier keys combinations involving any of the new modifier keys …
AltGraph+
Ctrl+Fn+
Other(s) ...

The levels in the RED are the new ones that have been introduced in this keyboard and are NOT applicable for Latin/English script but is applicable to Devanagari script only for this driver development.
The levels with a strikethrough text are new but are NOT required at the moment for this driver development.
Rest of the levels are the same as they exist in a normal keyboard.
If the Modifier keys exist in pairs (e.g. Left Shift and Right Shift) then it means that any one of the two can be used above, although they have different scan codes.
The character keys can be Hit or Pressed. e.g. [SHIFT + c(Hit) = C] while [SHIFT + c(Pressed) = CCCCCCCCC…]



The LEDs for the corresponding MODEs above (number of LEDs required is in the brackets)
Power ON/OFF (1)
SS Key (2)
Number Type Mode (1)
Caps Lock (1) ---> Latin Script Mode Only
Num Lock (1)
Scroll Lock (1)
Fn Mode (1)
Insert/OverType Key (1)
Sticky Key Mode (1)
Mic Mute (1)
Speaker Mute (1)
WiFi ON/OFF (1)
I plan to have approx. 15 LEDs on the keyboard, the RED ones are the ones that are new, rest of the LEDs usually exist on keyboards or laptops anyway. Though I am not sure yet if all these LEDs will be available on the keyboard device. I will let you know the final design in a month or so.


These are most of the requirements but there MAY be some other that are by default a part of all existing ANSI standard keyboards.

Hope it will be of some help to do the feasibility and time analysis.
Please feel free to chat with me anytime.
Start date
ASAP
Published at
23.11.2018
Contact person:
Vikas Mittal
Project ID:
1672452
Contract type
Freelance
Workplace
100 % remote
To apply to this project you must log in.
Register