Introduction: Create Adaptive Switches With TinkerCAD and 3D Printing

For people with limited mobility the use of simple switches can be their best route to interact with technology around them. There are all sorts of different styles of switches to suit the wide range of needs for people with physical disabilities but one thing seems to be common of them all --- they are overpriced. Commercially available switches marketed as "adaptive" or "accessibility" can have huge markups for what the components inside them are actually worth. And even still, these sometimes prohibitively expensive buttons and switches are not very customizable to suit the needs of their intended end users.

With the advent of consumer 3D printing I feel that a new age of adaptive open-source designs is upon us. In this Instructable I will guide you through the 3D design process and assembly of an adaptive switch at a fraction of the cost for anything commercially available.




  • 3D Printer (FDM)
  • Soldering Iron
  • Wire Strippers
  • Wire Cutters
  • Computer with an internet connection to access

Step 1: Identify the Needs of the End-user

Creating a brand new switch design is great but only if it actually benefits the end-user. An important part of any design work that involves human interaction is to think about the needs of the person who will be using the product.

Some people may need large buttons to suit their level of dexterity. Some people may need the buttons to have a very low actuation force to suit their level of muscular strength. Some people may need very small compact buttons so they can fit in a small area to suit their level of arm mobility.

Before you embark on your own design journey for an adaptive switch please take some time to assess the needs of the end-user. If you are making a switch for yourself you should reflect on your needs and if you are making a switch for someone else be sure to question them about what they need and make observations about how they currently interact with the world around them to better understand the full scope of their abilities.

Step 2: Select Your Hardware

Depending on what kind of switch you are designing you will have different options of electrical switches you can work with. For the purposes of this Instructable we will stick with push-button switches as they are the most common and readily available to purchase from many online retailers or even local electronics stores such as Micro Center and Radioshack. Other types of switches you may need to consider for any future adaptive tech projects are rocker switches, toggle switches, reed switches, tilt switches, and more.

Most adaptive technology uses what are called "momentary" switches - this means that the switches are only "activated" or "on" when they are being pressed. Think of a car window switch as being momentary, the window will go up or down while the button is being held but will not move when the button is released.

Latching switches should be avoided unless specifically needed for a particular project. Latching switches will stay in an "on" or "off" state when pushed/pulled until the next time that they are moved. You can think of a household light switch as a latching switch, you push the switch up or down once to keep the lights on or off until you push the switch in the opposite direction later on.

When shopping for momentary push buttons you will need to learn different labeling conventions for them. In many cases they may be simply labeled as "momentary" which will usually indicate a switch that will work for this project. However in some cases they may be labelled as "Off-Mom" or "Off-(On)" or something else entirely. Be sure to understand the labeling conventions for the supplier you are purchasing your hardware from.

And then even beyond this you have options for what type of mounting the switch is designed for. The most bare-bones switches will be labelled as "through-hole" because they are designed to be fit through the holes on a perforated circuit board (PCB). Through-hole switches will be the cheapest option but requires some extra design work for how you might hold them in your custom switch housing if you are not going to attach them to a PCB. Another option that will simplify the design work (but also limit your possibilities) are "panel-mount" switches. These are switches already built with a nice housing design ready to be fit into an appropriately sized hole. A great example of a panel-mount switch are the colorful buttons on an arcade cabinet. For this Instructable I will be using through-hole components as they allow for the most customization to be done on the design side of things.

