Example of a "flag effect". The headset light is turn on, indicating a pending message.
Screenshot of the client.
Keyboard have always been considered as an input device. With our project, we get rid of this assumption and use it as an output device. As a proof of concept, during this hackathon, we built a message service in which messages are displayed using keyboard leds.
What it does
The user has an window in which he can send a message to another user. When a user has some pending messages, the number keys are lit in an other colour to indicate the number of pending messages, and the mouse and headset change colour to indicate the alert. Pending messages are displayed to the user upon request. The display is done by spelling the content of the message on the keys.
Also, we provide some effects such as rainbow effect or flags to show that this concept can easily be extended to other forms of communications.
We use the Logitech tool suite, using a G810 keyboard, as well as a G410 mouse and G633 headset.
How we built it
Each user is provided a client. Clients connect to a server to send and receive pending messages. Clients are identified by nicknames.
The communications are done in http using JSON file content, making it easy to implement other clients.
Challenges we ran into
We wanted to provided a new way to consider input devices. We had to learn using the Logitech SDK. We also created a small http-server to serve our requests.
Accomplishments that we're proud of
Getting it work ! For all the member of the team, it was our first hackathon and we are proud of the management we did. We achieve the results we expected early enough to implement a few additional features.
Also, we are particularly proud of having a solution involving different technologies: Logitech Hardware and SDK, JSON and HTTP.
What we learned
From a technical point of view, we learned using the Logitech tool suite, thanks to the Logitech's team. Also, for two of our members, it was the first time implementing an HTTP server, providing a good challenge. From a soft skill point of view, we learned how to work as a team during 24 hours, as none of us slept. Also, we learned to split the work for the benefit of the whole team: for instance, two of us never did HTTP server, so we decided to leave them this part so they can learn.
What's next for Whisper ?
Our current client is done in Java, as there is an SDK provided by Logitech. Fortunately, it works only on Windows. We would like to use a C++ library available on github to create a Linux and Mac.
Also, we want to provide more features, such as more effects, more display possibilities, etc..