# MacroPad Braille Keycaps

## Overview

https://youtu.be/xQzjwiSfizI

Accessibility Keycaps for the Mechanical Keyboards.

These keycaps are 3D printed with the braille alphabet so folks can touch and feel their keyboard shortcuts.

We thought it’d be nice to have audible feedback so a tone is played when a key is pressed.

The Adafruit MacroPad features the RP2040 chip and has a built-in speaker for generating tones and playing audio files.

We think the Adafruit MacroPad is great for making custom input devices for accessibility projects.

![3d_printing_on-stand.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/519/medium640/3d_printing_on-stand.jpg?1626811842)

![3d_printing_bumps-close.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/520/medium640/3d_printing_bumps-close.jpg?1626812030)

Braille is a writing system that features raised bumps called cells.&nbsp;To make these keycaps, we referenced a peel-and-stick overlay that features functions keys and special characters.

The keycaps are compatible with Cherry MX and Kailh Box switches.

You can print the keycaps in one piece or just the top cover for existing keycaps.

The keycaps are installed by press fitting them over the stem of the mechanical key switch.

The resolution and print quality is good enough for making this style of keycaps.

![3d_printing_add-ons.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/502/medium640/3d_printing_add-ons.jpg?1626720029)

![3d_printing_braille-sheet.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/514/medium640/3d_printing_braille-sheet.jpg?1626799536)

## Parts
Featured
### Adafruit MACROPAD RP2040 Bare Bones - 3x4 Keys + Encoder + OLED

