Electronic – What solution would be a low power option to signal a computer with button presses

buttoncomputers

I want to make a custom input device with six buttons that when pressed signal computer to run a program. I would like to do this with a very low amount of power. What options are available to me to accomplish this task? I am willing to build a custom solution if necessary.

About this project and motivation:

I have a Wacom pen tablet which is useful for input but is lacking in that it is not well suited for multiple monitors. In my case, I have six monitors and mapping the entire screen space to the tablet is unmanageable.

I would like to make a small board with six buttons on it. For each button I press I want a message to be sent to the computer which I will use to run a program that moves the mouse cursor immediately to that monitor. For example, in an arrangement of two-vertical and three-horizontal configuration of six monitors (2×3), moving from edge to edge from the bottom left screen to the top right would require that I traverse a minimum of four screens if diagonals are not considered. Whereas if I could press a button then I could immediately set the cursor position to the desired monitor.

The tablet I'm using only has four buttons, of which I would like to map to other things. Cycling through monitors with a keystroke or single button press for previous/next is confusing as I have both vertical and horizontal axis. I want to mount this device at the top of the tablet so as to keep the movement of my hand to and from the selection process as minimal as possible.

Considerations:

It would be nice to consider the possibility of this being a wireless solution. Either because the device is low powered enough to operate for weeks or months on a charge or the possibility of tapping into the tablet's power source (USB/battery).

Best Answer

It would be nice to consider the possibility of this being a wireless solution. Either because the device is low powered enough to operate for weeks or months on a charge

To do this, you ideally want a short range radio scheme where the transmitter can be entirely powered off until a button is pushed, and then wake up just long enough to get a message through to a PC.

The chipsets used in wireless mice and keyboards are suitable for this - things like the nRF24 series. Because the receiver is plugged into the PC, it can always be scanning, and the transmitter can wake up, send a message, wait for confirmation, and go back to sleep. Clones/workalikes of these chips are available for around a dollar each in small quantity on modules can be wired into simple MCU boards (Arduino, etc) but you need one at each end. An alternative is that Nordic's BLE MCU's like the nRF51822, nRF52832, nRF52840 combine the radio and MCU and can also speak simple custom protocols - the nRF52840 has the particular advantage of being directly a USB device that could plug into the PC, and if desired emulate a standard keyboard. (There were originally versions of the nRF24 with a built in USB MCU specifically for the wireless mouse receiver role, but they may be more expensive to source and develop for today than a BLE MCU).

A second option would be to use Bluetooth Low Energy. If you want to use it in an ultra low power way, you would probably want to do some unusual things. For example, you could wake up on key press, and then send a unidirectional broadcast to inform custom receiver software of the event. If you want something that retries until confirmed, you could then have PC software briefly connect to the device as confirmation, allowing the device to stop broadcasting and go back to sleep.

Or you can be (or buy) a more typical bluetooth or proprietary wireless keyboard - but there's reason to believe this may consume more power than you were looking to expend. Still, something like an add on numeric keypad might be about right for your need, especially if you rig PC software to uniquely recognize it and act on those keys in a custom way.

Related Topic