See How Milos Rasic Upgraded His Racing Sim with a Custom Force-Sensitive Keypad

Element14 Presents host Milos Rasic swaps out the typical keyboard for one based around force-sensitive resistors in his latest project.

Evan Rust
2 years agoSensors / 3D Printing / Gaming

The problem with normal keyboards

While console-based games are almost always played using a controller comprised of two analog joysticks, an array of buttons, and sometimes analog triggers, PC gaming does not benefit from that level of granular control due to keyboards having simple on/off switches for each key. This can be beneficial for some genres, but for those that rely on smooth inputs such as racing simulators, the twitchy nature can make the game unplayable. This is the exact issue element14 Presents host Milos Rasic encountered when enjoying the Assetto Corsa racing sim on his laptop, prompting him to create his own Raspberry Pi Pico-powered analog keyboard in order to regain these granular controls.

Measuring force

The first idea Rasic had was to incorporate an array of load cells to detect changes in force for each key, but the downsides are that load cells are somewhat bulky, expensive, and require additional amplification circuitry to use. Instead, he went with several force sensitive resistors (FSRs) which have three distinct layers: a pattern of conductive electrodes, an insulating layer, and a carbon electrode at the bottom. This arrangement causes the resistance between the two conductive layers to drop when the two are pressed into each other, thus measuring the force with a single analog-to-digital converter (ADC) pin.

Designing a switch

For the switch, Rasic approached the design in two parts. First, the "clicky" part housing the spring and electrical contacts was sourced as a Cherry MX Red due to it being reliable and precise. After creating holes for its digital pins, the FSR was placed below and a silicone interface material was placed between its top surface and the bottom of the switch's actuator to read the analog force value.

The keypad

Because of its intended use in racing sim games, Rasic configured his keypad's top keys to all be force-sensitive and appear to the host PC as an analog joystick via the incorporation of the Pico Gamepad library. Flanking either side of the controller are a total of six other digital-only switches for changing gears, camera angles, and more. Last of all is a strip of individually addressable RGB LEDs that provide a smooth underglow and can even indicate the current mode/action of the keypad.

To see more about this project, you can watch Rasic's video here on the element14 Presents YouTube channel.

Evan Rust
Embedded Software Engineer II @ Amazon's Project Kuiper. Contact me for product reviews or custom project requests.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles