Button Pressing Device for People With Disabilities (prototype)

by Elll in Circuits > Assistive Tech

23 Views, 0 Favorites, 0 Comments

Button Pressing Device for People With Disabilities (prototype)

IMG_2989.jpeg
IMG_2987.jpeg

Hello Everyone!

I am a high school student looking to go into assistive technology, and this is my first assistive project, so sorry if it's more than bad :,)


A couple of months ago, I asked a variety of different people in online communities who struggle with a disability, "What are some common struggles you face in your day-to-day life that aren't talked about that often, and that you believe could be alleviated by assistive tech?"

One of the most common answers I received across a wide range of disabilities, including Autism, Stroke survivors, and people who suffer from Ehlers-Danlos syndrome, was the inability to use their hands to exert force. The most common grievance relating to this is the constant struggle to push buttons.

I remember buying a bunch of touch-capacitive buttons and thought they would be great for attempting to solve this sort of problem. Touch capacitive buttons use your body's natural electromagnetic field to trigger their ON/OFF state, meaning that you barely need to touch them, if at all, for it to trigger ON.

This device is not compatible with every button. It's supposed to be used with everyday buttons, which usually require 3-6 N of force to push. The solenoid can exert 6-7 newtons of force, but you also lose some of that to the reaction force (not a lot though, but just be mindful of the reaction force).


Supplies

IMG_2704.jpeg

Here are all the materials I used. Feel free to swap anything out, like electronic components, filament, etc. The one thing I don't recommend swapping out is the solenoid:

Medium push-pull solenoid (1X) - https://www.adafruit.com/product/3992?srsltid=AfmBOoo1SPjCzf9wF2Vxi20WGwbper4G3kPMguCRut22h2L2SScfUUoz

1K resistor (1X)

fr107 diode (1X) - https://www.digikey.com/en/products/detail/smc-diode-solutions/FR107G/9360310

IRLZ44N MOSFET (solenoid switching) - https://www.digikey.com/en/products/detail/infineon-technologies/IRLZ44NPBF/811808

Microcontroller (1X) - (recomend using the R4 nano for reliability)

TTP223 touch capacitance button (1X) -

Li-Po batteries (2X, Connected in series, so total of 7.4V) - https://www.amazon.com/dp/B0867KDMY7?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

Tungsten putty to counter the reaction force - (1X, 30 G on each side) https://www.amazon.com/gp/product/B08N37ZPL8/ref=ox_sc_act_title_1?smid=A1FGPL1ZTW83CK&psc=1

perfboard (cut to 2 1/8" x 2 1/8" ) - https://www.amazon.com/ELEGOO-Prototype-Soldering-Compatible-Arduino/dp/B072Z7Y19F/ref=sr_1_2_sspa?dib=eyJ2IjoiMSJ9.hZ7yUlqIa0lR5GczvXnkXXRkct3_5aQwM13_NnqxYdWNbnpS2dY9WPIgSeb6-rpPp68A3-LYbv0rKXGttES34QchqzFKwTttbN1cWv0PZOATFaENGHqNDjehMMMgX5OMBxyuNY08jHiMyE8V_KgpeKKWhmuJ7zHwG7E1cSYCqJ2a0lT-kz1EFA8ht6_ZQAFqrpBi_R478hJNICfR8w_d2j4T4MmgbUO8V2VC6rS4fGU.KgbLBtOq52ttBULig0MlDo7aFvS29o0Mf26kFcmPuBs&dib_tag=se&keywords=perfboard&qid=1762137033&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

some wire, 12-14 gauge preferably

I'm kind of on a time crunch when publishing this, but I also intended to have a battery management system, where you could charge the device through disability freindly means. I'll still include the parts in this Instructables since I intend to update it anyway.

Magnetic connector pins (for assistive charging) - https://www.adafruit.com/product/5360

7.4 V special charging cable - https://www.amazon.com/Charger-SM-2PIN-Compatible-Universal-Protection/dp/B0CWH5NRR6?th=1

