# Touch Deck: DIY Customizable TFT Control Pad

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/100/925/medium800thumb/3d_printing_touchdeck.jpg?1616540235)

Build your own Touch Deck and you'll have full-color, customizable USB controls at your fingertips. The Feather RP2040 + 3.5" TFT display running CircuitPython makes the ultimate, multi-layer DIY Stream Deck.

## Parts and Materials
![](https://cdn-learn.adafruit.com/assets/assets/000/100/819/medium800/3d_printing_IMG_0663.jpg?1616428256)

### Adafruit Feather RP2040

[Adafruit Feather RP2040](https://www.adafruit.com/product/4884)
A new chip means a new Feather, and the Raspberry Pi RP2040 is no exception. When we saw this chip we thought "this chip is going to be awesome when we give it the Feather Treatment" and so we did! This Feather features the&nbsp; **RP2040** , and all niceties you know and...

In Stock
[Buy Now](https://www.adafruit.com/product/4884)
[Related Guides to the Product](https://learn.adafruit.com/products/4884/guides)
![Angled shot of black rectangular microcontroller "Feather RP2040"](https://cdn-shop.adafruit.com/640x480/4884-04.jpg)

Info: 

### Adafruit TFT FeatherWing - 3.5" 480x320 Touchscreen for Feathers

[Adafruit TFT FeatherWing - 3.5" 480x320 Touchscreen for Feathers](https://www.adafruit.com/product/3651)
Spice up your Feather project with a beautiful 3.5" touchscreen display shield with built in microSD card socket. This TFT display is 3.5" diagonal with a bright 6 white-LED backlight. You get a massive 480x320 pixels with individual 16-bit color pixel control. It has way more...

In Stock
[Buy Now](https://www.adafruit.com/product/3651)
[Related Guides to the Product](https://learn.adafruit.com/products/3651/guides)
![Overhead shot of a Black woman's hands with a blue and pinkish-red manicure drawing a heart on a touchscreen breakout.](https://cdn-shop.adafruit.com/640x480/3651-05.jpg)

### USB Type A to Type C Cable - approx 1 meter / 3 ft long

[USB Type A to Type C Cable - approx 1 meter / 3 ft long](https://www.adafruit.com/product/4474)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4474)
[Related Guides to the Product](https://learn.adafruit.com/products/4474/guides)
![Angled shot of a coiled black, USB-C to USB-A cable.](https://cdn-shop.adafruit.com/640x480/4474-02.jpg)

### or
### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 1 meter long](https://www.adafruit.com/product/4199)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4199)
[Related Guides to the Product](https://learn.adafruit.com/products/4199/guides)
![USB C to USB C cable. USB 3.1 gen 4 with E-Mark. 1 meter long](https://cdn-shop.adafruit.com/640x480/4199-01.jpg)

## Other Parts

You'll need access to a 3D Printer + filament to print the Touch Deck case. For the case, you'll also need some fasteners and rubber feet.

### Black Nylon Machine Screw and Stand-off Set – M2.5 Thread

[Black Nylon Machine Screw and Stand-off Set – M2.5 Thread](https://www.adafruit.com/product/3299)
Totaling 380 pieces, this **M2.5 Screw Set** &nbsp;is a must-have for your workstation.&nbsp;You'll have enough screws, nuts, and hex standoffs to fuel your maker tendencies&nbsp;for days on end! M2.5 size screws fit almost all of the Adafruit breakout/dev board mounting holes...

In Stock
[Buy Now](https://www.adafruit.com/product/3299)
[Related Guides to the Product](https://learn.adafruit.com/products/3299/guides)
![Black Nylon Screw and Stand-off Set with M2.5 Threads, kit box](https://cdn-shop.adafruit.com/640x480/3299-00.jpg)

### M2.5 x 16mm Screws

You'll need four longer screws for the top of the case. I [used these](https://www.mcmaster.com/91292A018/) socket head screws for that stylish look, but any style you like will work.

![3d_printing_91292A018p1-b01-digitall_1x_637016145049831890.png](https://cdn-learn.adafruit.com/assets/assets/000/100/926/medium640/3d_printing_91292A018p1-b01-digitall_1x_637016145049831890.png?1616593261)

### Little Rubber Bumper Feet - Pack of 4

[Little Rubber Bumper Feet - Pack of 4](https://www.adafruit.com/product/550)
Keep your electronics from going barefoot, give them little rubber feet! These small sticky bumpers are our favorite accessory for any electronic kit or device. They are sticky, but not impossible to remove. They're small enough to fit onto any board, and have just enough height to give...

In Stock
[Buy Now](https://www.adafruit.com/product/550)
[Related Guides to the Product](https://learn.adafruit.com/products/550/guides)
![Angled Shot of the Little Rubber Bumper Feet - Pack of 4](https://cdn-shop.adafruit.com/640x480/550-06.jpg)

## Optional
### Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible

[Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible](https://www.adafruit.com/product/4432)
As technology changes and adapts, so does Adafruit, and speaking of _adapting_, this **_right angle_** &nbsp;_ **adapter** _&nbsp;is USB C socket-to-plug.

USB C is the latest industry-standard connector for transmitting...

In Stock
[Buy Now](https://www.adafruit.com/product/4432)
[Related Guides to the Product](https://learn.adafruit.com/products/4432/guides)
![Angled Shot of the Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible.](https://cdn-shop.adafruit.com/640x480/4432-07.jpg)

# Touch Deck: DIY Customizable TFT Control Pad

## Install CircuitPython

[CircuitPython](https://github.com/adafruit/circuitpython) is a derivative of [MicroPython](https://micropython.org) designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. Simply copy and edit files on the **CIRCUITPY** drive to iterate.

## CircuitPython Quickstart

Follow this step-by-step to quickly get CircuitPython running on your board.

[Download the latest version of CircuitPython for this board via circuitpython.org](https://circuitpython.org/board/adafruit_feather_rp2040/)
 **Click the link above to download the latest CircuitPython UF2 file.**

Save it wherever is convenient for you.

![install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/655/medium640/install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg?1618943202)

![](https://cdn-learn.adafruit.com/assets/assets/000/102/705/medium800/adafruit_products_FeatherRP_buttons_highlighted.jpg?1623167565)

To enter the bootloader, hold down the **BOOT/**** BOOTSEL button**(highlighted in red above), and while continuing to hold it (don't let go!), press and release the**reset button**(highlighted in red or blue above).&nbsp;**Continue to hold the BOOT/BOOTSEL button until the RPI-RP2 drive appears!**

If the drive does not appear, release all the buttons, and then repeat the process above.

You can also start with your board unplugged from USB, press and hold the BOOTSEL button (highlighted in red above), continue to hold it while plugging it into USB, and wait for the drive to appear before releasing the button.

A lot of people end up using charge-only USB cables and it is very frustrating! **Make sure you have a USB cable you know is good for data sync.**

You will see a new disk drive appear called **RPI-RP2**.

&nbsp;

Drag the **adafruit\_circuitpython\_etc.uf2** file to **RPI-RP2.**

![install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/656/medium640/install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg?1618943666)

![install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/657/medium640/install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg?1618943674)

The **RPI-RP2** drive will disappear and a new disk drive called **CIRCUITPY** will appear.

That's it, you're done! :)

![install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/658/medium640/install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg?1618943864)

## Safe Mode

You want to edit your **code.py** or modify the files on your **CIRCUITPY** drive, but find that you can't. Perhaps your board has gotten into a state where **CIRCUITPY** is read-only. You may have turned off the **CIRCUITPY** drive altogether. Whatever the reason, safe mode can help.

Safe mode in CircuitPython does not run any user code on startup, and disables auto-reload. This means a few things. First, safe mode _bypasses any code in_ **boot.py** (where you can set **CIRCUITPY** read-only or turn it off completely). Second, _it does not run the code in_ **code.py**. And finally, _it does not automatically soft-reload when data is written to the_ **CIRCUITPY** _drive_.

Therefore, whatever you may have done to put your board in a non-interactive state, safe mode gives you the opportunity to correct it without losing all of the data on the **CIRCUITPY** drive.

### Entering Safe Mode
To enter safe mode when using CircuitPython, plug in your board or hit reset (highlighted in red above). Immediately after the board starts up or resets, it waits 1000ms. On some boards, the onboard status LED (highlighted in green above) will blink yellow during that time. If you press reset during that 1000ms, the board will start up in safe mode. It can be difficult to react to the yellow LED, so you may want to think of it simply as a slow double click of the reset button. (Remember, a fast double click of reset enters the bootloader.)

### In Safe Mode

If you successfully enter safe mode on CircuitPython, the LED will intermittently blink yellow three times.

If you connect to the serial console, you'll find the following message.

```terminal
Auto-reload is off.
Running in safe mode! Not running saved code.

CircuitPython is in safe mode because you pressed the reset button during boot. Press again to exit safe mode.

Press any key to enter the REPL. Use CTRL-D to reload.
```

You can now edit the contents of the **CIRCUITPY** drive. Remember, _your code will not run until you press the reset button, or unplug and plug in your board, to get out of safe mode._

## Flash Resetting UF2

If your board ever gets into a really _weird_ state and CIRCUITPY doesn't show up as a disk drive after installing CircuitPython, try loading this 'nuke' UF2 to RPI-RP2. which will do a 'deep clean' on your Flash Memory. **You will lose all the files on the board** , but at least you'll be able to revive it! After loading this UF2, follow the steps above to re-install CircuitPython.

[Download flash erasing "nuke" UF2](https://cdn-learn.adafruit.com/assets/assets/000/101/659/original/flash_nuke.uf2?1618945856)
# Touch Deck: DIY Customizable TFT Control Pad

## Installing Libraries

Alongside the core CircuitPython libraries (which are baked into CircuitPython), you'll also add a number of libraries to make the Touch Deck work.

Download the [library bundle](https://circuitpython.org/libraries) here.&nbsp;

Copy the following library files and folders from the bundle to the **lib** folder on your **CIRCUITPY** drive:

- adafruit\_button
- adafruit\_display\_shapes
- adafruit\_display\_text
- adafruit\_displayio\_layout
- adafruit\_featherwing
- adafruit\_hid
- adafruit\_hx8357
- adafruit\_imageload
- adafruit\_stmpe610
- adafruit\_touchscreen

![3d_printing_tdlibs.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/816/medium640/3d_printing_tdlibs.jpg?1616258573)

# Touch Deck: DIY Customizable TFT Control Pad

## Installing the Mu Editor

Mu is a simple code editor that works with the Adafruit CircuitPython boards. It's written in Python and works on Windows, MacOS, Linux and Raspberry Pi. The serial console is built right in so you get immediate feedback from your board's serial output!

Info: Mu is our recommended editor - please use it (unless you are an experienced coder with a favorite editor already!). While it has been announced end of life in 2026, it still works fine.

You are free to use whatever text editor you wish along with a terminal program to connect to the CircuitPython REPL. Thonny is one such editor.

## Download and Install Mu
Download Mu from&nbsp;[https://codewith.mu](https://codewith.mu/).

Click the&nbsp; **Download** link for downloads and installation instructions.

Click **Start Here&nbsp;** to find a wealth of other information, including extensive tutorials and and how-to's.

&nbsp;

![circuitpython_WtCP_codewithdotmu_main_page.png](https://cdn-learn.adafruit.com/assets/assets/000/105/677/medium640/circuitpython_WtCP_codewithdotmu_main_page.png?1634749167)

Warning: 

## Starting Up Mu
The first time you start Mu, you will be prompted to select your 'mode' - you can always change your mind later. For now please select **CircuitPython**!

The current mode is displayed in the lower right corner of the window, next to the "gear" icon. If the mode says "Microbit" or something else, click the **Mode** button in the upper left, and then choose "CircuitPython" in the dialog box that appears.

![circuitpython_WtCP_Mu_mode_dialogue.png](https://cdn-learn.adafruit.com/assets/assets/000/105/681/medium640/circuitpython_WtCP_Mu_mode_dialogue.png?1634750676)

Mu attempts to auto-detect your board on startup, so if you do not have a CircuitPython board plugged in with a **CIRCUITPY** drive available, Mu will inform you where it will store any code you save until you plug in a board.

To avoid this warning, plug in a board and ensure that the **CIRCUITPY** drive is mounted before starting Mu.

![circuitpython_WtCP_Mu_device_not_found.png](https://cdn-learn.adafruit.com/assets/assets/000/105/679/medium640/circuitpython_WtCP_Mu_device_not_found.png?1634749722)

## Using Mu

You can now explore Mu! The three main sections of the window are labeled below; the button bar, the text editor, and the serial console / REPL.

![](https://cdn-learn.adafruit.com/assets/assets/000/098/505/medium800/circuitpython_Mu_Window_Explained.png?1609970219)

Now you're ready to code! Let's keep going...

# Touch Deck: DIY Customizable TFT Control Pad

## Code the Touch Deck

## Text Editor

Adafruit recommends using the Mu editor for using your CircuitPython code with the Feather. You can get more info in [this guide](https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor).

Alternatively, you can use any text editor that saves files.

## CircuitPython Code

Copy the code below and paste it into Mu. Then, save it to your Feather RP2040's CIRCUITPY drive as **code.py**.

You'll need to download the .zip file in the GitHub link below and decompress the file to get all of the **touch\_deck\_icons** directory that's full of sample icons, as well as the **touch\_deck\_layers.py** file. Copy both of these to your Feather's CIRCUITPY drive.

![3d_printing_tddrive.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/817/medium640/3d_printing_tddrive.jpg?1616258850)

## Project Files

Download the project files by clicking the Download Project Bundle link below and copy them onto your&nbsp;`CIRCUITPY` drive.&nbsp;

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

## Testing
Once you've pasted the project files onto your device, it will automatically reboot and begin running the touch deck app using the build-in example layers. Open up a text editor and click into it to give it focus. Press the "Play" icon at the top left of the screen. If everything working properly you should see "k" get typed into the text editor. If the touch deck app does not launch for you try opening the Mu Serial Console and check to see if there are any errors printed in there.&nbsp;

## How it Works
### Hardware Driver

This project is made to work with the `adafruit_featherwing` [library](https://github.com/adafruit/Adafruit_CircuitPython_FeatherWing "FeatherWing Touch") contains a helper class that we use to initialize the touch overlay and display. Once we've done that, we're ready to start drawing things on the screen and reacting to user touches.

### Graphical Interface

There are two main components used in the interface: GridLayout and IconWidget. Both of them are in the `adafruit_displayio_layout` [library](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_Layout). The IconWidget component contains an image, and optionally some text beneath it. All of the shortcut icons in the touch deck are IconWidget objects. The layer buttons on the right side are also IconWidgets, with a differently shaped image and no text. GridLayout is the widget we use to distribute our IconWidgets into a 4x3 grid. It does all the mathematical heavy lifting to size and position all of the widgets that we add to it.

### Shortcut Sending

Whenever you press one of the touch deck icons, the code uses the `adafruit_hid` [library](https://github.com/adafruit/Adafruit_CircuitPython_HID) to send the keys, consumer codes, or strings specified by your layers configuration file.

### Configuration

The code reads a configuration dictionary object from the file `touch_deck_layers.py`. Within this file, you can define the layers of icons that you'd like to use, and set the keys and other shortcuts they'll send when you touch them.

## Customizing the Layers File

Your layers file is where you define what icons you want to use and what actions they should do when you press them. These are grouped into lists known as layers. Each layer can hold up to 12 icons. Each layer contains a `name` that will get shown at the top of the screen.

Each item in the layer has three properties: `label`, `icon`, and `actions`. The `icon` is a string filepath pointing to the bmp image that should be shown. All of the icons in this project are in the `touch_deck_icons/` directory. The `label` property is the text that will be shown under the icon image. Lastly, the `actions` are the things to do when you press on the icon -- keys to press, or strings to write.

There are five types of actions that can be used on an icon. Each icon can have a single action, or a list of actions that will get run in sequence.

### `KEY`

This will press and release a single key. It can also contain modifier keys that will be held down while the selected key is pressed.&nbsp;

```python
{
    "label": "Play",
    "icon": "touch_deck_icons/pr_play.bmp",
    "actions": (KEY, [Keycode.K]),
 },
 {
    "label": "Fast",
    "icon": "touch_deck_icons/pr_fast.bmp",
    "actions": (KEY, [Keycode.RIGHT_SHIFT, Keycode.PERIOD]),
}
```

In the example above, there is a "Play" shortcut that presses the " **k**" key, and a "Fast" shortcut that holds shift while pressing the period key, which would make " **\>**" -- which is the fast forward shortcut for YouTube.

### `MEDIA`

This action type will send the specified consumer control codes.&nbsp;

```python
{
    "label": "Vol +",
    "icon": "touch_deck_icons/pr_volup.bmp",
    "actions": (MEDIA, ConsumerControlCode.VOLUME_INCREMENT),
},
```

This shortcut will press the **volume up** key.

`STRING`

The STRING action type will write a string using the US Keyboard Layout. You can use this to type words.

```python
{
    "label": "Blinka",
    "icon": "touch_deck_icons/af_blinka.bmp",
    "actions": (STRING, ":blinka:"),
}
```

This shortcut will type the string " **:blinka:**" which gets interpreted by Discord as an emoji and gets replaced by a Blinka icon on the Adafruit Discord server.

### `KEY_PRESS` and&nbsp;`KEY_RELEASE`

The final 2 action types are meant to be used together. These allow you to hold a key down while pressing several other keys. These are helpful for PC shortcuts like "hold alt and type 1234". `KEY_PRESS` will press and hold a key down. Then you can do some other actions. And finally `KEY_RELEASE` will release the pressed key. `KEY_RELEASE` will release the pressed key.

&nbsp;

```python
{
    "label": "Test (L)",
    "icon": "touch_deck_icons/test48_icon.bmp",
    "actions": [
        (KEY_PRESS, [Keycode.SHIFT]),
        (KEY, [Keycode.B]),
        (KEY, [Keycode.L]),
        (KEY, [Keycode.I]),
        (KEY, [Keycode.N]),
        (KEY, [Keycode.K]),
        (KEY, [Keycode.A]),
        (KEY_RELEASE, [Keycode.SHIFT])
    ]
},
```

This example holds the shift key down, and then presses the B, L, I, N, K, A keys in succession.

## Full Layers File

&nbsp;

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/CircuitPython_Touch_Deck/touch_deck_layers.py

# Touch Deck: DIY Customizable TFT Control Pad

## Assemble the Touch Deck

![](https://cdn-learn.adafruit.com/assets/assets/000/100/822/medium800/3d_printing_td-0749.jpg?1616461141)

To build the case as shown here, first 3D print the base and top models:

[Touch Deck Case 3D Model](https://www.thingiverse.com/thing:4803265)
## Feather + Wing

Solder header pins under the Feather board as shown so that you can plug it into the TFT FeatherWing.

[See this guide section](https://learn.adafruit.com/adafruit-feather-rp2040-pico/assembly#soldering-in-plain-headers-2295747-7) on "Soldering Plain Headers" for more info.

![3d_printing_td-0733.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/823/medium640/3d_printing_td-0733.jpg?1616462282)

![3d_printing_td-0732.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/824/medium640/3d_printing_td-0732.jpg?1616462289)

![](https://cdn-learn.adafruit.com/assets/assets/000/100/828/medium800/3d_printing_td-0731.jpg?1616462596)

Warning: 

## Case Top

The TFT fits into the case top snugly. Note that the bezel has one slightly wider side which should be on the right side of the display to cover the blank area of the screen assembly.

![3d_printing_td-0728.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/829/medium640/3d_printing_td-0728.jpg?1616463679)

![3d_printing_td-0727.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/830/medium640/3d_printing_td-0727.jpg?1616463726)

![3d_printing_td-0729.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/831/medium640/3d_printing_td-0729.jpg?1616463744)

![3d_printing_td-0730.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/832/medium640/3d_printing_td-0730.jpg?1616463758)

## Top Screws

Insert the four M2.5 x 16mm long screws from the top of the case, going through the mounting holes of the TFT. Thread the four nuts onto the screws, getting them finger tight.

![](https://cdn-learn.adafruit.com/assets/assets/000/100/836/medium800/3d_printing_td-0723.jpg?1616463987)

## Standoffs

Assemble four sets of standoffs and screws into two different lengths as shown. These will be screwed onto the long screws from underneath the base.

Insert the two longer standoffs into the deeper holes, and the two shorter standoffs into the shallower holes.

![3d_printing_td-0735.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/840/medium640/3d_printing_td-0735.jpg?1616464103)

![3d_printing_td-0736.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/841/medium640/3d_printing_td-0736.jpg?1616464111)

![3d_printing_td-0724.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/842/medium640/3d_printing_td-0724.jpg?1616464222)

![3d_printing_td-0726.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/843/medium640/3d_printing_td-0726.jpg?1616464232)

## Assemble

Push the case top and screen/Feather into the base and then screw the standoffs onto the screws.

You can see here some suggested placements for the four rubber bumper feet. These help prevent sliding.

![](https://cdn-learn.adafruit.com/assets/assets/000/100/851/medium800/3d_printing_td-0739.jpg?1616464354)

![](https://cdn-learn.adafruit.com/assets/assets/000/100/863/medium800/3d_printing_td-0721.jpg?1616464384)

## USB Plug

You can plug your Touch Deck into your computer directly with a USB-C cable, or get a snazzy right angle adapter!

![3d_printing_td-0741.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/909/medium640/3d_printing_td-0741.jpg?1616539221)

![3d_printing_td-0744.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/910/medium640/3d_printing_td-0744.jpg?1616539228)

![3d_printing_td-0745.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/911/medium640/3d_printing_td-0745.jpg?1616539237)

![3d_printing_td-0748.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/912/medium640/3d_printing_td-0748.jpg?1616539250)

![](https://cdn-learn.adafruit.com/assets/assets/000/100/916/medium800/3d_printing_td-0749.jpg?1616539264)

## Use the Touch Deck

The Touch Deck launches with your default layer of icons. Use any of them now, or pick a different layer with the Layer Next or Layer Back buttons.

Press the Layer Home button to return to your default layer at any time.

![3d_printing_td-0707.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/918/medium640/3d_printing_td-0707.jpg?1616539348)

![3d_printing_td-0713.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/920/medium640/3d_printing_td-0713.jpg?1616539380)

![3d_printing_td-0711.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/921/medium640/3d_printing_td-0711.jpg?1616539406)

![3d_printing_td-0712.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/922/medium640/3d_printing_td-0712.jpg?1616539455)

![](https://cdn-learn.adafruit.com/assets/assets/000/100/924/medium800thumb/3d_printing_touchdeck.jpg?1616540216)

## Customize

The Touch Deck download from the previous page includes the icons and layer file for three different pages: YouTube Controller, Discord Adafruit Emoji, and Greek/Math Symbols.

You can create your own custom icons and layers, such as this Wirecast streaming setup that includes eight camera switching controls plus four app launcher/switcher buttons.

![3d_printing_td-0714.jpg](https://cdn-learn.adafruit.com/assets/assets/000/100/923/medium640/3d_printing_td-0714.jpg?1616539614)


## Featured Products

### Adafruit Feather RP2040

[Adafruit Feather RP2040](https://www.adafruit.com/product/4884)
A new chip means a new Feather, and the Raspberry Pi RP2040 is no exception. When we saw this chip we thought "this chip is going to be awesome when we give it the Feather Treatment" and so we did! This Feather features the&nbsp; **RP2040** , and all niceties you know and...

In Stock
[Buy Now](https://www.adafruit.com/product/4884)
[Related Guides to the Product](https://learn.adafruit.com/products/4884/guides)
### Adafruit TFT FeatherWing - 3.5" 480x320 Touchscreen for Feathers

[Adafruit TFT FeatherWing - 3.5" 480x320 Touchscreen for Feathers](https://www.adafruit.com/product/3651)
Spice up your Feather project with a beautiful 3.5" touchscreen display shield with built in microSD card socket. This TFT display is 3.5" diagonal with a bright 6 white-LED backlight. You get a massive 480x320 pixels with individual 16-bit color pixel control. It has way more...

In Stock
[Buy Now](https://www.adafruit.com/product/3651)
[Related Guides to the Product](https://learn.adafruit.com/products/3651/guides)
### Adafruit Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
### FeatherS2 - ESP32-S2 Feather Development Board

[FeatherS2 - ESP32-S2 Feather Development Board](https://www.adafruit.com/product/4769)
Introducing the **FeatherS2** - The full-featured ESP32-S2 based development board in a Feather format from Unexpected Maker. The FeatherS2 is a power house, fully souped up with **16 MB of Flash memory** (for firmware and file storage) and **8 MB of QSPI-based...**

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/4769)
[Related Guides to the Product](https://learn.adafruit.com/products/4769/guides)
### Adafruit Feather nRF52840 Express

[Adafruit Feather nRF52840 Express](https://www.adafruit.com/product/4062)
The **Adafruit Feather nRF52840 Express** is the new Feather family member with Bluetooth® Low Energy and _native USB support_ featuring the nRF52840!&nbsp; It's our take on an 'all-in-one' Arduino-compatible + Bluetooth® Low Energy with built-in USB...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4062)
[Related Guides to the Product](https://learn.adafruit.com/products/4062/guides)

## Related Guides

- [Adafruit 3.5" 480x320 TFT FeatherWing](https://learn.adafruit.com/adafruit-3-5-tft-featherwing.md)
- [Adafruit Feather M4 Express](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51.md)
- [Introducing the Adafruit nRF52840 Feather](https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather.md)
- [Introducing Adafruit Feather RP2040](https://learn.adafruit.com/adafruit-feather-rp2040-pico.md)
- [Control Electronics with your Brain using NextMind](https://learn.adafruit.com/control-electronics-with-your-brain-using-nextmind.md)
- [Adafruit NeoPXL8 FeatherWing and Library](https://learn.adafruit.com/adafruit-neopxl8-featherwing-and-library.md)
- [Driving TM1814 addressable LEDs](https://learn.adafruit.com/driving-tm1814-addressable-leds.md)
- [PermaProto Feather Case](https://learn.adafruit.com/permaproto-feather-case.md)
- [CircuitPython BLE Libraries on Any Computer](https://learn.adafruit.com/circuitpython-ble-libraries-on-any-computer.md)
- [CircuitPython Text Editor On The Go](https://learn.adafruit.com/circuitpython-text-editor-on-the-go.md)
- [Creating Custom Symbol Fonts for Adafruit GFX Library](https://learn.adafruit.com/creating-custom-symbol-font-for-adafruit-gfx-library.md)
- [Soundboard Speaker for Bikes & Scooters](https://learn.adafruit.com/soundboard-speaker-for-bikes-scooters.md)
- [OOZE MASTER 3000: NeoPixel Simulated Liquid Physics](https://learn.adafruit.com/ooze-master-3000-neopixel-simulated-liquid-physics.md)
- [Using LittlevGL with Adafruit Displays](https://learn.adafruit.com/using-littlevgl-with-adafruit-displays.md)
- [Bluefruit Ouija Board](https://learn.adafruit.com/bluefruit-ouija-board.md)
- [CircuitPython Display_Text Library](https://learn.adafruit.com/circuitpython-display-text-library.md)
- [Mouse and Keyboard Control Using TinyUSB and BLE](https://learn.adafruit.com/mouse-and-keyboard-control-using-tinyusb-and-ble.md)
- [Wirelessly Code your Bluetooth Device with CircuitPython](https://learn.adafruit.com/wirelessly-code-your-bluetooth-device-with-circuitpython.md)
- [Multi-Sensor IoT Environmental Sensor Box With CircuitPython](https://learn.adafruit.com/remote-iot-environmental-sensor.md)