Besides the switch, the only other part we will need on the electrical hardware side of things would be a 3.5mm (1/8") audio jack. Since we only need two conductors (a ground and a signal line) a mono audio cable will suffice - the kind of cable that can only control a single speaker. Stereo cables are used to control two speakers (a left and right side) and have three conductors ( a ground, left signal line, and right signal line). Stereo cables can work but will have one wire in the cabling left unused.

See my supplies list at the start of the Instructable for links to the items I purchased.

Step 3: Plan Your Design

Before jumping onto the computer to create the 3D model of the adaptive switch you should first take time to work through your design by simpler means. You can accomplish a lot with a pencil and paper and work through many design flaws before you even touch the computer mouse or keyboard.

My prefered way to start design work is by sketching my initial ideas. Sometimes ideas strike at strange moments so I take advantage of whatever may be laying around to draw on which may be a sticky note at my desk or a napkin when eating out. I try my best to keep a pen and pocket notebook with me wherever I go so I have a purposeful place to jot down ideas!

For this Instructable I will go through and design a large adaptive tech button that may best serve someone who can work better with a larger target to press. I will also design it to make sure that the button has enough travel so it would not be accidentally activated and it will need to have a light enough touch that the weight of a small hand will be enough force to actuate it.

I have added photos of my initial sketches. Note that I added comments for myself to refer to later down the design process and how I redrew the pieces in multiple orientations so I could plan out the assembly of everything in my head before bothering to create the 3D models.

Some people may not enjoy the act of sketching ideas and that is OK! Other ways to plan out your design can include things like making mockup prototypes from simple materials like paper or cardboard. Things like clay are nice to have around since you can quickly model out complex shapes and designs without the technical barrier of a CAD software.

Step 4: 3D Model Your Off-the-shelf Components

    Now it is time for us to get on the computer...but don't go jumping straight into creating whatever design you just planned out! We will first create the models of what we already have in hand.

    While this step is not required I would strongly encourage it, especially if you are someone who is new to 3D design. Before creating the model of your custom switch it can be very helpful to create models of the parts you are designing around. In the case of my design I am using a momentary pushbutton designed for through-hole attachment, a spring, and a mono audio cable.

    Using digital calipers I am able to measure accurate dimensions of these components so that I can recreate them in TinkerCAD. The images in this step walk through the design steps I took to recreate the switch and spring in TinkerCAD. I used my digital caliper tool to take accurate measurements of the components. If you do not have such a tool, you can likely get by just fine using a ruler. All measurements you see in the images throughout this Instructable are in millimeters.

    Modeling the push button:

    1. Create the switch main body as a box.
    2. Add a cylinder to the top of the switch body as the actuator piece.
    3. Create four small box shapes and position in place as the metal legs of the switch (I bent the legs of my switch out to the sides so that the button sits flat).

    Modeling the spring:

    1. Using the Shape Generator "Spring" tool I created a rough approximation of the spring I had available for this project. The exact shape was not that important I mostly focused on getting the height and diameter of the spring accurate.
    2. Once completed I positioned the two together how I imagined they would be set in the final version so that I can build and design the rest of the switch around these pieces.

    Step 5: 3D Model Your Custom Switch Casing

    Now we get to the bulk of the work in creating the 3D models for what will eventually be 3D printed. There are a few things I keep in mind while working on a part intended to be 3D printed:

    1. Can it be printed without support material (or minimal support material)?
    2. What orientation will I want to print each part? (Consider the forces each part will experience as well as how the part might look/feel due to the layer lines in different orientations)
    3. How will the pieces go together for assembly? Snap fit...glue...screws...something else?
    4. What clearances am I including in the design of the pieces so that they fit how I want them to? Will pieces need to be moving freely against each other or will I want them to fit snug?
    5. Will it be easier to have some pieces print in multiple parts to later be assembled or can I design it in a way to minimize assembly?

    The images in this step walk through the design steps I took to create the different pieces for the button assembly in TinkerCAD. I ended up having three different parts, two of which will need support material.

    1. Base Plate - has a location where the button will be held in place to prevent sliding around (button will be glued for extra hold) and has chamfered holes to allow for countersink screws to be used in the assembly and still have a flat bottom
    2. Button Body - the bulk of the switch which will hold the button top in place by having a top lip and guiding vertical pillar sections (which double as the attachment points for the screws from the base plate). This will print with support material on the inside/bottom in order to have a nice outer surface finish. While I could print the part upside down to eliminate the need for support material, I know the rounded edges of the top will be trickier to have come out smooth due to warping/curling of the plastic as it prints.
    3. Button Top - a rounded shape for the user to press comfortably with cutouts which will be used with the guiding pillars of the button body to minimize the button top from twisting and tilting out of place. As the button top is what will actually be pressing the pushbutton I needed to have part of the bottom extending downwards to hold the spring in the center. This part will need to be printed with support material on the bottom side.

    Modeling the Base Plate:

    1. Create a cylinder shape that is round and flat to the size of your button. It needed to be thick enough to accommodate the heads of the countersink screws I was planning to use.
      • If you want your round shapes to be smooth when printed, be sure to increase the number of sides from the option menu on screen! I made sure to have my cylinders with 64 sides to be as smooth as TinkerCAD will allow.
    2. Create another cylinder, this time to use as a Hole cutting tool which is sized larger than the threads of the screws that will be used for assembly.
    3. Using a cone shape sized approximately the size of the countersink screw heads this was grouped with the hole cylinder.
    4. Create multiple copies of this new "screw hole cutting" tool and position them around your base plate cylinder. To make alignment easy I first had two screw hole tools which I roughly put in place and then grouped together. I could then use the alignment tool to make sure this set of 2 was centered with the base plate cylinder. Before grouping them all together I made another copy of my set of 2 and rotated that set by 90 degrees to give me a total of 4 tools.
    5. Group the base plate cylinder together with the four "screw hole cutting" tools
    6. Create two box shapes and position them on each side of the push button, positioned so that they overlapped slightly. Then make a duplicate of the switch in order to have it be a Hole cutting tool (you can temporarily hide the original switch model using the "lightbulb" show/hide feature). Using this new cutting tool, group together the "hole" switch with the two small boxes and the base plate cylinder to create a spot for the button to have a snug fit in the finished product.

    Modeling the Button Body:

    1. Create another cylinder that has a slightly larger diameter than the base plate cylinder, and have it be as thick as you want your finished button to be (remember to consider the dimensions of your internal pieces. i.e. the push button and spring)
    2. Use the bevel feature in the option menu on screen to create rounded edges on the new cylinder. This will give the finished switch a better look and feel. Remove the bottom rounded edge by creating another oversized cylinder as a hole tool that is just tall enough to cut away the bottom round edge.
    3. Create a tube body with the same outer diameter as your button body cylinder but with the same inner diameter as your base plate cylinder. Align it with your button body cylinder and group together. This will act create a recess that the base plate will sit into for a better appearance when finally assembled.
    4. Create yet another cylinder that will be used as a cutting tool for shaping the inside of the button body. Have this cylinder be the same diameter as your base plate and as tall as you want the hollow cavity of your button body to be.
    5. Create a half round and box shape which will be grouped together as a "hole" cutting tool. This will be used to cut out the negative pattern from our newest cylinder. Creating a set of 4 of these cutting tools in the same manner and alignment as the screw holes were made on the base plate.
    6. Align centers of the cutting tool cylinder with your button body and group them together.
    7. Create another set of 4 "hole" cylinders that are sized appropriately for the threads of your screws to still have some "bite" into the plastic walls. Have these 4 cylinders be aligned with the screw holes of the base plate and then group them with your button body to cut out recesses from the rounded columns in the button body.
    8. Create one more "hole" cylinder that is sized as large as you plan to have your exposed button top to be. Align and group with the button body to open up the top of the body.
    9. Create a hole through a side wall of your button body using another "hole" cylinder sized so that the wire you are using will be able to slide through it.

    Modeling the Button Top:

    1. Create a cylinder that is the same size as your base plate inside of the button body. Create a duplicate of the button body that you can use as a cutting "hole" tool (the same process that was used before to make the push button slot). Group your newest cylinder with the "hole" button body so that there are now cutouts for the button top to be able to be guided by the columns when moving up and down.
    2. Add a half sphere to the top of your button top piece that has the same diameter as the hole you cut from the roof of your button body piece. Align the centers and group together.
    3. Create a cylinder on the bottom of the button top piece to be an extension that will actuate the push button inside and act as a retainer piece of the spring. This should be sized to the inner diameter of the spring. The height of this piece is dependent on how much travel you want the switch to have before the push button inside is triggered. The shorter you make this cylinder the farther the user will have to push your switch, and the longer you make this cylinder the less the user will have to push the switch for operation.

    The final image shows the button and all of its pieces aligned and "assembled." The Button Body is temporarily made as a "hole" tool so you can see through it and see how everything fits together.

    Step 6: Printing Our Pieces

    In order to get your designs off of TinkerCAD for use with a 3D printer you first need to export the models. TinkerCAD gives you the choice of exporting all pieces at one time or individually by selected one at a time for export. In the case of this switch we need to print them as separtae pieces in order for it to be functional so you will need to select each of our pieces one at a time and export them as .STL files being sure that we have the option selected for "The selected shape" each time.

    With the 3 models downloaded in .STL format they can be imported into your 3D printing slicing software of choice. In my images you will see I am using Simplify3D but free alternatives include Slic3r, Cura, and many more.

    I will be printing these on one of my FolgerTech FT-5 printers from PushPlastic brand PLA. Here are some of the settings I will be using for these pieces:

    • 0.2mm layer height
    • 200C hotend temp, 60C bed temp
    • 2 outer perimeters, 4 top and bottom layers, 15% infill
    • Raft enabled and supports enabled (supports are needed for how I designed the Button Body and Button Top pieces)

    Step 7: Assembly

    One of the great downfalls of my 3D models for this switch is that I did not include any considerations for tolerance in the design work. I knew this going into the modeling with TinkerCAD so I was fully prepared to do some extra post processing work to prep the pieces for assembly. I needed to sand/trim the sides of the bottom plate so that it would fit properly into the button body and I needed to sand/trim the sides of the button top so that it fit loosely enough within the button body to allow for smooth up and down travel when pressed.

    The assembly of this switch is very quick once everything is ready to go together. Here are the steps that I took:

    1. I first put the button top into the button body (as it would not be possible once the wire is in place) and then fed the bare end of the audio cable through the hole in the side of the button body. I tied a knot near the end of the wire - this will act as a form of strain relief so that in the case of the wire ever being pulled the solder connection will not experience the force, the knot will prevent that. I then soldered the two wires to legs on on side of the push button switch.
    2. I hot glued the push button into place on the base plate. While it had a nice friction fit, the glue is an extra bit of security to ensure it never falls out of place.
    3. After placing the spring in place I sandwiched the base plate on and secured it using 4 screws.

    The switch is now assembled and ready for testing!

    Step 8: Testing and Reflection

    To test that the switch works I put together a very simple circuit using a couple button cell batteries, an audio jack, and an LED wired in series with the switch. When the button is pressed the LED goes on and when the button is released the LED goes off.

    Now this switch is ready for use in many different adaptive tech situations. It could be used by a child with a battery interrupter to make an electronic toy (like a talking stuffed animal) accessible. It could be used by someone with a wheelchair as a control button for part of the chairs movement. It could be used as part of an interface with the Xbox Adaptive Controller for playing video games. There are so many applications for a button like this to improve the quality of life for someone else!

    The total costs of this button are this:

    • $0.50 for a push button
    • $3.50 for a mono 3.5mm audio cable
    • $0.10 for a spring
    • $1.20 for 58 grams of PLA filament
    • $0.40 for 4 screws

    Making the total cost only being $5.70. This same type of switch is sold online for over $65 and you are limited to the exact size, colors, and shapes that they have available.

    This 3d printed switch has an activation force of about 600 grams that I measured by pressing it against a digital scale. While this is much higher than many adaptive switches, I designed this with the intention that it would be pressed with an entire hand and not just by the user's finger. The weight of a hand, even a small one is more than enough to activate this switch. An easy way to reduce the activation force would be switching out the spring I used for one that is lighter duty.


    Through the assembly and testing process I have had the opportunity to reflect on this design and there are several modifications I think I can make if I were to try and create more in the future. Design should be iterative - especially when it comes to human-centered design!

    Improvements to make:

    • I can recreate the design to require no support material when printing, thus reducing the material costs, printing time, and work involved for assembly.
    • I need to design spacing tolerances into some pieces of the design so that no post-processing work is needed in order for the pieces to fit together properly. TinkerCAD's style of 3D modeling does not make this easy, but it isn't impossible either with a little patience and ingenuity.
    • I should include some kind of additional holes or other design elements that would allow for the switch to be mounted onto a surface, whether it be a wood board or something else. Additional types of attachments like embedded magnets or recesses designed for velcro attachment could also be useful for some users and their applications.
    • Using 4 screws is overkill for the types of forces that this switch would ever experience. The design could get by just fine with 3 or even 2 screws making them even more affordable and easy to assemble.
    Assistive Tech Contest

    Runner Up in the
    Assistive Tech Contest