# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/121/471/medium800thumb/adafruit_products_CHOC_two_wired_up_pressed.jpg?1685581077 CHOC NeoKey Breakouts in action!)

The only thing better than a nice mechanical key, is one that also can glow any color of the rainbow - and that's what the **Adafruit NeoKey Breakouts** will let you do! They make it super simple to use a mechanical keyswitch with a breadboard or perf board.

The **0.75" x 0.85**" breakout can fit one **Cherry MX or compatible switch**.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/559/medium800/adafruit_products_MX_with_key_angle.jpg?1686014433 MX NeoKey Breakout with MX key.)

The **0.75" x 0.95"** breakout can fit one **Kailh**  **CHOC** &nbsp; **or compatible switch**.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/560/medium800/adafruit_products_CHOC_with_key_side.jpg?1686014357 CHOC NeoKey breakout with CHOC keyswitch.)

Info: 

This breakout has a **Kailh MX-compatible socket** , which means you can plug in any **MX-compatible switch** instead of soldering it in.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/121/556/medium800/adafruit_products_MX_top.jpg?1686014213 MX NeoKey Breakout, socket-side up.)

Info: 

This breakout has a **Kailh CHOC socket** , which means you can plug in any **CHOC-compatible switch** instead of soldering it in.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/472/medium800/adafruit_products_CHOC_top.jpg?1685581300 CHOC NeoKey breakout, socket-side up.)

Info: 

You may need a little glue to keep the switch in place;&nbsp;hot glue or a dot of epoxy worked fine for us. We also place a 1N4148 signal diode in series with the switch, so you can create key-grid matrices without worrying about ghosted keys.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/473/medium800/adafruit_products_CHOC_back.jpg?1685581399 CHOC NeoKey breakout.)

Each breakout also has a single reverse-mount NeoPixel pointing up through the spot where many switches would have an LED to shine through. The input and output of the pixel are broken out so you can 'chain' these boards together and control them as one NeoPixel strand.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/561/medium800/adafruit_products_MX_top_angle.jpg?1686014544 MX NeoKey Breakout.)

There's plenty of flexibility for any kind of use;&nbsp;each board has the following pin out:

- **VDD (+)** The power pin for the NeoPixel;&nbsp;provide 3 to 5VDC
- **GND (-****)** The ground power pin for the NeoPixel, connect to ground
- **In (I)** and **Out (O)** The input and output to/from the NeoPixel, for chaining
- **Switch Anode (A**) - The 'positive' side of the switch+diode. If you're using the switch with a pull-up resistor, connect this pin to your microcontroller. If you're using a pull-down, connect this pin to your logic level power pin.
- **Switch Cathode (C)** - The 'negative' side of the switch+diode. If you're using the switch with a pull-up resistor, connect this pin to ground. If you're using a pull-down, connect this pin to your microcontroller.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/563/medium800/adafruit_products_CHOC_top_headers.jpg?1686014753 CHOC NeoKey breakout with header strip.)

There're&nbsp;two rows of 5-pin contacts on a 0.1" grid on both sides. Solder in both sides for mechanical stability;&nbsp;the two sides share the same pins except for one side is NeoPixel in and the opposite side has the out pin. For side-by-side wiring, we also have the cathode pin broken out on the sides, and another set of NeoPixel In/Out pins.

**Please note,**  **each order comes with one assembled PCB and a small stick of break-off header.** Soldering is required to attach the header for breadboard use. A mechanical switch and key cap are not included!

![](https://cdn-learn.adafruit.com/assets/assets/000/121/557/medium800thumb/adafruit_products_MX_in_use.jpg?1686014839 MX NeoKey Breakouts in action!)

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/121/565/medium800/adafruit_products_NeoKey_pinouts_guide.jpg?1686018594 MX socket on the left, CHOC socket on the right.)

