Using Keyboard Indicator LEDs to communicate in Morse Code with C

Your Keyboard as an Output Device?

Luke Zeisset Development Technologies, Programming, Tutorial Leave a Comment

Though we don’t really see as many of them as we used to, they are still with us. One helps indicate if a 10-key is in number or cursor mode. Another helps show when we use capital letters without holding the shift key. You might even have another to show if you accidentally hit the scroll lock key. I’m talking of course about keyboard state indicators.

Most people only think of a keyboard as an output device, but given that it has a changeable state, it most definitely can be used for output as well! Unfortunately, producing meaningful output using a keyboard state indicator (beyond their intended purpose) is rather tedious because they only have two states; the indicator light is either on or off. And to convolute things further, most keyboards these days don’t have many indicators in general. For example, the very keyboard I’m typing on only has a caps lock indicator! Thankfully, there is a well-established encoding that requires only one “bit” to be useful: Morse code!

In this article, I will show how I approached the development of a small utility to output Morse code on the caps lock LED. Even if it’s impractical, I wanted a challenge, and I had fun working through it. Though I’m certainly not an expert, I used the C programming language because I figured it would be the simplest approach.

I hope it is as clear to you, the reader, as it is to me, especially since I tried to make this as simple as possible. And don’t worry if you don’t have a caps lock indicator, either, as we will display the Morse code, too.