I've got one of these, with the intention of using it as a nice console...
It's serial - it has a DB25 port like all Denford stuff had (don't think they ever knew about DB9s), but just needs a basic adapter.
Checking the circuitry out, can confirm it's a very simple two-wire RX/TX, plus ground, and then uses the RX/DTS/RTS for power from the host.
Using screen, or something similar (I'm using CoolTerm), you can get the HEX and ASCII output - and it's simply ASCII corresponding to each button. Nicely there's a button down character and a button up character (handy for modifiers, and repeating an entry until the up character is received). The character is sent only once on either down or up, no repeats etc like a keyboard.
Mine is the fixed variety, so no "overlays" which the later models had (they were a grid of buttons, and plastic overlay cards with the graphics on them). Those are the same, but there's a predefined grid corresponding to the ASCII generated, and each "overlay" had a mapping file accordingly. But, hooking this to a serial converter/port, and watching the ASCII is the easiest way of figuring out what each button generates.
So, my thought is a simple Python script etc to take the ASCII, map it etc and then send it to a pipe, for some function in LXCNC to listen to. The only thing I'm trying to figure out, is how to enable the 2x LED (one for "coolant on" and the other for "external keyboard").
They'll be ASCII I'm sure, but need to figure out what they are.
All in all, quite a nice input device given how cheap they are, and simple they are to get working. I'd class them as "driverless", as they produce ASCII, and you just need to map the ASCII somehow...