Requirments
A Logitech G15
Garrysmod
A shred of intelligence
Logitech LCD Manager:
Screenshots:

Pictures from lemming77:

BMP-to-Lua:
This DLL provides a Coder-friendly interface to the logitech g15 LCD, It also supports the software emulator provided by logitech to test scripts.
Usage (There's samples in the zip, This is a basic text example):
local client = LocalPlayer()
require("g15")
--bEmulator: False
-- SET TO TRUE IF YOU ARE TESING ON AN EMULATOR
g15.createLCD(false, "Gmod: Basic health sample")
-- Health Text
-- ID: 1
-- Scrolling: False
-- Size: 1 -> Small
-- Alignment: 1 -> Left
-- Width: 120 Pixels
-- Lines: 1
g15.addtext( 1, false, 1, 1, 120, 1 )
-- ID: 1
-- X: 0
-- Y: 0
g15.settextorigin( 1, 0, 0 )
function onThink()
if !client:Alive() then return end
-- We are modifying the text we created at ID 1
g15.settexttext( 1, "Health: " .. client:Health() .. "%" )
-- Update the LCD to show the changes
g15.updateLCD()
end
hook.Add( "Think", "updater", onThink )
The buttons can also be polled!:
local client = LocalPlayer()
require("g15")
g15.createLCD(false, "Gmod: Button input sample")
function onThink()
if !client:Alive() then return end
if (g15.isbuttonpressed(0)) then
client:ConCommand("say I pressed button 1 on my g15!")
end
-- Update the LCD
g15.updateLCD()
end
hook.Add( "Think", "updater", onThink )
Credits:
Tezzanator92 - The script/coding
Robert - Ideas, Lua help and various usefullness; And volunteering his g15 for testing! (I don't own one), And his great work on the widget manager.