![](https://cdn-learn.adafruit.com/assets/assets/000/121/859/medium800/adafruit_products_MX_CHOC_back.jpg?1686691611 MX socket on the left, CHOC socket on the right.)

## Key Switch Pins

- **S+ (A)**&nbsp;- This is the switch anode, the 'positive' side of the switch+diode. If you're using the switch with a pull-up resistor, connect this pin to your microcontroller. If you're using a pull-down, connect this pin to your logic level power pin.
- **S- (C)** - This is the switch cathode, the 'negative' side of the switch+diode. If you're using the switch with a pull-up resistor, connect this pin to ground. If you're using a pull-down, connect this pin to your microcontroller.

## NeoPixel Power Pins

- **VDD** - This is the power pin for the NeoPixel. Connect it to 3VDC-5VDC power.
- **GND** - This is the ground pin for the NeoPixel. Connect it to ground.

## NeoPixel Data Pins

- **IN (I)** - This is the data-in pin for the NeoPixel. Connect this to a microcontroller GPIO pin.
- **OUT (O)** - This is the data-out pin for the NeoPixel. If you are connecting more than one breakout together, you would connect this to the **IN** pin on the next breakout in the sequence.

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## CircuitPython & Python

It's easy to use your NeoKey socket breakouts with CircuitPython and the built-in `keypad` module. You can use the key switches to control the NeoPixel LEDs using the [Adafruit CircuitPython NeoPixel](https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel) library. You can create a tiny keyboard using the [Adafruit CircuitPython HID](https://github.com/adafruit/Adafruit_CircuitPython_HID) library. This page covers how to do both!

Info: 

# CircuitPython Microcontroller Wiring

The first thing you need to do is wire up your NeoKey socket breakouts. The diagram below uses the MX version, but the wiring is identical for the CHOC version.

- **QT Py GND** to **ground rail on breadboard**
- **QT Py 3V** to **power rail on breadboard**
- **Both NeoKey breakouts S+** to **power rail on breadboard**
- **Both NeoKey breakouts S-** to **ground rail on breadboard**
- **Both NeoKey breakouts C** to **ground rail on breadboard**
- **QT Py A1** to **left breakout A**
- **QT Py A2** to **right breakout A**
- **QT Py A3** to **left breakout I**
- **Left breakout O** to **right breakout I**

![adafruit_products_NeoKey_QT_Py_two_breakouts_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/121/727/medium640/adafruit_products_NeoKey_QT_Py_two_breakouts_bb.jpg?1686347735)

# Python Computer Wiring
Warning: 

- **Pi 3.3V** to **power rail on breadboard**
- **Pi GND** to **ground rail on breadboard**
- **Both NeoKey breakouts S+** to **power rail on breadboard**
- **Both NeoKey breakouts S-** to **ground rail on breadboard**
- **Both NeoKey breakouts C** to **ground rail on breadboard**
- **Pi GPIO4** to **left breakout A**
- **Pi GPIO17** to **right breakout A**
- **Pi GPIO18** to **left breakout I**
- **Left breakout O** to **right breakout I**

![adafruit_products_NeoKey_Pi_two_breakouts_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/121/745/medium640/adafruit_products_NeoKey_Pi_two_breakouts_bb.jpg?1686595822)

# Python Installation of NeoPixel Library

You'll need to install the **Adafruit\_Blinka** library that provides the CircuitPython support in Python.

From your command line run the following commands:

- `pip3 install adafruit-circuitpython-neopixel`

If your default Python is version 3 you may need to run 'pip' instead. Just make sure you aren't trying to use CircuitPython on Python 2.x, it isn't supported!

## CircuitPython Usage

To run all of the CircuitPython demos, you need to first install the **Adafruit\_CircuitPython\_NeoPixel** library and its dependency. To run the HID demo, you will also need to install the **Adafruit\_CircuitPython\_HID** library. To install a library, you copy it into the **lib** folder on your **CIRCUITPY** drive. Then you need to update **code.py** with the example script.

Thankfully, we can do this in one go. In each of the demos, click the **Download Project Bundle** button to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

**You'll find these instructions and details about necessary libraries for each specific demo with all three of the examples below.**

## Python Usage

Once you have the library `pip3` installed on your computer, copy or download the following example to your computer, and run the following, replacing **code.py** with whatever you named the file:

`python3 code.py`

## Key Press NeoPixel Random Color Demo

Click the **Download Project Bundle** button to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

Your **CIRCUITPY/lib** folder should contain the following files:

- **adafruit\_pixelbuf.mpy**
- **neopixel.mpy**

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/NeoKey_MX_and_CHOC_Breakouts_CircuitPython_NeoPixel_Random_Color_Press.png )

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/NeoKey_MX_and_CHOC_Breakouts/CircuitPython/NeoPixel_Random_Color_Press/code.py

