Hello, this is a personal project that has a patent and a working Arduino sketch already written, but needs an small pc application and corresponding updated arduino firmware to support it.
In short, a small arduino leonardo board is connected to a set of buttons. (Specifically a Pro Micro ATmega32U4 5V 16MHz.) When pressed the buttons simply send keystrokes just like a usb hid keyboard. Any one button press on this device can currently send either a singular keystroke (example: press button, get "a"), multiple keystrokes (example: press button, get "ab"), or modified keystrokes(example: press button, it performs "ctrl+c".)
Again the arduino sketch is done and working, but currently in order to configure the buttons to send different keystrokes one must modify the actual Arduino source code, recompile, and reflash the arduino every time. The purpose of the this project is to provide an application for end users to easily configure these buttons and add a few expanded features if possible.
Things I am looking for in this project:
• A simple program to accompany the device that detects the device when plugged in and allows a user to configure each button, also allowing for keystroke modifiers if the user needs. I've included a picture of what the program might look like for clarity in attachments.
• Ease of use. Example: In the application the user might simply type the keystroke and places a checkbox next to the shift/alt/etc modifiers fields to be applied. Then they hit a submit button and it updates the device. They might also have the option to type things in manually for more than one keystroke. Following the ease of use concern, it would also be great if the user either didn't need to install extras, or the program installed everything needed to communicate with the arduino so everything is in a tidy/singular package.
• Keyboard press+hold persistence functionality option. Currently when a button is pressed it performs the specified keystroke but does nothing more if you continue to hold the button down. On a standard keyboard obviously holding a key down sends the keystroke, waits a second, then repeats the keystroke over and over until lifted free. Both of those scenarios might be useful to the users I have in mind so if possible a checkbox to allow/disallow this would be great. This is a secondary function less important, but would be nice and would likely be a matter of changing the arduino sketch.
• Future minded programming/bluetooth. This project will eventually move from an arduino board to a microchip with specifically design circuit to cut cost and size. It also needs to support bluetooth at that stage. It would be preferable for the code you design to be compatible with this in mind for the future development.
• I will need the complete source code for both the revised Arduino sketch and new configuration application so I can make simple changes down the line. I may switch boards/chips in the future and will need to be able to change the corresponding pin connections, etc. If you work in C# that would be best but I can shift to other languages.
After all that wording it's basically just a small application that lets users remap a little 10 or so button arduino driven "keyboard" with keystrokes/macros. I'm at the limit of my current capability to continue as a single developer. I am very open to better approaches to this program's features as well. If the project goes through and you see a more efficient way to accomplish something please feel free to discuss it with me.
The image provided shows an example of what the application I'm looking for might look like.
I prefer clear communication over brevity to avoid pitfalls and client/hire disconnect. Please write a why this project interests you, your comprehension of what is needed, and a bit about your logic in how you'd solve it in your application.