# Fisher-Price USB Foot Pedal

## Overview

![Fisher-Price Kick Piano as a Foot Pedal](https://cdn-learn.adafruit.com/assets/assets/000/122/271/medium800/hacks_IMG_7802_foot.png?1689278411)

If your little one has the Fisher-Price Deluxe Kick & Play Piano Gym, then you will know all about the "purple monkey in a bubble-gum tree" ♫ song and the endless hours of entertainment. Its a great sensory toy but when it reaches its end of life, it can be easily modded into a pretty durable 5-button USB foot pedal.

This guide will show you how to turn this Fisher-Price Kick Piano into a real USB controller with an easily configurable keyboard mode. Map extra buttons to your feet when gaming or create shortcuts for repetitive work tasks. With just a KB2040, a 3D printed mount, and some basic soldering skills, you can give this toy new life as a productivity tool.

## Features:

- **Keyboard + Macros:** CircuitPython code simulating keyboard output.
  - Five programmable buttons
  - Single button press
  - Combo button press
  - Macro sequence of single/combo button presses

- **Controller with GP2040:** Optional open source gamepad firmware.
  - Multiple controller modes (X-Input, DirectInput, Nintendo Switch)
  - Custom button mapping (default: 1=Left, 2=Right, 3=Start, 4=B, 5=A)
  - Web Configurator

## Materials & Tools:

- **Deluxe Kick & Play Piano Gym**
- An Adafruit KB2040 microcontroller
- About 4-5ft of jumper wire (Thin 30 AWG wire wrap recommended)
- A soldering iron and solder
- Flush angled cutter pliers
- A drill and 1/8 in drill bit (optional)
- 3D printed cutting jig (optional)
- A multimeter (optional)
- Phillips screwdriver
- USB-C cable

## Materials:
### Fisher-Price Deluxe Kick & Play Piano Gym

Made by [Mattel](https://shop.mattel.com/products/fisher-price-deluxe-kick-play-piano-gym-fvy53), available at Amazon and other resellers online.

![Fisher-Price Delux Kick & Play Piano Gym](https://cdn-learn.adafruit.com/assets/assets/000/122/225/medium640/hacks_fisher-price-gym.png?1689278436)

### Adafruit KB2040 - RP2040 Kee Boar Driver

[Adafruit KB2040 - RP2040 Kee Boar Driver](https://www.adafruit.com/product/5302)
A wild Kee Boar appears! It’s a shiny **KB2040**! An Arduino Pro Micro-shaped board for Keebs with RP2040. (#keeblife 4 evah) A lot of folks like using Adafruit parts for their Keeb builds – but with the ItsyBitsy not being pin-compatible with the Pro Micro pinout, it...

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

### Rainbow "Wire Wrap" Thin 30 AWG Prototyping & Repair Wire

[Rainbow "Wire Wrap" Thin 30 AWG Prototyping & Repair Wire](https://www.adafruit.com/product/4730)
This stuff is called "wire-wrap wire" because it used to be used for wire-wrapping high-speed digital circuits on a special kind of contact board. It's pretty rare to see wire-wrapping in these days of low-cost PCB fabrication, but the wire is still really handy for prototyping...

In Stock
[Buy Now](https://www.adafruit.com/product/4730)
[Related Guides to the Product](https://learn.adafruit.com/products/4730/guides)
![Large spool of Rainbow Wire Wrap Thin Prototyping & Repair Wire](https://cdn-shop.adafruit.com/640x480/4730-00.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)

If needed/desired:

### Flush diagonal cutters

[Flush diagonal cutters](https://www.adafruit.com/product/152)
These are the best diagonal cutters, large super-comfortable grip to use and have strong nippers for perfect trimming of wires and leads. I've used my pair every day for years.

In Stock
[Buy Now](https://www.adafruit.com/product/152)
[Related Guides to the Product](https://learn.adafruit.com/products/152/guides)
![Red and black diagonal flush cutters](https://cdn-shop.adafruit.com/640x480/152-02.jpg)

### Digital Multimeter - Model 9205B+

[Digital Multimeter - Model 9205B+](https://www.adafruit.com/product/2034)
This massive multimeter has everything but the kitchen sink included. It's a great addition to any workbench or toolbox. &nbsp;It's low cost, simple to use, and has a big clear display with all the measurements you need and more!

The multimeter includes:

- AC/DC Voltage...

In Stock
[Buy Now](https://www.adafruit.com/product/2034)
[Related Guides to the Product](https://learn.adafruit.com/products/2034/guides)
![Angled shot of a Digital Multimeter - Model 9205B+. ](https://cdn-shop.adafruit.com/640x480/2034-01.jpg)

# Fisher-Price USB Foot Pedal

## Mod the Pedal

![Fisher-Price Piano Modded with microcontroller exposed](https://cdn-learn.adafruit.com/assets/assets/000/122/266/medium800/hacks_IMG_7806.png?1689278480)

## How it works

The piano has five piano keys with a button underneath each. These can be easily tapped into by soldering a wire directly to one of the pins on each button board. When a key is pressed the voltage signal of the corresponding button wire will go high.

By connecting each of these buttons to GPIO pins of a microcontroller like the Adafruit KB2040, you can programmatically detect a button press when the voltage goes from low to high. (ex: 0 → 3.3v)

### Disassemble&nbsp;

Start off by removing the 16 Phillips-head screws along the bottom side of the piano.

Gently pull apart the two halves with the top half remaining facedown. This will help prevent the plastic piano keys from falling out of place.

![hacks_IMG_7803.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/122/263/medium640/hacks_IMG_7803.jpeg?1688478347)

![hacks_IMG_7228.png](https://cdn-learn.adafruit.com/assets/assets/000/122/314/medium640/hacks_IMG_7228.png?1688590639)

### Mount the Microcontroller

There is a lot of free space within this toy to mount your microcontroller. So you have a lot of options. For this guide we'll use a 3D printed mount for holding the KB2040 and cutting a small opening for exposing the USB-C port within the barrel on the far right end.

[Download STL Files](https://www.printables.com/model/520095-fisher-price-usb-foot-pedal-mountjig/files)
The 3D printed mount fits the KB2040 stealthily within either the left or right ends (used to screw the piano to the rest of gym). This way the piano can be easily restored to normal function later down the road and the cuts will remain hidden.

Mounting to the right-side is ideal as it is close enough to reach the existing power wires.

![hacks_IMG_7945.png](https://cdn-learn.adafruit.com/assets/assets/000/122/363/medium640/hacks_IMG_7945.png?1688776636)

### Cut the Case

Using the 3D printed jig you can drill some initials holes on either end and then use flush cutter pliers to trim out the remaining.

Roughly a 9mm x 2.8mm opening for the KB2040's USB-C port.

![hacks_IMG_7731.png](https://cdn-learn.adafruit.com/assets/assets/000/122/277/medium640/hacks_IMG_7731.png?1688511430)

![hacks_IMG_7730_cut.png](https://cdn-learn.adafruit.com/assets/assets/000/122/295/medium640/hacks_IMG_7730_cut.png?1688574837)

### Fit the Mount

Slide the button end of the KB2040 into the notches of the mount.

Then slide the mount and KB2040 into place to verify the USB-C connector fits within the hole cut.

![hacks_IMG_7357_post.png](https://cdn-learn.adafruit.com/assets/assets/000/122/311/medium640/hacks_IMG_7357_post.png?1688584133)

![hacks_IMG_7749.png](https://cdn-learn.adafruit.com/assets/assets/000/122/370/medium640/hacks_IMG_7749.png?1688778246)

### Connect the Power

To make sure the piano is within a safe operating range for the KB2040 GPIO to read input from, you can power the piano by USB through the KB2040's built-in voltage regulated 3.3v pin.

Start by cutting the red and black wires coming out of the battery compartment.

![hacks_IMG_7736.png](https://cdn-learn.adafruit.com/assets/assets/000/122/356/medium640/hacks_IMG_7736.png?1688771083)

Cut as close to the plastic as possible to ensure there is enough length to reach the microcontroller.

Then solder the **red** wire to the **3V** pin and the **black** wire to a **GND** pin of the KB2040.

![hacks_IMG_7737.png](https://cdn-learn.adafruit.com/assets/assets/000/122/358/medium640/hacks_IMG_7737.png?1688771200)

### Wire the Boot Button (optional)

Optionally the "Try Me" button, which is normally triggered by the packaging, can be repurposed into an externally accessible boot button for the KB2040.

Start by cutting the two wires for the "Try Me" button close to the main PCB of the piano.

![hacks_IMG_7739.png](https://cdn-learn.adafruit.com/assets/assets/000/122/362/medium640/hacks_IMG_7739.png?1688774434)

Then solder either one of leads to the small circle solder pad on the bottom of the KB2040 and other to one of the ground pins.

Make sure to route the wire going to the underside of the KB2040, through the small slot under the mount.

![hacks_IMG_7743.png](https://cdn-learn.adafruit.com/assets/assets/000/122/360/medium640/hacks_IMG_7743.png?1688773849)

![hacks_IMG_7742.png](https://cdn-learn.adafruit.com/assets/assets/000/122/361/medium640/hacks_IMG_7742.png?1688773974)

Info: 

### Wire the Keys

Each piano key button board has three wires connected to it. The lead with the white wire, closest to the button membrane, carries the button's state signal. It is 3.3v when pressed and 0v when released.

For each button, cut a wire long enough to run between it and the mounted KB2040 board. Then **solder** the wire to the&nbsp; **white** wire's pin hole.

![hacks_IMG_7229.png](https://cdn-learn.adafruit.com/assets/assets/000/122/364/medium640/hacks_IMG_7229.png?1688776715)

![hacks_IMG_7745_(1).png](https://cdn-learn.adafruit.com/assets/assets/000/122/365/medium640/hacks_IMG_7745_%281%29.png?1688777022)

Solder the other end of the wires to the corresponding KB2040 pin labels in the chart above.

Button 1 (red) to pin A0.  
Button 2 (orange) to pin A2.  
Button 3 (yellow) to pin CLK.  
Button 4 (green) to pin 2.  
Button 5 (blue) to pin 3.

![hacks_IMG_7746.png](https://cdn-learn.adafruit.com/assets/assets/000/122/369/medium640/hacks_IMG_7746.png?1688777983)

# Fisher-Price USB Foot Pedal

## Installing 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_kb2040/)
 **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/108/852/medium800/adafruit_products_KeeBoar_boot_reset.jpg?1644515196)

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)
# Fisher-Price USB Foot Pedal

## Code the Pedal

## Text Editor

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

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

## Download the Project Bundle

Your project will use a specific set of CircuitPython libraries, and the&nbsp; **code.py** &nbsp;file. To get everything you need, click on the&nbsp; **Download Project Bundle** &nbsp;link below, and uncompress the .zip file.

Drag the contents of the uncompressed bundle directory onto your board's&nbsp; **CIRCUITPY** &nbsp;drive, replacing any existing files or directories with the same names, and adding any new ones that are necessary. The&nbsp; **CIRCUITPY** drive appears when you plug the KB2040 into the computer via USB.

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

![circuitpy](https://adafruit.github.io/Adafruit_Learning_System_Guides/FisherPrice_USB_Foot_Pedal.png )

## How It Works

The code uses the `digitalio`&nbsp;library to read the piano key button presses, then the&nbsp;`adafruit_hid`&nbsp;library is used to send USB keyboard commands.

### Libraries

First, the necessary libraries and modules are imported.

```python
import time
import board
import usb_hid
from adafruit_hid.keycode import Keycode
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from digitalio import DigitalInOut, Direction, Pull
```

### Keyboard Setup

Next, we create instances of&nbsp;`Keyboard`, and&nbsp;`KeyboardLayoutUS`.

```python
# Set up a keyboard device.
kbd = Keyboard(usb_hid.devices)
layout = KeyboardLayoutUS(kbd)
```

### Digital In Out

We'll create an array named `buttons`. This array will store instances of the `DigitalInOut` class, each configured to correspond with one of the five **KB2040** pins connected to the piano keys.

Each pin direction will be set to `INPUT`. The piano keys are active high. Meaning the voltage goes from 0 to 3.3v when a button is pressed and returns to 0 when released. So the default state of each pin is set to `Pull.DOWN`.

```python
# Setup the buttons with internal pull-down resistors
buttons = []
for pin in [board.A0, board.A2, board.CLK, board.D2, board.D3]:
    button = DigitalInOut(pin)
    button.direction = Direction.INPUT
    button.pull = Pull.DOWN
    buttons.append(button)
```

### Key Commands

The `keys` array contains five elements, one for each piano key button.

Each item can be either a single keyboard key press, a combination of simultaneously pressed keys, or a sequenced macro of individual or combo key presses.

This is where you can customize the individual piano keys' commands to fit your own needs.

For example:

- **Single** - press a single key
  - example: `Keycode.A`

- **Combo** - press a combination of keys simultaniously
  - example: `(Keycode.COMMAND, Keycode.TAB)`

- **Macro** - press a sequence of single keys or combos one after the other&nbsp;
  - example: `[Keycode.UP_ARROW, Keycode.ENTER]`

- **Macro with a combo, a string, and a single key**
  - example: `[(Keycode.CONTROL, Keycode.A), 'Hello Worl', Keycode.D]`

```python
# Each button corresponds to a key or key combination or a sequence of keys
keys = [
    Keycode.A, # single key
    (Keycode.COMMAND, Keycode.TAB), # key combo
    [
        Keycode.UP_ARROW,
        Keycode.ENTER
    ], # macro of single key presses
    [
        Keycode.END,
        (Keycode.SHIFT, Keycode.HOME),
        (Keycode.COMMAND, Keycode.C),
    ], # macro with single key and combo keys
    [
        (Keycode.CONTROL, Keycode.A),
        'Hello World',
        Keycode.PERIOD
    ] # macro with combo, string, and single
]
```

### Main Loop

The main loop of the program first checks the `button.value` of each of the five buttons wired up to the GPIO pins of the KB2040.

Each button's corresponding keys array key is checked to see if it is either a tuple `( )`, a list `[]`, a single key `Keycode.`, or a string of key characters `'Hello World'`.&nbsp;

Tuples, values wrapped in parentheses `( )` will send simultaneous button combo presses. Lists, values wrapped in square brackets `[]` will send a macro sequence of individual or combo keys one after the other.

`Keycode.` values or strings wrapped in single quotes `' '` can be used for pressing one&nbsp; or more keys in sequence.

```python
while True:
    # check each button
    for button, key in zip(buttons, keys):
        if button.value:  # button is pressed
            if isinstance(key, tuple):
                kbd.press(*key)
                kbd.release_all()
            elif isinstance(key, list):
                for macro_key in key:
                    if isinstance(macro_key, str):  # print a string
                        layout.write(macro_key)
                    elif isinstance(macro_key, tuple):  # press combo keys
                        kbd.press(*macro_key)
                        kbd.release_all()
                    else:  # press a single key
                        kbd.press(macro_key)
                        kbd.release_all()
                    time.sleep(0.1)  # delay between keys
            else:  # press a single key
                kbd.press(key)
                kbd.release_all()
            time.sleep(0.1)  # debounce delay

    time.sleep(0.1)
```

# Fisher-Price USB Foot Pedal

## Use the Pedal

Finally, let's test and make sure everything is working before fully re-assembling.

In order to properly read the piano key button state, the piano's audio switch needs to be turned on to either of the two volume settings.

![hacks_IMG_8048.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/122/490/medium640/hacks_IMG_8048.jpeg?1689278628)

Then connect the piano via USB to a computer and open your favorite text editor.

##### **Using the CircuitPython code in this guide as-is:**

**Button 1** will type a lowercase ' **a**' character.  
**Button 2** will tab between active windows.  
**Button 3** will fire up and enter keys to easily to repeat the last terminal command.  
**Button 4** will highlight and copy the current line of code.  
**Button 5** will type "Hello World." at the start of the line.

![hacks_fisher-price-foot-pedal-test.gif](https://cdn-learn.adafruit.com/assets/assets/000/122/491/medium800thumb/hacks_fisher-price-foot-pedal-test.jpg?1689278640)

Congratulations! You have successfully created a keyboard foot pedal with programmable macros.

Customize the code in this example to match your own workflow. Whether its gaming, video editing, or programming, there are so many new uses for this old toy.

# Fisher-Price USB Foot Pedal

## Use as Controller (optional)

The open source gamepad firmware [GP2040-CE](https://github.com/OpenStickCommunity/GP2040-CE "GP2040-CE") can be used to turn this piano into a controller compatible with just about everything. PC, Mister, PS4, and even Nintendo Switch consoles.

In fact, the same exact firmware used for the [Fisher-Price USB Controller](https://learn.adafruit.com/fisher-price-usb-controller) mod will just work with the wiring in this guide.

## Custom GP2040-CE Software

GP2040-CE out of the box reads button presses in the opposite direction of how the Fisher-Price controller behaves. (pressed = LOW; released = HIGH)

Luckily with it being open source, it was easily modified to support this. And a precompiled UF2 firmware file of this custom build is available by clicking the download button below.

[Download UF2 Firmware FIle](https://github.com/RobertDaleSmith/GP2040-CE/releases/latest)
1. &nbsp;Download UF2 firmware file
2. &nbsp;Hold the boot button while connecting the USB cable to your computer
3. &nbsp;A virtual drive will in your computer File Explorer or Finder (depending on your operating system) named&nbsp; **RPI-RP2**
4. &nbsp;Release the boot button once the drive shows up
5. Drag-and-drop the UF2 file onto the&nbsp; **RPI-RP2** &nbsp;drive
6. &nbsp;The drive will auto disconnect when update is complete

![hacks_IMG_8086.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/122/542/medium640/hacks_IMG_8086.jpeg?1689278606)

## Button Layout

By default, the wiring within this guide will map buttons to:

![hacks_piano_xinput_demo.gif](https://cdn-learn.adafruit.com/assets/assets/000/122/543/medium800thumb/hacks_piano_xinput_demo.jpg?1689278616)

## Input Modes

The GP2040-CE software supports multiple input modes for use on a wide array of devices. In order to change input modes, simply hold either **button 3** , **4** ,&nbsp;or **5** &nbsp;while connecting the USB cable.

**3** - Web Configurator (web UI to select other modes)  
**4** &nbsp;- X-Input Mode  
**5** &nbsp;- Nintendo Switch Mode

## Web Configurator

The GP2040-CE software also has a built-in web server that can be enabled by holding the start button (button 3) while connecting the USB cable to a computer.

Then access&nbsp; **http://192.168.7.1** &nbsp;in a web browser on your computer to begin configuration. This mode is compatible with Windows, Mac, Linux and SteamOS.

Info: 

## Game Time

Now its time to play some games. Although the button mapping is limited to only five keys, there are actually plenty of retro games this plays well with. Pair it with a mouse and keyboard on PC and it can double as secondary foot pedal input.

![hacks_sonic_clip.gif](https://cdn-learn.adafruit.com/assets/assets/000/122/549/medium800thumb/hacks_sonic_clip.jpg?1689278621)


## Featured Products

### Adafruit KB2040 - RP2040 Kee Boar Driver

[Adafruit KB2040 - RP2040 Kee Boar Driver](https://www.adafruit.com/product/5302)
A wild Kee Boar appears! It’s a shiny **KB2040**! An Arduino Pro Micro-shaped board for Keebs with RP2040. (#keeblife 4 evah) A lot of folks like using Adafruit parts for their Keeb builds – but with the ItsyBitsy not being pin-compatible with the Pro Micro pinout, it...

In Stock
[Buy Now](https://www.adafruit.com/product/5302)
[Related Guides to the Product](https://learn.adafruit.com/products/5302/guides)
### Rainbow "Wire Wrap" Thin 30 AWG Prototyping & Repair Wire

[Rainbow "Wire Wrap" Thin 30 AWG Prototyping & Repair Wire](https://www.adafruit.com/product/4730)
This stuff is called "wire-wrap wire" because it used to be used for wire-wrapping high-speed digital circuits on a special kind of contact board. It's pretty rare to see wire-wrapping in these days of low-cost PCB fabrication, but the wire is still really handy for prototyping...

In Stock
[Buy Now](https://www.adafruit.com/product/4730)
[Related Guides to the Product](https://learn.adafruit.com/products/4730/guides)
### 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)
### Flush diagonal cutters

[Flush diagonal cutters](https://www.adafruit.com/product/152)
These are the best diagonal cutters, large super-comfortable grip to use and have strong nippers for perfect trimming of wires and leads. I've used my pair every day for years.

In Stock
[Buy Now](https://www.adafruit.com/product/152)
[Related Guides to the Product](https://learn.adafruit.com/products/152/guides)
### Digital Multimeter - Model 9205B+

[Digital Multimeter - Model 9205B+](https://www.adafruit.com/product/2034)
This massive multimeter has everything but the kitchen sink included. It's a great addition to any workbench or toolbox. &nbsp;It's low cost, simple to use, and has a big clear display with all the measurements you need and more!

The multimeter includes:

- AC/DC Voltage...

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

## Related Guides

- [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040.md)
- [Breakbeat Breadboard](https://learn.adafruit.com/breakbeat-breadboard.md)
- [See N Say Brain Transplant](https://learn.adafruit.com/see-n-say-brain-transplant.md)
- [USB MIDI Keyset Controller](https://learn.adafruit.com/midi-keyset.md)
- [Cyber Cat MIDI Keyboard](https://learn.adafruit.com/midi-cyber-cat-keyboard.md)
- [Navi10 MacroPad with KB2040 and KMK CircuitPython keyboard firmware](https://learn.adafruit.com/navi10-macropad-with-kb2040-and-kmk-circuitpython-keyboard-firmware.md)
- [How to Choose a Microcontroller](https://learn.adafruit.com/how-to-choose-a-microcontroller.md)
- [Rotary Phone Dial Keypad](https://learn.adafruit.com/rotary-phone-dial-keypad.md)
- [Fisher-Price USB Controller](https://learn.adafruit.com/fisher-price-usb-controller.md)
- [Motorized Camera Slider 2-Axis](https://learn.adafruit.com/motorized-camera-slider-2-axis.md)
- [16-Step Drum Sequencer](https://learn.adafruit.com/16-step-drum-sequencer.md)
- [DOOM Keeb](https://learn.adafruit.com/doom-keeb.md)
- [Commodore Keyboard to USB HID with CircuitPython](https://learn.adafruit.com/commodore-keyboard-to-usb-hid-with-circuitpython.md)
- [Planetary Gear Dreidels](https://learn.adafruit.com/planetary-gear-dreidels.md)
- [May Pad Macropad with the KB2040, KMK, and CircuitPython](https://learn.adafruit.com/maypad-macropad-with-the-kb2040-kmk-and-circuitpython.md)