Ensure you have everything copied to your **CIRCUITPY** drive. Once that is complete, try pressing each key to see the NeoPixel light up a random color!

![](https://cdn-learn.adafruit.com/assets/assets/000/121/750/medium800thumb/adafruit_products_NeoKey_CP_Random_Color.jpg?1686603017)

## Customisations

Each of the examples on this page have code at the beginning that includes the things that you can customise. There are three items that are present in all of the demos.

### NeoPixel Brightness

Here you can customise the brightness of the NeoPixel LED. The value must be a float or integer between 0.0 and 1.0, where 0 is off, and 1 is maximum brightness. It defaults to `0.3` because NeoPixels at max are very bright!

```python
BRIGHTNESS = 0.3
```

### Key Switch and NeoPixel Pins
Info: 

 **If you followed the CircuitPython Microcontroller Wiring or Python Computer Wiring diagrams above, you will not need to make any changes to this section of code.** However, if you changed any of the connected pins, you will need to update this to match.

### Raspberry Pi Pins

If you made changes to the wiring on a Raspberry Pi, you will need to **update the first set of pins** , nested under `if "CE0" and "CE1" in dir(board):`.

If you moved the NeoPixel IN connection to another pin on your Pi, you would update `PIXEL_PIN` to the Pi pin to which you connected the left breakout **I** pin.

If you moved either breakout **A** connection, you would update `KEY_PINS` to match.

### Microcontroller Pins

If you made changes to the wiring on a microcontroller, you will need to **update the second set of pins** , nested under `else:`.

If you moved the NeoPixel IN connection to another pin on your microcontroller, you would change `PIXEL_PIN` to the microcontroller pin to which you connected the left breakout **I** pin.

If you moved either breakout **A** connection, you would update `KEY_PINS` to match.

```python
if "CE0" and "CE1" in dir(board):
    PIXEL_PIN = board.D18
    KEY_PINS = (
        board.D4,
        board.D17,
    )
else:
    PIXEL_PIN = board.A3
    KEY_PINS = (
        board.A1,
        board.A2,
    )
```

## Set Up

Each of the examples on this page include set up code. The code snippets below are included in all three demos.

### Number of NeoPixels

The number of NeoPixels will always be equal to the number of breakouts, and therefore, to the number of key pins. To make this example extensible to more breakouts, `NUM_PIXELS` is set to the number of key pins. You will not need to update this if you add more NeoKey breakouts.

```python
NUM_PIXELS = len(KEY_PINS)
```

### NeoPixel and keypad Objects

Next you create the NeoPixel and keypad objects to enable access to the LEDs and the keys.

```auto
pixels = neopixel.NeoPixel(PIXEL_PIN, NUM_PIXELS, brightness=BRIGHTNESS)
keys = keypad.Keys(KEY_PINS, value_when_pressed=False, pull=True)
```

## Loop

Inside the loop, you first begin getting the key events. This allows you to complete actions based on a specific key event.

```python
event = keys.events.get()
```

If a key press event happens, two thing will occur.

The code prints the number of the key pressed to the serial console. Remember, Python begins counting at 0!

Finally, it sets the LED associated with the key that you pressed to a random color. `colorwheel` expects a color value between 0 and 255, which covers the entire rainbow. Using the built-in `random` module, you can set the color to a random value within that range.

```auto
if event and event.pressed:
    print(f"Key {event.key_number} pressed!")
    pixels[event.key_number] = colorwheel(random.randint(0, 255))
```

## Key Press NeoPixel Rainbow Demo

Click the **Download Project Bundle** button to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

Your **CIRCUITPY/lib** folder should contain the following files:

- **adafruit\_pixelbuf.mpy**
- **neopixel.mpy**

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/NeoKey_MX_and_CHOC_Breakouts_CircuitPython_NeoPixel_Rainbow_Press.png )

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/NeoKey_MX_and_CHOC_Breakouts/CircuitPython/NeoPixel_Rainbow_Press/code.py

