What is this about ?
The CH Products Multi-Function Panel (MFP)
The CH Products Multi-Function Panel (MFP) is a highly customizable keyboard. It allows for positionning up to 50 keys anywhere on a transparent surface. Moreover, green / red led button allow to toggle for 100 keys in total. It is in fact a revamp of the Ergodex DX1. Principle is based upon radio-signal keys that you stick on the surface. Device decodes signals and transmits key events through USB to the host. Unfortunately, it does not register as a HID-compliant device but relies on a proprietary protocol. And, of course, only Windows drivers are available.
My own MFP and its LotRO layout
Comparing to the Ergodex DX1
I give credit to Richard A Burton for his linux Ergodex DX1 driver designed in 2007. Unfortunately, principle of the CH MFP is different protocol-wise from that of the DX1 :
→ DX1 has internal memory to store key mappings, whereas this is done at software level in CH MFP
→ DX1 registers two USB endpoints (one for control and one HID-compliant), whereas CH MFP only one
Therefore, I could not resort to using the Ergodex DX1 linux software and had to build my own.
This is a linux userspace application, based on libusb and uinput, and optional gtk2+
This software allows to use the CH MFP as a keyboard / mouse / joystick, with reprogrammable keys, taking into account the green / red toggle (therefore a maximum of 100 keys). Chorded input is possible, up to 6 simultaneous keys from a hardware perspective according to CH Products (not verified). Support for mouse movements is implemented, along with macro execution, and joystick axes, and the possibility of one modifier key to bring up the equivalent number to 200 totally programmable keys.