This weekend, I added something new to the development version of emc: hal_input. Linux has a very powerful "input event" layer, which covers all kinds of input devices. hal_input bridges these devices to HAL, allowing the use of keys, buttons, absolute axes (joysticks) and relative axes (mice). It also drives LEDs (such as the keyboard 'scroll lock' LED) from HAL bits.
I've tested it with my laptop's built-in keyboard and touchpad, an external joystick, and a USB mouse. While I don't have any more esoteric devices to try, this should extend to HID devices like jogwheels. It is also possible to create USB HID devices with microcontrollers. One example is the GPL'd MJoy (source code and schematic) which supports 6 analog inputs plus 24 digital buttons. I don't have any experience with MJoy, but it looks neat.
The linux_input.py module will be useful in other Python programs which
interface to Linux input devices, though only the parts I needed for hal_input
have been implemented.
(originally posted on the AXIS blog)
Entry first conceived on 26 February 2007, 3:16 UTC, last modified on 15 January 2012, 3:46 UTC
Website Copyright © 2004-2021 Jeff Epler