Intro: Custom Keycaps for the Visually Impaired
Given the widespread use of technology to accomplish daily and professional tasks, typing on a computer keyboard is an essential skill in today’s day and age. For people with visual impairments, available keyboards provide a significant obstacle, as the low contrast colors and small character fonts of the keycaps are difficult to decipher. The Braille alphabet is often used on assistive keyboards for the blind, but on average, only one in ten visually impaired individuals is able to read Braille.
A mechanical keyboard with Brown Cherry MX switches was used as a baseline, as these keyboards provide greater auditory and tactile feedback to the user. Keycaps were custom-made and 3D printed with raised, capital letters and numbers from the English language to assist the user in locating specific keys. The characters on the keycaps were constructed with different colored filament from the keycaps themselves (white on black) to provide color contrasts that would make the device useful to individuals who have minor visual impairments as well.
For more information about current keyboards for the visually impaired, you may view our background information document (also linked below). To view the design criteria for our keyboard, view our requirementsdocument. The engineering matrix, which was used to decide the best design type can also be viewed here.All these files are also attached for download below.
Step 1: Gathering Materials
Below is a list of the tools and materials used to make the keycaps in this project. The printer, nozzle, and filament below were used to print the keys in a high resolution. If the specific tools below are unavailable, any 3D printer and nozzle should suffice, however, we cannot guarantee the quality of the print.
In addition, we have included the keyboard that used as a base for our keycaps. It is not necessary that the exact same keyboard be used, however it is necessary that the keyboard has Cherry MX mechanical switches. Brown switches were chosen for their tactility and audibility, but any Cherry MX switch will work because of their uniform cruciform dimensions.
Note: For more information about materials and tools, please view the attached .pdf document. Alternatively, it is available at this link.
Bill of Materials
1. G-Cube Brown Cherry MX Mechanical Keyboard: $ ~150.00
2. 1.75 mm PETG 3D printing filament (black and white, contrasting colors): $ ~30.00
1. Key puller (Removes & replaces keys): Free (Included with purchased mechanical keyboard, about $1 if purchased online)
2. Onshape (CAD software): Free
3. PRUSA Control (slicing software): Free
4. 3D Printer (PRUSA i3): $ ~700.00
5. 3D Printing Nozzle (Brass 0.25 mm nozzle v6): $ ~16.00
Alternate to Personalized 3D Printing
1. 3D Hubs 3D Printing Facilities: **$ ~25.00
**Price when using recommended specifications: (36 keys) Process: FDM Material: Standard PETG Color: White Layer Height: 100 micrometers
Notes Regarding Materials
The materials listed above are the bare minimum required to produce customized keycaps with raised, capital letters. However, certain tools, such as the PRUSA 3D Printer and its filament may not be accessible to all. In this case, individuals who wish to 3D print these customized keycaps can do so at 3D printing hubs, where corporations or individuals can provide 3D printing services at a reduced cost. These rates can be determined based on the amount of filament used, time required to print, and the variations in colors used. One recommended site to locate and utilize a 3D printing hub is 3dhubs.com. This site allows the user to specify printing material, layer height, type of 3D printer, and color. However, this site does not have an option for multiple colors to provide contrasting colors between the keycap and the raised letter. It is possible to specify the color of the keycap itself, and we recommend white to contrast with the black G-Cube keyboard. Afterwards, the letters can be painted with a different contrasting color manually if it is desired.
Step 2: Setting Up PRUSA Control
After acquiring all materials, download the .stl files of the keycaps, which can be found in the link provided below, or on this instructable page.
Note: The google drive link has 10 additional symbol keys not found in this instructable. These keys are not vital to the functionality of the keyboard, but they contribute to the ease of use.
Open the files in the PRUSA Control software, which can be downloaded here. If you do not have the specific slicing software that we used, any other slicing software will also be compatible with the .stl files. However, we cannot guarantee that the settings that we have described below will be available to you.
Our settings for PRUSA Control:
Below are the settings that can be customized from the control panel on the right side.
- Material: PRUSA PET
- Quality: 0.15 mm (Optimal)
- Infill: 20% (Standard)
- Support: none
Clicking “Settings” on the top panel will redirect you to an additional window, which has additional customizations, such as nozzle size. 0.4 mm and 0.25 mm are both nozzle sizes that work well with the PRUSA. The 0.25 has a slightly higher resolution, although the prints take longer.
- Nozzle size: 0.25 mm
Converting to G-Code and Setting a Color Stop
To convert the .stl files into g-code, the code read by 3D printers, press the “Generate” button at the bottom of the right panel. The g-code will load a preview in the same PRUSA window, but the control panel should change to include a slider that can display each layer of filament. Clicking on the plus sign next to a row will set a “Stop” at that layer, allowing you to change filament if you desire a color change. For this project, a color change was necessary to contrast between the keycap background (white) and the key text (black).
- A stop was set at 9.20 mm for all of the keycaps
Final Exportation of File
Finally, once the stop is set, pressing “Save G-Code” will save the file to your file explorer, and from there, it must be transferred to an SD card to be read by the PRUSA (depending on the printer you are using, you may need to use a USB drive instead).
Printing 9-12 keycaps at a time speeds up the entire process of printing keycaps, since at a minimum, there are 36 distinct keys needed (letters and numbers). Printing more than 12 may decrease the number of batches needed, but has the potential to waste more filament, should something go wrong with the printer. On the contrary, printing very few keycaps at once keeps individual print times short, and minimizes the number of keys affected by potential printer faults.
Step 3: Printing With the PRUSA
Insert the SD card into the PRUSA and select “Print from SD.” Scroll and select the file name that matches your g-code. The printer will preheat by itself and start the print, however, it is a good idea to wait for the first layer of filament to go down, as this is the layer where most errors occur. Should the print fail, press the knob and scroll down to the option "Stop Print." Wait for a few minutes for the base plate to cool down, and discard the filament remnants.
The PRUSA will stop by itself when it reaches the color stop, and it will alert you via a loud beeping noise. At this point, press the knob on the PRUSA to unload the filament (you may need to provide a substantial ‘tug’ for it to come out). Continue inserting new filament into the extruder until the printer latches on to it; at this point, it is no longer necessary to manually feed the filament. The printer will extrude the leftover filament from the previous color, and then the print will resume.
When the print is complete, remove the base plate from the PRUSA and carefully remove the keycaps. Slightly bending the base plate downwards allows the print to come off more easily.
Step 4: Assembling the Keyboard
Once all the keycaps are printed, you can assemble your final keyboard. Begin by locating the key puller that was included with the purchased mechanical keyboard. Most mechanical keyboards are supplied with one of these as it is a crucial tool when keycaps need to be replaced. If you have lost the key puller, you can purchase one for about $1.00 from sites such as eBay.
Since the keycaps dimensioned to fit on the Cherry MX switches for durability, they can be difficult to remove by hand. When using the key puller, push it down over two opposite edges of a keycap. Then, pull upwards until the key pops off. A significant amount of force may be necessary to remove the keycaps, so do not be alarmed if they do not come off at first.
Once the keycap is off, simply press the cruciform (the cross underneath the keycap that attaches to the mechanical switch) onto the switch on the keyboard. Repeat with all the other printed keycaps.
Note: The default setting for the G-Cube mechanical keyboard, and many other gaming keyboards as well, is for a backlight to appear behind the keys when plugged in. Although the white filament is opaque, the backlight does shine through to some extent. In the scenario that this be distracting to the user or that it significantly decreases the contrast between the key text and the background, it is always possible to decrease the brightness, or even shut off the backlight. On the G-Cube, pressing the G3 key near the space bar in conjunction with the brightness key will decrease the brightness of the backlight.
Step 5: Improvements and Extensions
Congratulations! You just built a modified keyboard! But the fun doesn’t stop there…
In this model, we have laid out the bare minimum keys that are necessary and most widely used--the numbers and the letters. Found in the Google Drive CAD folder is also a list of symbol keys that are obtained with the combination SHIFT+number. Additional keycaps that would be beneficial to incorporate on the keyboard in raised letter fashion would be the SHIFT, BACKSPACE, and ENTER keys, as they are used often.
The printer model and the type of filament used are crucial in determining the printed product’s texture and quality. The recommended bill of materials in Step 1 was compiled based on information gathered throughout an extensive design process, and the tools listed were given as ideal options to produce an assistive keyboard with multiple types of sensory feedback. Despite the quality of the tools, it may be necessary to sand the raised letters if the letters print with sharp points or rough edges. This will ensure that the user receives effective, accurate tactile feedback and can definitively read the raised, capital letter.
Many mechanical keyboards have miscellaneous keys that are reserved for exhibiting certain functions, such as taking the user to a certain page, or performing multi-key functions (ex: Control-Z). Certain mechanical keyboards, namely gaming keyboards, enable users to manually program macro keys to perform functions that they desire. Macro keys would be highly beneficial to visually-impaired individuals by enabling them to perform multi-key functions without having to search for the correct keys. Many gaming keyboards have online tutorials on how to program macros; some are linked below in the resources section.
Casting in Resin
Another option for creating the keycaps is to use a process of molding and casting. Our group tried this process in conjunction with 3D printed molds, and it generated results ranging from mediocre to poor. A two part mold would be necessary if this option was carried through with, and we found that a silicone lower mold and a 3D printed upper mold with the raised letter imprint would work better than if both molds were 3D printed. The bottom mold can also be made from silicone if desired. However, both methods tested resulted in damaged or distorted products. Some people do use this method to make keycaps, and you can find some links to such tutorials in the Resources section. It should be noted that unless you do not have access to a 3D printer, this method will likely be much more expensive, as silicone, mold release, and resin will need to be purchased. There are a variety of resin types that can be used, but it is best to look for a resin that works well with dyes, which also need to be purchased, if contrasting colors are desired.
Step 6: Mass Production Plan
The method we have laid out for creating your own keyboard takes time and relies on the accuracy of printers. For those who would like to make multiple keyboards efficiently, two production methods have to be considered: 3D printing and molding and casting. Both processes are still feasible, but molding and casting provides a necessary advantage when it comes to producing in bulk. Below are the advantages and specifications for each method of mass production and why molding and casting is the more beneficial option.
3D Printing Method
For mass production through the use of 3D printers, a set of at least 36 customized, interchangeable keycaps would have to be printed to fit on a standard mechanical keyboard with Cherry MX switches. The keycaps would be made using two contrasting colors, preferably black and white, and would be printed in batches. Because most privately owned 3D printers are prone to printing errors, on the small-scale, 9-12 keycaps should be printed at a time to optimize printing efficiency and minimize error potentials. Typically, non-commercial 3D printing times vary from 4 hours to 7 hours based on the number of keycaps being printed in the batch, with more keycaps requiring a greater printing time. In a large-scale production environment, commercial 3D printers may be used to produce these keycaps in a more controlled setting, but printing times will still vary. With the use of commercial, more dependable 3D printers, keycap production could be accelerated by having significantly larger batches of keycaps printed at a time. However, 3D printer error is still quite common, and it may lead to additional time during printing.
The three major considerations with 3D printing include:
- the time required to print
- the amount of filament used to print
- the different colored filaments necessary.
The time required for prints will affect the power usages of 3D printers, and different filament specifications bring about varying costs. The costs for power usages will vary from printer to printer, and will vary greatly between private 3D printing and commercial printing. For the filaments, on the other hand, the most basic contrasting colors would be black text on a white frame. If this filament combination was chosen, the price and other specifications would be similar to the estimates shown below: For 36 keycaps 0.485 meters of filament/keycap 327.26 meters of filament/roll $27.90 PETG white filament $27.95 PETG black filament
Final Prices: ~ $0.04/keycap ~$1.49/keyboard (36 keycaps)*
* Note: This is the price per keyboard, given that there will be no printer error and no other unexpected expenses.
* * *
Molding and Casting Method
Unlike 3D printing, a mass production plan that revolves around casting and molding has increased feasibility with large-scale keycap production. In 3D printing methods, the process of producing large-scale numbers of keycaps is hindered by printer error and long printing times. With molding and casting, a single, reliable mold can be used repetitively to reproduce identical, functional keycaps. However, molding and casting requires a greater amount of materials prior to production, including silicone to produce the molds, resin to create the finalized keycaps, release agent to separate the liquid resin from the silicone mold, and potentially resin dyes to color the text of the keycap differently from the rest of the keycap’s structure.
Although additional materials are necessary, molding and casting is capable of producing many more keycaps at the same time. One single mold for all the keycaps on a keyboard can produce 36 keys at once, rather than only a few at a time. Each keycap requires 10-15 minutes to solidify, meaning that an entire keyboard can be produced in under 20 minutes.
The cost per keycap when compared between 3D printing and molding & casting does not vary much. Each method yields keycaps at ~$0.04 each. However, the main difference between molding and casting and 3D printing is the preparation required prior to production and the potential for error. With 3D printing, there is a high risk of a print failing, so a proper price estimate can not be made. Molding and casting with proper technique eliminates that risk. Below are the cost estimates for molding and casting keycaps:
For 36 Keycaps Mass of Keycap: 1.409 g Total resin: 914.85 g Cost of bottle of resin: $27.90
Final Prices Cost per Keycap: (1.409)/(914.85)*$27.90 = $ 0.043 Cost per Keyboard: $ 0.043 * 36 = $1.55
Step 7: Resources and References
3D Printing Materials
Site to purchase 3D printer parts and accessories: matterhackers.com
Site to purchase PRUSA printers: prusaprinters.org
Site to download PRUSA software for printing: prusacontrol.org
Site to print from nearby 3D printing hub: 3dhubs.com
Macro Keys Tutorials
Specific to G-Series Keyboard (the one we used): support.logitech.com/en_hk/article/21502?product=a0qi00000069vCMAAY
A list of easy to program mechanical keyboards: mechtype.com/best-programmable-mechanical-keyboards/
Molding & Casting Resources
Polyester Resin Cast Keycaps Tutorial: youtube.com/watch?v=5rNJhxKMUEU
Some sites that sell molding & casting materials:
 Niu, J. J. (2010) US Patent No. 20110203912. U.S. Patent and Trademark Office.
 Miller, P. (2011, October 2). Mechanical Keyboards: Should You Switch?. Retrieved from pcworld.com/article/240939/mechanical...
 Judd, W. (2012, December 7). An introduction to Cherry MX mechanical switches. Retrieved from keyboardco.com/blog/index.php/2012/12/...
 Agito, D. [David Agito]. (2016, October 28). How to make artisan keycaps / How to make your own keycaps!! [Video File]. Retrieved from youtube.com/watch?v=5rNJhxKMUEU
 Amazon. (2018). Retrieved from amazon.com/Adesso-Luminous-Multimedia...
 Califone. (2018). Retrieved from califone.com/products/kbx.php#sptab-44...
 Amazon (2018). Retrieved from amazon.com/Max-Nighthawk-Large-Print-...
 Amazon (2018). Retrieved from amazon.com/gp/product/B01IRASQA0/ref=s9_acsd_topr_hd_bw_bs2Wl_c_x_4_w?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-8&pf_rd_r=2C02Z6472V16V2NZN8D7&pf_rd_t=101&pf_rd_p=84e6d49e-2028-5f5f-9777-9f1148a3729c&pf_rd_i=12879431