Hacker News new | ask | show | jobs
by elihu 1036 days ago
There are some reasonable ways to do pressure-sensitive buttons cheaply.

I'm also working on an electronic instrument. What I do is glue felt on the back of a sheet of 1/8" birch ply (using liquid hide glue), and then laser cut all my button tops out of that.

The buttons are held in place by a laser-cut wooden frame, also 1/8" birch ply but without the felt. I stick packing tape to the back of the frame sticky-side up, so I can drop the button-tops in place (felt side down) and they stay put without falling out. The felt is there so the bottons have a little give to them when you press on them.

This wood/tape/felt assembly sits on top of a sheet of force-sensitive resistor, which in turn sits on a printed circuit board. Under each button there are two sets of exposed (ENIG-plated) copper traces configured like interdigitized fingers.

Pressing on the button presses on the FSR which presses against the traces, and the electrical resistance between both sets of traces drops. You can measure the drop with a simple voltage divider circuit connected to an ADC.

By using a lot of multiplexers or certain kinds of shift registers, it's possible to read hundreds of buttons.

Sensitronics makes a very nice FSR material, but I've found Velostat works quite nicely too and is vastly cheaper.

1 comments

I have used velostat for this purpose with a similar design, but i had too many problems with self-consistency of response across different buttons. There was a fair amount of hysteresis too, i thought too much to be usable as an instrument. I am wondwering if the felt is the secret sauce?

I am moving toward 3d printed pivoting keys with an internal mirrored surface that reflects variable amounts of light into a photoresistor depending on depression. Would prefer the velostat though if it can work reliably

My impression (I'd have to do more testing to verify this) is that velostat is not very consistent if you use it as a through-mode FSR (electrical contacts on opposite sides of the FSR) but works quite a bit better as a shunt-mode FSR (electrical contacts on the same side of the FSR as "interdigitized fingers").

The spacing of my traces for the interdigitized fingers is about 8 mils, and the traces are about 6 mils wide. I'm using JLCPCB, and they have no problem with that trace width.

I also use an op-amp (TLV274) in voltage-follower mode as a buffer in front of the ADC inputs.

Sensitronics makes a nice simple test board you can use to test various FSR materials with various trace widths: https://www.sensitronics.com/products-xactresponse.php

(Their website doesn't say so, but the board also comes with samples of their FSR material.)

Here's a (somewhat out of date) schematic showing approximately what I'm doing: https://github.com/jimsnow/microtonal-controller/blob/main/d...

(The keybed itself is a separate board that I haven't posted the schematic for yet, but it's mostly just a bunch more shift registers and FSR elements. FSR elements are notated as a squiggly line.)

There's a company called Wooting that makes gaming keyboards with analog key travel sensors. Their current design uses magnets and hall effect sensors, but I believe their earlier versions used LEDs, light sensors, and mirrors, which sounds similar to what you're doing.