[Adafruit MACROPAD RP2040 Bare Bones - 3x4 Keys + Encoder + OLED](https://www.adafruit.com/product/5100)
Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here, stands for Microcontroller because this 3x4 keyboard controller features the newest technology from the Raspberry Pi sector: say hello to the RP2040. It's a speedy...
In Stock
[Buy Now](https://www.adafruit.com/product/5100)
[Related Guides to the Product](https://learn.adafruit.com/products/5100/guides)
![Angled shot of MacroPad](https://cdn-shop.adafruit.com/640x480/5100-00.jpg)

Featured
### Adafruit MacroPad RP2040 Starter Kit - 3x4 Keys + Encoder + OLED

[Adafruit MacroPad RP2040 Starter Kit - 3x4 Keys + Encoder + OLED](https://www.adafruit.com/product/5128)
Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here stands for Microcontroller because this 3x4 keyboard controller features the newest technology from the Raspberry Pi sector: say hello to the RP2040. It's a speedy...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5128)
[Related Guides to the Product](https://learn.adafruit.com/products/5128/guides)
![Video of a hand playing with a rainbow-glowing keypad.](https://cdn-shop.adafruit.com/product-videos/640x480/5128-08.jpg)

Featured
### USB Type C Cable with Data/Charge Switch

[USB Type C Cable with Data/Charge Switch](https://www.adafruit.com/product/4696)
Perhaps your smart phone, tablet, or even your Raspberry Pi 4,&nbsp;charges off of USB, but can you really trust that charging station at the airport? Now you can control when to allow data in or out of your device with this specially-designed USB cable._Voila!_ Your cable's data...

In Stock
[Buy Now](https://www.adafruit.com/product/4696)
[Related Guides to the Product](https://learn.adafruit.com/products/4696/guides)
![Angled shot of coiled USB-C data/charge cable.](https://cdn-shop.adafruit.com/640x480/4696-03.jpg)

# MacroPad Braille Keycaps

## Code

This uses the CircuitPython MacroPad library to make customizable shortcuts with Lights and Sounds.

The main loop checks for key events and handles inputs if it's a keycode or consumer control such as volume and media playback.

The shortcuts are stored in a separate file that contains a dictionary of keys.

Here you can set the tone, label, keycode type and the key sequence.

&nbsp;

With CircuitPython, you have access to the code with the USB drive, which is great when developing across different computers.

![3d_printing_code-close.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/516/medium640/3d_printing_code-close.jpg?1626799738)

![3d_printing_CP-hero.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/517/medium640/3d_printing_CP-hero.jpg?1626799777)

## Code and Shortcuts

Follow the instructions to save the following&nbsp; **code.py** file, the **shortcuts.py** file, and the necessary libraries to your **CIRCUITPY** drive.

Click the **Download Project Bundle** button below to download the necessary libraries. the **code.py** file, and&nbsp; **shortcuts.py&nbsp;** file in a zip file. Extract the contents of the zip file and choose the folder that matches the version of CircuitPython you are using. Copy the **entire**  **lib**  **folder** , the **code.py** file, and the&nbsp; **shorcuts.py&nbsp;** file to your **CIRCUITPY** drive.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/MacroPad_Braille_Keycaps/code.py

![](https://cdn-learn.adafruit.com/assets/assets/000/103/546/medium800/3d_printing_dir.jpg?1626875321)

## Configuration

The **shortcuts.py** file contains a Python dictionary that allows you to easily configure what each key will do in terms of the following:

- The tone in Hz to play.
- The label to show on the display (should be kept to 6 characters or less to fit).
- The key type being sent (e.g. KC for Keycode or CC for Consumer Control Code).
- The key sequence (the keycode or group of keycodes to send on key press).

Each of the multi-entry lines in the dictionary have all four pieces of information for each key. To configure a key differently, simply update the associated line to have the desired tone, display label, key type abbreviation, and the key sequence.

For example, to update the first key to play a different tone and send the letter "a", I would change line 29 to the following:

```python
(185, 'a', 'KC', [macropad.Keycode.A]),
```

That's all there is to configuring your MacroPad shortcuts.

# MacroPad Braille Keycaps

## 3D Printing

## Parts List

&nbsp;

STL files for 3D printing are oriented to print "as-is" on FDM style machines. Parts are designed to 3D print without any support material. Original design source may be downloaded using the links below.

![3d_printing_keycaps-spread.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/504/medium640/3d_printing_keycaps-spread.jpg?1626721299)

## Slicing Parts

Supports are required for the full keycaps. Slice with setting for PLA material.&nbsp;

The parts were sliced using CURA using the slice settings below.

- PLA filament 220c extruder
- 0.2 layer height
- 10% gyroid infill
- 60mm/s print speed
- 60c heated bed

![3d_printing_slice.gif](https://cdn-learn.adafruit.com/assets/assets/000/103/503/medium640thumb/3d_printing_slice.jpg?1626721139)

## Supports

- Support Extrusion Width: .2
- Support Density: 4%
- Support Z Height: .21
- Interface: Off
- Support Roof: On
- Support Pattern: Zig Zag
- Support Roof Pattern: Zig Zag

![3d_printing_supports.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/505/medium640/3d_printing_supports.jpg?1626721456)

[Edit Design](https://a360.co/3ze4HLz)
[Download STLs](https://www.thingiverse.com/thing:4913712)
## Assembly

&nbsp;

The keycaps are compatible with Cherry MX and Kailh Box switches.

You can print the keycaps in one piece or just the top cover for existing keycaps.

The keycaps are installed by press fitting them over the stem of the mechanical key switch.

![3d_printing_steam.jpg](https://cdn-learn.adafruit.com/assets/assets/000/103/518/medium640/3d_printing_steam.jpg?1626811780)


## Guide Products

### Adafruit MACROPAD RP2040 Bare Bones - 3x4 Keys + Encoder + OLED

[Adafruit MACROPAD RP2040 Bare Bones - 3x4 Keys + Encoder + OLED](https://www.adafruit.com/product/5100)
Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here, stands for Microcontroller because this 3x4 keyboard controller features the newest technology from the Raspberry Pi sector: say hello to the RP2040. It's a speedy...
In Stock
[Buy Now](https://www.adafruit.com/product/5100)
[Related Guides to the Product](https://learn.adafruit.com/products/5100/guides)
### Adafruit MacroPad RP2040 Starter Kit - 3x4 Keys + Encoder + OLED

[Adafruit MacroPad RP2040 Starter Kit - 3x4 Keys + Encoder + OLED](https://www.adafruit.com/product/5128)
Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here stands for Microcontroller because this 3x4 keyboard controller features the newest technology from the Raspberry Pi sector: say hello to the RP2040. It's a speedy...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5128)
[Related Guides to the Product](https://learn.adafruit.com/products/5128/guides)
### USB Type C Cable with Data/Charge Switch

[USB Type C Cable with Data/Charge Switch](https://www.adafruit.com/product/4696)
Perhaps your smart phone, tablet, or even your Raspberry Pi 4,&nbsp;charges off of USB, but can you really trust that charging station at the airport? Now you can control when to allow data in or out of your device with this specially-designed USB cable._Voila!_ Your cable's data...

In Stock
[Buy Now](https://www.adafruit.com/product/4696)
[Related Guides to the Product](https://learn.adafruit.com/products/4696/guides)
### Proto-Pasta - 1.75mm 500g Conductive PLA Filament

[Proto-Pasta - 1.75mm 500g Conductive PLA Filament](https://www.adafruit.com/product/2703)
It'd be [Fusilli](https://en.wikipedia.org/wiki/Fusilli) not to buy this filament! [Pici](https://en.wikipedia.org/wiki/Pici) up this filament today! Did we [tagliatelle](https://en.wikipedia.org/wiki/Tagliatelle) you enough about this filament yet? Are...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/2703)
[Related Guides to the Product](https://learn.adafruit.com/products/2703/guides)

## Related Guides

- [Adafruit MacroPad RP2040](https://learn.adafruit.com/adafruit-macropad-rp2040.md)
- [An Introduction to RP2040 PIO with CircuitPython](https://learn.adafruit.com/intro-to-rp2040-pio-with-circuitpython.md)
- [Kitty Toe Bean Keypad with Color TFT](https://learn.adafruit.com/kitty-toe-bean-paw-keypad-color-tct.md)
- [3D Printed Frame for Adafruit IS31FL3741 LED Glasses](https://learn.adafruit.com/3d-printed-frame-for-led-glasses-is31fl3741.md)
- [Dragon Drop: a CircuitPython Game for MacroPad](https://learn.adafruit.com/dragon-drop-a-circuitpython-game-for-macropad.md)
- [Adafruit Circuit Playground Express](https://learn.adafruit.com/adafruit-circuit-playground-express.md)
- [MacroPad Summer Olympics Hotkeys](https://learn.adafruit.com/macropad-olympic-hotkeys.md)
- [FunHouse 3D Printed Stand](https://learn.adafruit.com/funhouse-3d-printed-stand.md)
- [3D Printed Stand for MacroPad RP2040](https://learn.adafruit.com/3d-printed-stand-for-macropad-rp2040.md)
- [Big Key Switches Macro Pad](https://learn.adafruit.com/big-key-switch.md)
- [MacroPad Remote Procedure Calls over USB to Control Home Assistant](https://learn.adafruit.com/macropad-remote-procedure-calls-over-usb-to-control-home-assistant.md)
- [MacroPad 2FA TOTP Authentication Friend](https://learn.adafruit.com/macropad-2fa-totp-authentication-friend.md)
- [DIY Decorative Resin Keycaps](https://learn.adafruit.com/diy-decorative-resin-keycaps.md)
- [Glow Lantern Zipper Pulls](https://learn.adafruit.com/glow-lantern-zipper-pulls.md)
- [Ableton Live MacroPad Launcher](https://learn.adafruit.com/ableton-live-macropad-launcher.md)
- [Scrambled Number Security Keypad](https://learn.adafruit.com/scrambled-number-security-keypad.md)