IRF520 MOSFET (battery low indicator) - https://www.digikey.com/en/products/detail/vishay-siliconix/IRF520PBF/811765

BMS 2S for battery management - (I'm having some trouble finding one that works reliably without me having to bypass its MOSFET, if you have any recs, let me know!)

Yellow LED light (battery low indicator)

1K resistor (1x)

100K resistor (1x)



TOOLS -

Wire cutter

soldering iron

3D printer

ruler

breadboard

leads

filament (PLA used, but strongly recommend ABS)

Other tools, most likely for mundane things

Set Up Batteries

IMG_2726.jpeg

Li-Po batteries were used due to their slim packaging, high amp capacity (roughly 2200 mAh needed), and the fact that two 3.7 Li-Po batteries in series output 7.4V, which is slightly more voltage than we need. Here's how to set it up =

  1. Get your two Li-Po batteries and connect one battery's positive lead to the other battery's negative lead. This creates a series circuit. A series circuit is a circuit in which components are connected end to end, allowing electricity to flow through only one pathway.
  2. Now the batteries are ready to be used!



Breadboard Prototype!

IMG_2267.jpeg
IMG_1F424753-C71C-4EE4-A29E-00365B49704B.jpeg

ALWAYS check your circuits on a breadboard first!

Main circuit:

MOSFET gate --> 1K resistor --> arduino D2

MOSFET drain --> Solenoid(-) --> diode (non stripe side connected to solenoid (-)) --> solenoid (+) --> battery (+)

MOSFET source --> Arduino GND (TIE THIS WITH BATTERY(-) when connecting to Arduino GND, they have to share the same ground.)

The gate is what controls the solenoid. The source (-) and the drain dont have any current flowing through them when the gate doesn't receive any voltage beacuse theres a small break in between them. But when you apply a small amount of voltage to the gate, it's like pushing a button on, and it connects, allowing current to flow through, supplying current to the solenoid.


TTP223:

VCC --> Arduino 5V

GND --> Arduino GND

I/O --> Arduino D3


You can see the circuit a lot clearer on the perfboard.

Print Outer Casing

Screenshot 2025-11-05 at 9.08.44 PM.png
  1. Print the outer casing on whatever 3D printer; here I'm using Bambu Studios and Bambu Labs P1P with generic PLA; orient the two like this so that the cantilever snap fits won't snap and break as easily.
  2. After that, you want to widen the holes for the snap fit on the four corners of the top. I used a flat-head screwdriver and gently nudged it back and forth to loosen it.
  3. I stopped here, but feel free to sand it down, paint it, etc.

Cut Perfboard to Measurements

IMG_2713.jpeg
  1. Cut the perfboard to 2 1/8" by 2" (use whatever tools work best for you; I just scored along the lines and cut with wire cutters)
  2. Mark the middle of the board by drawing two horizontal lines. You should have a center point in the middle.
  3. . Measure by 2 1/8 inches in diameter in the center by drawing diagonal lines from each end. Then draw arcs from that line
  4. Cut out that circle
  5. and check if it fits over the solenoid's plunger and the outer casing, with a slightly large clearance.
  6. Now your perfboard is ready!
  7. I also cut little notches on the circut, just so that the battery wires csan pass through the sides.

Set Tungsten Putty in the Concaves of Device (counters Reaction Force)

IMG_2721.jpeg
IMG_2722.jpeg
IMG_2725.jpeg
  1. Split up the 60g tungsten putty into two 30g halves
  2. Feel free to use whatever method best works for you, but I rolled it out first, folded it, placed it in there, and squished it into the crevices

Add Pins for Mounting Arduino

FERK6DAMHMCT1UY.jpg

For mounting the Arduino, solder the pins to the perfboard where the Arduino mounting holes would be. you can the solder the circuit next to it.

Solder the Main Circut

IMG_2983.jpeg
IMG_2982.jpeg
IMG_04CAD1C1-F81B-4D1A-877C-15728EE4C091.jpeg

We already tested the main circuit on a breadboard in step 1, so this is just transferring those components onto a perfboard.

  1. What's tricky about a perfboard is that on the back, you have to flow the solder onto the leads of each component that are supposed to be connected. A photo from a previous prototype is shown above to show what the soldering on the back looks like.
  2. Also, split the power wire of the battery into 2 so you can power the Arduino from the battery. I added a female lead to the VIN on my Arduino board, so I can remove the power as I wish.


Set Everything

IMG_2985.jpeg
IMG_2989.jpeg

Now we have to set everything into place and make sure it fits. You might have to trim down the wires for neatness since there isn't all too much space to work with.

  1. Put the solenoid in the center, between the four pillars. The clearences arent all too great (mb), but it should sit nice and flat either way. Once you ensure that the solenoid is sitting flat, use Gorilla glue to glue the solenoid to the pillars so it stays secure in its position.
  2. I put the two Li-Po batteries on top of the tungsten putty and pressed lightly to hold the batteries in place. You want to place the batteries in the middle so you can put the top on the device.
  3. Then, I just put the circuit on top through the plunger. I glued mine in place on top of the batteries using Gorilla glue, so it doesnt move around

Upload the Code

The only thing really left is to upload the code. (Make sure NOT to have the battery + connected to the Arduino's VIN, but have the batteries + connected to the solenoid )

Here's the code using the Arduino IDE:

const int touchPin = 3; // D2

const int solenoidPin = 2; // D3


const unsigned long pushTime = 500;


void setup() {

pinMode(touchPin, INPUT);

pinMode(solenoidPin, OUTPUT);

digitalWrite(solenoidPin, LOW);

}


void loop() {

if (digitalRead(touchPin) == HIGH) {

digitalWrite(solenoidPin, HIGH); // push

delay(pushTime); // stay extended

digitalWrite(solenoidPin, LOW); // retract



delay(300);

}

}




  1. I'm currently working on a code where the Arduino will sleep until the button is pressed, saving battery power. Will update when done!

Put the Top On, and Your Practically Done!

IMG_2987.jpeg
IMG_2988.jpeg

Just put the top on (clearances are tight, I'd recommend putting some gear lubricant, and also, if it doesn't fit, change the orientation, or loosen the holes with a flathead) and thread the button through the top. The TTP223 had pre-soldered pins, so I could just connect it like normal.

  1. I glued the button to the top beacuse I was planning on using a much smaller button without mounting holes, but for some reason it wasn't compatible with the R4. I do want to update the CAD to include the mounting holes for the touch sensor, though.
  2. Also, I was told that adding rubber grips is usually super helpful not only in assistive tech, but in normal tech as well, so I used a hot glue gun to make some grip lines. I know it's not the most aesthetic looking, but the grips really do help, from what I've been told.

Reflection

This project taught me a lot. It helped me fully understand how transistors work, and I am practically a fault-checking pro beacuse so many things went wrong.


But there are many things I want to do to improve this project. First of all, I mentioned how I wanted to be able to charge the device. I somehow keep buying faulty BMS 2S circuits, so if anyone has a good rec, let me know. Also, the device is WAYY to big. My first iteration was much smaller, but it's difficult to find solenoids that supply enough N of force, while also being small, that dont require a ton of voltage or current. If anyone also has any recs, let me know.


I also want to make it easier to carry around. Besides being very wide and tall, it is kind of heavy. Without the tungsten putty, it would just push up on itself, so I can't get rid of too much. of it. So in the future, I want to calculate exactly how much counterweight would be needed to counter the reaction force in order to cut any excess weight out. I kind of just made an educated guess and hoped newtons 3rd law was forgiving. I also want to include some sort of strap-on mech, so that you could strap the device onto something like a flashlight.


Finally, I want to increase the aesthetics of the device. I mean, printing it in any other color besides black would have been a good move, but doing a fun design like little hearts for the side grips would have been a great added touch.


If anyone has any good constructive criticism, feel free to reach out! especially from anyone in the industry. Also, if you do decide to make this, let me know!! I would love to hear about the process or help through it :)