Ensure you have everything copied to your **CIRCUITPY** drive. Once that is complete, try pressing each key to see the NeoPixel light up in a rainbow cycle while the key is pressed! Try releasing the key to stop the rainbow cycle.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/751/medium800thumb/adafruit_products_NeoKey_CP_Rainbow_Cycle.jpg?1686603013)

## Customisations

See the [Customisations section](https://learn.adafruit.com/neokey-breakout/circuitpython-python#customisations-3147101) above for details.

## Set Up

For the first part of the set up in this demo, see the [Set Up](https://learn.adafruit.com/neokey-breakout/circuitpython-python#set-up-3147122) section above for details.

### Create Two Lists

The final part of the code set up creates two lists.

The `pressed` list is used to track the key press state.

The `color_value` list is used to track the current color for a specific NeoPixel.

```python
pressed = [False] * NUM_PIXELS
color_value = [0] * NUM_PIXELS
```

## Loop

Inside the loop, you first begin getting the key events. This allows you to complete actions based on a specific key event.

```python
event = keys.events.get()
```

If there is a key event, used the `pressed` list to remember the state of each key when pressed.

```auto
if event:
    pressed[event.key_number] = event.pressed
```

### Rainbow Cycle

This code block advances the rainbow for the key that is currently pressed. Each time a specific key is pressed, the `color_value` is increased by 1 for that NeoPixel LED, and then the associated pixel is set to the color using `colorwheel`.

The last line in the file is a `time.sleep()` to keep things running smoothly.

```python
for index in range(NUM_PIXELS):
  if pressed[index]:
    color_value[index] += 1
    pixels[index] = colorwheel(color_value[index])

time.sleep(0.01)
```

## HID Keyboard Demo
Warning: 

Click the **Download Project Bundle** button to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/NeoKey_MX_and_CHOC_Breakouts/CircuitPython/HID/code.py

Your&nbsp; **CIRCUITPY/lib** folder should contain the following folder and files:

- **adafruit\_hid/**
- **adafruit\_pixelbuf.mpy**
- **neopixel.mpy**

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/NeoKey_MX_and_CHOC_Breakouts_CircuitPython_HID.png )

Ensure everything is copied to your **CIRCUITPY** drive. Once that is complete, open up a text editor. Press the left breakout key switch to type **b** and see the LED light up yellow. Press the right breakout key switch to type **3** and see the LED light up cyan.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/756/medium800thumb/adafruit_products_NeoKey_CP_HID.jpg?1686604979)

## Customisations

There are two customisable tuples at the beginning of this demo.

The first contains the keycodes to assign to each key, and is saved to `SEND_ON_PRESS`. You can update what each key sends by changing either member of this tuple to a different keycode.

The second contains the colors to light up each LED when the key is pressed, and is saved to `COLORS`. You can make the LEDs light up different colors by changing either of the color tuples.

```python
SEND_ON_PRESS = (
    Keycode.B,
    Keycode.THREE,
)
COLORS = (
    (255, 255, 0),
    (0, 255, 255),
)
```

For the last two options in this code, see the [Customisations section](https://learn.adafruit.com/neokey-breakout/circuitpython-python#customisations-3147101) above for details.

## Set Up

For the first part of the set up in this demo, see the [Set Up](https://learn.adafruit.com/neokey-breakout/circuitpython-python#set-up-3147122) section above for details.

The final set up is to create the keyboard object. It includes a delay to avoid a race condition on some systems.

```python
time.sleep(1)
keyboard = Keyboard(usb_hid.devices)
```

## Loop

Inside the loop, you first begin getting the key events. This allows you to complete actions based on a specific key event.

```python
event = keys.events.get()
```

### The Key Press Event

If a key is pressed, get the key number and save it to `key_number` as it is used multiple times in the rest of this block. Light up the NeoPixel associated with the key to the color associated with that switch's pixel from the `COLORS` list. Finally, send the keycode associated with that key from the `SEND_ON_PRESS` list.

```python
if event and event.pressed:
    key_number = event.key_number
    pixels[key_number] = COLORS[key_number]
    keyboard.press(SEND_ON_PRESS[key_number])
```

### The Key Release Event

If a key is released, turn off the LED associated with that key, and report that the key switch has been released.

```python
if event and event.released:
    pixels[event.key_number] = (0, 0, 0)
    keyboard.release_all()
```

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## CircuitPython keypad Docs

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## CircuitPython NeoPixel Docs

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## Arduino

Using the NeoKey Breakouts with Arduino involves wiring the breakouts up to your Arduino-compatible board, installing the&nbsp;[Adafruit\_NeoPixel](https://github.com/adafruit/Adafruit_NeoPixel) library, and running the provided example code.

## Wiring
- **QT Py GND** to **ground rail on breadboard**
- **QT Py 3V** to **power rail on breadboard**
- **Both NeoKey breakouts S+** to **power rail on breadboard**
- **Both NeoKey breakouts S-** to **ground rail on breadboard**
- **Both NeoKey breakouts C** to **ground rail on breadboard**
- **QT Py A1** to **left breakout A**
- **QT Py A2** to **right breakout A**
- **QT Py A3** to **left breakout I**
- **Left breakout O** to **right breakout I**

![adafruit_products_NeoKey_QT_Py_two_breakouts_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/121/744/medium640/adafruit_products_NeoKey_QT_Py_two_breakouts_bb.jpg?1686593849)

## Library Installation

You can install the&nbsp; **Adafruit NeoPixel** library&nbsp;for Arduino using the Library Manager in the Arduino IDE.

![](https://cdn-learn.adafruit.com/assets/assets/000/121/747/medium800/adafruit_products_Arduino_Open_Library_Manager.png?1686599954)

Click the&nbsp; **Manage Libraries ...** &nbsp;menu item, search for&nbsp; **Adafruit NeoPixel** &nbsp;and select the&nbsp; **Adafruit NeoPixel** &nbsp;library:

![](https://cdn-learn.adafruit.com/assets/assets/000/121/748/medium800/adafruit_products_Arduino_Install_NeoPixel_library.jpg?1686599965)

Info: 

## Example Code
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/NeoKey_MX_and_CHOC_Breakouts/Arduino/NeoKey_NeoPixel_Rainbow_and_HID/NeoKey_NeoPixel_Rainbow_and_HID.ino

Upload the sketch to your board. The NeoPixel LEDs on the NeoKey breakouts will light up in a rainbow swirl pattern. If you press a key, the associated LED will turn off. When you release it, the LED will begin rainbowing again!

![](https://cdn-learn.adafruit.com/assets/assets/000/121/753/medium800thumb/adafruit_products_NeoKey_Arduino_Rainbow_Off.jpg?1686602729)

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## Arduino NeoPixel Docs

# NeoKey Socket Breakout with NeoPixel for MX and CHOC Key Switches

## Downloads

## Files

- [MX key switch socket datasheet](https://cdn-learn.adafruit.com/assets/assets/000/121/499/original/MX_socket_datasheet.pdf?1685731871)
- [CHOC key switch socket datasheet](https://cdn-learn.adafruit.com/assets/assets/000/121/490/original/CHOC_socket_datasheet.pdf?1685658549)
- [MX Breakout Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20NeoKey%20MX%20Socket%20Breakout.fzpz)
- [CHOC Breakout Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20NeoKey%20CHOC%20Breakout.fzpz)
- [MX Breakout EagleCAD PCB files on GitHub](https://github.com/adafruit/Adafruit-NeoKey-Breakout-PCB)
- [CHOC Breakout EagleCAD PCB files on GitHub](https://github.com/adafruit/Adafruit-NeoKey-CHOC-Breakout-PCB)
- [MX Breakout 3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/4978%20NeoKey%20Breakout)

## MX Breakout Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/121/500/medium800/adafruit_products_MX_sch.png?1685732106)

![](https://cdn-learn.adafruit.com/assets/assets/000/121/501/medium800/adafruit_products_MX_fab_print.png?1685732118 dimensions are in inches)

![](https://cdn-learn.adafruit.com/assets/assets/000/135/455/medium800/adafruit_products_4978_NeoKey_Breakout.jpg?1740073909)

## CHOC Breakout Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/121/488/medium800/adafruit_products_CHOC_sch.png?1685658370)

![](https://cdn-learn.adafruit.com/assets/assets/000/121/489/medium800/adafruit_products_CHOC_fab_print.png?1685658388 Dimensions in inches.)


## Primary Products

### NeoKey Socket Breakout for Mechanical Key Switches with NeoPixel

[NeoKey Socket Breakout for Mechanical Key Switches with NeoPixel](https://www.adafruit.com/product/4978)
The only thing better than a nice mechanical key, is one that also can glow any color of the rainbow - and that's what the **Adafruit NeoKey Breakout** will let you do! This little 0.75" x 0.85" PCB can fit one **Cherry MX or compatible switch** and make...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4978)
[Related Guides to the Product](https://learn.adafruit.com/products/4978/guides)
### NeoKey Socket Breakout for CHOC Key Switches with NeoPixel

[NeoKey Socket Breakout for CHOC Key Switches with NeoPixel](https://www.adafruit.com/product/5756)
The only thing better than a nice mechanical key, is one that also can glow any color of the rainbow - and that's what the **Adafruit NeoKey Breakout** will let you do! This little 0.75" x 0.95" PCB can fit one Kailh&nbsp; **CHOC** &nbsp; **or...**

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

## Featured Products

### Kailh CHOC Low Profile Red Linear Key Switches - 10-pack

[Kailh CHOC Low Profile Red Linear Key Switches - 10-pack](https://www.adafruit.com/product/5113)
For crafting your very own custom keyboard, these **&nbsp;Kailh Choc Low Profile Linear Red&nbsp;mechanical key switches** &nbsp;are super slim, with ultra-low profile compared to MX compatible switches!

Please note these are **NOT MX COMPATIBLE!** They cannot be...

In Stock
[Buy Now](https://www.adafruit.com/product/5113)
[Related Guides to the Product](https://learn.adafruit.com/products/5113/guides)
### Kailh CHOC Low Profile White Clicky Key Switches

[Kailh CHOC Low Profile White Clicky Key Switches](https://www.adafruit.com/product/5114)
For crafting your very own custom keyboard, these **&nbsp;Kailh Choc Low Profile Clicky White&nbsp;mechanical key switches** &nbsp;are super slim, with ultra-low profile compared to MX compatible switches!

Please note these are&nbsp; **NOT MX...**

In Stock
[Buy Now](https://www.adafruit.com/product/5114)
[Related Guides to the Product](https://learn.adafruit.com/products/5114/guides)
### Black Kailh CHOC Slim Key Caps x 10 pack

[Black Kailh CHOC Slim Key Caps x 10 pack](https://www.adafruit.com/product/5111)
Dress up your svelte CHOC mechanical keys with these elegant Adafruit Black keycaps. These are thin and flat so they're great for&nbsp;[slim Kailh 'Chocolate' key switches](https://www.adafruit.com/?q=choc&sort=BestMatch).

Please note these are&nbsp; **NOT...**

In Stock
[Buy Now](https://www.adafruit.com/product/5111)
[Related Guides to the Product](https://learn.adafruit.com/products/5111/guides)
### Kailh Mechanical Key Switches - Linear Red - 10 pack

[Kailh Mechanical Key Switches - Linear Red - 10 pack](https://www.adafruit.com/product/4952)
For crafting your very own custom keyboard, these **Kailh Red Linear mechanical key switches** are deeee-luxe! With smooth actuation and Cherry MX compatibility, they're lovely when you want a **smooth linear** keystroke:

- Type Linear
- Operating...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4952)
[Related Guides to the Product](https://learn.adafruit.com/products/4952/guides)
### Kailh Mechanical Key Switches - Linear Black - 10 pack

[Kailh Mechanical Key Switches - Linear Black - 10 pack](https://www.adafruit.com/product/4953)
For crafting your very own custom keyboard, these **&nbsp;Kailh Black&nbsp;Linear mechanical key switches** &nbsp;are deeee-luxe! With smooth actuation and Cherry MX compatibility, they're lovely when you want a&nbsp; **smooth linear&nbsp;** keystroke with a...

In Stock
[Buy Now](https://www.adafruit.com/product/4953)
[Related Guides to the Product](https://learn.adafruit.com/products/4953/guides)
### Kailh Mechanical Key Switches - Tactile Brown - 10 pack

[Kailh Mechanical Key Switches - Tactile Brown - 10 pack](https://www.adafruit.com/product/4954)
For crafting your very own custom keyboard, these **&nbsp;Kailh Brown Linear mechanical key switches** &nbsp;are deeee-luxe! With smooth actuation and Cherry MX compatibility, they're lovely when you want a **tactile keystroke** - it's not clicky like the...

In Stock
[Buy Now](https://www.adafruit.com/product/4954)
[Related Guides to the Product](https://learn.adafruit.com/products/4954/guides)
### Kailh Mechanical Key Switches - Clicky White - 10 pack

[Kailh Mechanical Key Switches - Clicky White - 10 pack](https://www.adafruit.com/product/4955)
For crafting your very own custom keyboard, these **&nbsp;Kailh&nbsp;White Linear mechanical key switches** &nbsp;are deeee-luxe! With smooth actuation and Cherry MX compatibility, they're lovely when you want a **clicky tactile** keystroke with a snappy feel and an...

In Stock
[Buy Now](https://www.adafruit.com/product/4955)
[Related Guides to the Product](https://learn.adafruit.com/products/4955/guides)
### Translucent Keycaps for MX Compatible Switches - 10 pack

[Translucent Keycaps for MX Compatible Switches - 10 pack](https://www.adafruit.com/product/4956)
Get ready&nbsp;to clacky to your heart's content. Here is a 10 pack of translucent keycaps for your next mechanical keyboard or [NeoKey](https://www.adafruit.com/?q=neokey&sort=BestMatch) project. Snap 'em onto a&nbsp; **Cherry MX or compatible...**

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

## Related Guides

- [Ice Tube Clock Kit](https://learn.adafruit.com/ice-tube-clock-kit.md)
- [LED Stego Flex Spike Hoodie](https://learn.adafruit.com/led-stego-flex-spike-hoodie.md)
- [Adafruit USB Host BFF](https://learn.adafruit.com/adafruit-usb-host-bff.md)
- [Playing Animated GIF Files in CircuitPython](https://learn.adafruit.com/using-animated-gif-files-in-circuitpython.md)
- [Adafruit NeoPixel Driver BFF](https://learn.adafruit.com/adafruit-neopixel-driver-bff.md)
- [Adafruit TSMP96000 IR Receiver Breakout](https://learn.adafruit.com/adafruit-tsmp96000-ir-receiver-breakout.md)
- [Adafruit Neo Trinkey](https://learn.adafruit.com/adafruit-neo-trinkey.md)
- [Adafruit Trinket M0](https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino.md)
- [Last-Minute Halloween Accoutrements with HalloWing](https://learn.adafruit.com/last-minute-halloween-accoutrements-with-hallowing.md)
- [Driving TM1814 addressable LEDs](https://learn.adafruit.com/driving-tm1814-addressable-leds.md)
- [Washing Wearable Electronics](https://learn.adafruit.com/washing-wearable-electronics.md)
- [Punk LED Collar](https://learn.adafruit.com/led-punk-collar.md)
- [MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000](https://learn.adafruit.com/wifi-hotspot-finder-adafruit-pro-trinket-cc3000.md)
- [Adafruit ADG728 1-to-8 Analog Matrix Switch](https://learn.adafruit.com/adafruit-adg728-1-to-8-analog-matrix-switch.md)
- [Adafruit SCD-40 and SCD-41](https://learn.adafruit.com/adafruit-scd-40-and-scd-41.md)
