I have been in a tinkering mood lately, and have had some strong urges to try new things. Over the last few weeks I have dusted off my much neglected C++ skills and hacked together a nifty little plugin for my Logitech G15 keyboard. I have named it G15 SpeedFan. Can you guess what the plugin does?
For those who aren’t sure what SpeedFan is, it’s a fantastic application for monitoring your computer temperatures, fan speeds and voltages. This plugin takes the data that SpeedFan shares and displays it on my G15 keyboard’s LCD screen. When I’m playing games, if my CPU or GPU temperatures get too hot the temperature value on the screen changes to bold and I can let it cool off for a bit. Here is a picture of what it looks like in action on my G15 keyboard:
I apologize for the poor quality picture, I’m not a professional photographer.
If you have a Logitech G15 keyboard why not give G15 SpeedFan a try? It’s completely free, easy to setup and very useful once it’s running.
The Nerdy Details
If you’re still reading this I’m going to assume you’re a nerd like me, or are at least familiar with computer programming. When I looked at developing this plugin I had a couple different frameworks to choose from. I could write a C++ plugin for Logitech’s GamePanel Manager, or I could create something using LCD Studio. LCD Studio is more of a drag-and-drop designer, not really what I was looking for. Also, it had to be running all the time, much like the Logitech GamePanel Manager, but the logitech application takes up much less memory. So I decided on the Logitech software. Logitech provides an excellent C++ SDK for the keyboard, complete with example programs and something they call the “LCDUI” framework. It is a framework written to work exclusively with the G15 keyboards and provides functionality like writing images, animations and text to the LCD screen. It is extremely simple to work with, and everything is object oriented. For example, to write text to the screen you just create a Text object, set it up and add it to the screen manager.
CLCDText textBox1;
textBox1.SetOrigin(0, 0);
textBox1.SetSize(LGLCD_BMP_WIDTH, LGLCD_BMP_HEIGHT);
textBox1.SetText(_T("Hello world!"));
m_Objects.push_back(&textBox1);
Done! Now, we just setup some sort of program loop that gets the SpeedFan data every second and then just call SetText again to set the value. To draw the textbox to the LCD screen it’s just 2 lines of code.
m_LCDOutput.Update(GetTickCount()); m_LCDOutput.Draw();
Voila! If you have any questions about how to use the SDK, or anything else, I’d love to discuss it in the Support Forum. In the meantime, why not give G15 SpeedFan a try for yourself.










Leave a Reply