# Pico Bluetooth Keyboard Bridge

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/139/178/medium800/hacks_bt_bridge-7641.jpg?1756305164)

![](https://cdn-learn.adafruit.com/assets/assets/000/139/176/medium800/hacks_bt_bridge-7637.jpg?1756264918)

https://youtu.be/U4cAgoHBGsM

_Wireless_ keyboards. What a concept! I've got a few of them and they are usually designed to work over either Bluetooth Classic or Bluetooth Low Energy (BLE). Not every computer or microcontroller can connect with them, but a Pico W or Pico 2 W can, and just costs a few dollars...

And that very same Pico can bridge the wireless keyboard messages via USB HID to a host computer or microcontroller. This way, any computer or device with USB keyboard support can now connect to a Bluetooth Wireless keyboard, without needing BT support. Instant wireless bridge!

This guide will show you how to build a versatile, cheap, small keyboard bridge for all the Blueteeth!

![](https://cdn-learn.adafruit.com/assets/assets/000/139/177/medium800/hacks_bt_bridge-7649.jpg?1756264935)

## Parts
### Raspberry Pi Pico W

[Raspberry Pi Pico W](https://www.adafruit.com/product/5526)
The Raspberry Pi foundation changed single-board computing [when they released the Raspberry Pi computer](https://www.raspberrypi.org/archives/723), now they're ready to do the same for microcontrollers with the release of the brand new **Raspberry Pi Pico W**. This...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5526)
[Related Guides to the Product](https://learn.adafruit.com/products/5526/guides)
![Angled shot of a green microcontroller with castellated pads.](https://cdn-shop.adafruit.com/640x480/5526-01.jpg)

### Raspberry Pi Pico 2W

[Raspberry Pi Pico 2W](https://www.adafruit.com/product/6087)
 **Raspberry Pi Pico 2W** is Raspberry Pi Foundation's update to their popular RP2040-based wireless ico board,&nbsp;now built on **RP2350** : their new high-performance, secure microcontroller. With a higher core clock speed, double the on-chip SRAM (512KB), double...

In Stock
[Buy Now](https://www.adafruit.com/product/6087)
[Related Guides to the Product](https://learn.adafruit.com/products/6087/guides)
![Angled Shot of the Raspberry Pi Pico 2W.](https://cdn-shop.adafruit.com/640x480/6087-00.jpg)

### Pimoroni Pico Plus 2 - RP2350 Dev Board with Pico Shape and Pins

[Pimoroni Pico Plus 2 - RP2350 Dev Board with Pico Shape and Pins](https://www.adafruit.com/product/6244)
The **Pimoroni Pico Plus 2** is a&nbsp;top of the line Pirate-brand RP2350 microcontroller with 16MB of flash memory, 8MB of PSRAM, USB-C, Qw/ST, and debug connectors. It's an excellent 'drop in' upgrade to the classic <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/6244)
[Related Guides to the Product](https://learn.adafruit.com/products/6244/guides)
![Angle Shot of the Pimoroni Pico Plus 2](https://cdn-shop.adafruit.com/640x480/6244-00.jpg)

### Pimoroni Pico Plus 2 W - RP2350 Dev Board with Pico Shape

[Pimoroni Pico Plus 2 W - RP2350 Dev Board with Pico Shape](https://www.adafruit.com/product/6243)
The&nbsp; **Pimoroni Pico Plus 2 W** &nbsp;is a&nbsp;top of the line Pirate-brand RP2350 microcontroller with 16MB of flash memory, 8MB of PSRAM, USB-C, Qw/ST, debug connectors and 2.4GHz wireless / Bluetooth®. It's an excellent 'drop in' upgrade to the...

In Stock
[Buy Now](https://www.adafruit.com/product/6243)
[Related Guides to the Product](https://learn.adafruit.com/products/6243/guides)
![Angled Shot of the Pimoroni Pico Plus 2 W.](https://cdn-shop.adafruit.com/640x480/6243-00.jpg)

## Bluetooth Classic Keyboard

[Wireless Bluetooth Classic keyboard](https://www.keychron.com/products/keychron-k8-tenkeyless-wireless-mechanical-keyboard?variant=39515069612121)

![](https://cdn-learn.adafruit.com/assets/assets/000/139/161/medium640/hacks_Keychron-K8-tenkeyless-wireless-mechanical-keyboard-for-Mac-Windows-iOS-RGB-white-backlight-with-gateron-Optical-switch-brown_.jpg?1755911258)

## BLE Keyboard

[BLE keyboard](https://www.8bitdo.com/retro-mechanical-keyboard/)

![](https://cdn-learn.adafruit.com/assets/assets/000/139/162/medium640/hacks_09-l.jpg?1755911362)

### USB Type A to Type C Cable - 6" long

[USB Type A to Type C Cable - 6" long](https://www.adafruit.com/product/4472)
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/4472)
[Related Guides to the Product](https://learn.adafruit.com/products/4472/guides)
![Six-inch-long USB Type A to Type C cable.](https://cdn-shop.adafruit.com/640x480/4472-00.jpg)

### USB cable - 6" A/MicroB

[USB cable - 6" A/MicroB](https://www.adafruit.com/product/898)
This here is your standard A-microB USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your NETduino, Arduino Leonardo, Raspberry Pi (among other things).  
  
Approximately 6.5" long from end to end, its a little more compact than our classic 3' long cable  
<br...></br...>

In Stock
[Buy Now](https://www.adafruit.com/product/898)
[Related Guides to the Product](https://learn.adafruit.com/products/898/guides)
![USB Cable - 6" A/Micro B](https://cdn-shop.adafruit.com/640x480/898-01.jpg)

# Pico Bluetooth Keyboard Bridge

## Code the Bluetooth Bridge

## Drag & Drop UF2s
You can opt for the easy drag-and-drop method to get the Bluetooth Bridge code onto your Pico W / 2W. No IDE required.

### Download UF2

First, download the UF2 for your board from the link below (you can use the Pico 2W UF2 on a Pimoroni Pico Plus 2 W as well as the Raspberry Pi Pico 2W).

[Pico W UF2](https://cdn-learn.adafruit.com/assets/assets/000/139/116/original/Bluetooth_Unified_Keyboard_Bridge.ino.picow.uf2?1755820586)
[Pico 2W UF2](https://cdn-learn.adafruit.com/assets/assets/000/139/115/original/Bluetooth_Unified_Keyboard_Bridge.ino.pico2w.uf2?1755820576)
### Enter Bootloader Mode

Start with your Pico unplugged from USB. Hold down the&nbsp; **BOOTSEL** &nbsp;button, and while continuing to hold it (don't let go!), plug the Pico into USB to your computer.&nbsp; **Continue to hold the BOOTSEL button until the RPI-RP2 or RP2350 drive appears in your computer's File Explorer or Finder.**

If the drive does not appear, unplug your Pico and go through the above process again.

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

Drag the UF2 file for your board onto the **RPI-RP2** or **RP2350** drive icon. The file will copy and then the drive will self-eject and restart the board.

![](https://cdn-learn.adafruit.com/assets/assets/000/139/175/medium640/hacks_raspberry_pi_one_one_two.png?1756243941)

## Custom Arduino Code

If you want to customize the code, download the package linked below and then set up the Philhower RP2040/RP2350 core in Arduino as shown on the next pages of this guide.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Bluetooth_Unified_Keyboard_Bridge/Bluetooth_Unified_Keyboard_Bridge.ino

## How It Works
## Configs

We start with three configuration options that you can modify:

```auto
#define DEBUG_MODE false   // Set to false to reduce serial output
#define BLINK_MODE true    // Set to false for solid LED (no keypress blinks)
#define SCAN_MODE "Both"   // Options: "BT_Classic", "BLE", "Both"
```

- `DEBUG_MODE`: Controls how much information is printed to the serial monitor
- `BLINK_MODE`: Enables brief LED blinks when keys are pressed
- `SCAN_MODE`: Determines which Bluetooth protocols to scan for

### Library Includes and State Management

The program includes both Bluetooth Classic (BTStack) and BLE libraries, along with USB HID libraries for keyboard and mouse output. A state machine tracks the current connection status:

```auto
typedef enum {
    INIT,
    SCANNING_CLASSIC,
    CLASSIC_CONNECTING,
    CLASSIC_CONNECTED,
    SCANNING_BLE,
    BLE_CONNECTED,
    BOTH_FAILED,
    DISCONNECTED
} connection_state_t;
```

This enum defines all possible states the bridge can be in, from initial startup through various scanning and connection phases.

### Setup Function

The `setup()` function initializes all components:

- Serial Communication: Starts the serial port for debugging output
- LED Setup: Configures the built-in LED for status indication
- USB HID: Initializes keyboard and mouse USB interfaces
- Protocol Selection: Based on `SCAN_MODE`, starts scanning with either Classic, BLE, or both protocols

The function uses the configuration setting to determine which scanning approach to take, defaulting to Classic first when "Both" is selected.

### Bluetooth Classic Implementation

#### Initialization `initAndScanClassic()`

This function sets up the BTStack components for Bluetooth Classic operation:

- Initializes L2CAP (Logical Link Control and Adaptation Protocol)
- Sets up security management and link policies
- Configures the device as a master (initiator of connections)
- Registers event handlers for connection management

#### Device Scanning `scanForClassicDevices()`

The scanning function searches for nearby Classic Bluetooth devices and analyzes their Class of Device (CoD) codes to identify HID keyboards:

```auto
uint8_t majorClass = (cod >> 8) & 0x1F;
uint8_t minorClass = (cod >> 2) & 0x3F;

if (majorClass == 5 && (minorClass & 0x10)) {  // HID Keyboard
    // Found a keyboard, start connection
}
```

The CoD parsing identifies devices by their major class (5 for HID devices) and minor class bits (0x10 for keyboards).

#### Connection Process `startClassicConnection()`

Classic HID requires two L2CAP channels:

- Control Channel (PSM 0x11): For configuration and control messages
- Interrupt Channel (PSM 0x13): For actual input data

The connection process creates these channels sequentially, first establishing control, then interrupt.

#### Event Handling `classic_packet_handler()`

This callback function processes all Bluetooth Classic events:

- Connection Events: Handles successful channel creation and failures
- Data Packets: Processes incoming HID reports from the keyboard/mouse
- Disconnection Events: Cleans up when devices disconnect

### BLE Implementation

#### Initialization&nbsp;`initAndScanBLE()`

BLE setup is simpler than Classic, using the `BluetoothHIDMaster` library:

```auto
keystream.begin();
setupBLECallbacks();
ble_hid.begin(true);
ble_hid.connectBLE();
```

The BLE approach is more passive - it starts listening and detects devices when they send their first keypress.

#### Callback Setup `setupBLECallbacks()`

BLE uses callback functions for different input types:

- `onMouseMove`: Handles mouse movement and scroll wheel
- `onMouseButton`: Processes mouse button presses and releases
- `onKeyDown`/`onKeyUp`: Manage keyboard key events

Each callback immediately forwards the input to the appropriate USB HID interface.

### HID Key Mapping

The `hidToUsbKey()` function translates between HID usage codes and Arduino Keyboard library key codes:

```auto
uint8_t hidToUsbKey(uint8_t hidKey) {
    switch (hidKey) {
        case 0x04: return 'a';    // HID 'A' key
        case 0x05: return 'b';    // HID 'B' key
        // ... more mappings
        case 0x28: return KEY_RETURN;  // Enter key
        case 0xE0: return KEY_LEFT_CTRL;  // Left Control
    }
}
```

This mapping covers letters, numbers, symbols, function keys, arrow keys, and modifiers.

### USB HID Output

#### Classic HID Processing forwardClassicToUSB()

Classic HID sends complete keyboard state reports containing:

- 1 byte of modifier flags (Ctrl, Shift, Alt, GUI)
- 6 bytes for simultaneously pressed keys

The function compares the current report with the previous one to determine which keys were pressed or released, then updates the USB keyboard accordingly.

#### BLE Processing `forwardBLEKeyToUSB()`

BLE sends individual key press/release events, making processing simpler. The function maintains a `keyPressed` array to track current key states and avoid duplicate press/release commands.

### LED Status Indicators

The Pico's LED provides visual feedback about the bridge's current state:

- Slow Blink (1 second): Scanning for devices
- Fast Blink (250ms): Classic device found, press a key to connect
- Celebration Blinks: Multiple quick blinks when connection succeeds
- Solid On: Connected and ready
- Very Slow Pulse (2 seconds): Connection failed or disconnected
- Brief Off Flashes: Key/mouse activity (when BLINK\_MODE enabled)

### State Timout Management `handleStateTimouts()`

&nbsp;

Prevents the bridge from getting stuck in scanning states by implementing timeouts:

- Classic scan: 10 seconds
- BLE scan: 15 seconds
- Failed state: 5 seconds before retry

When timeouts occur, the function either retries the same method or falls back to the alternative protocol.

### Reset Functionality `handleBootselButton()`

Pressing the BOOTSEL button triggers a complete restart:

- Disconnects from current devices
- Releases all pressed keys
- Clears pairing information
- Resets all state variables
- Restarts the scanning process

This provides a hardware-based recovery method when connections become problematic.

### Error Handling and Fallback

Here's how the code implements error handling:

- Connection Failures: Automatically tries the other protocol
- Timeouts: Prevents infinite waiting states
- Invalid Data: Bounds checking on all array accesses
- State Corruption: BOOTSEL button provides hardware reset

The fallback mechanism ensures that if one Bluetooth protocol fails, the other is automatically attempted, maximizing compatibility with different devices.

### Memory and Performance

The code uses several optimization techniques:

- Static Arrays: Pre-allocated arrays avoid dynamic memory allocation
- State Caching: Previous key states are cached to minimize USB traffic
- Bounds Checking: All array accesses are validated
- Selective Debug Output: `DEBUG_MODE` reduces serial overhead in production

This design ensures reliable operation even with the memory constraints of the microcontroller.

# Pico Bluetooth Keyboard Bridge

## Arduino on Pico

The Earle Philhower Arduino core makes it easy to use Arduino with all your favorite RP2040 boards so you can create fast projects using them.

Info: You can find the documentation for the Earle Philhower Arduino core at https://arduino-pico.readthedocs.io/en/latest/

# Pico Bluetooth Keyboard Bridge

## Installing the Earle Philhower core

The first step to getting the Earle Philhower core to run on your RP2040 device is to install it.

First, open the Arduino IDE.

Then, navigate to&nbsp; **File -\> Preferences** and paste the link below into&nbsp; **Additional Board Manager URLs**. If the field is initially blank, just paste the link in and press&nbsp; **OK**. If there are already one or more URLs there, add a comma to the last one and paste the link there and press&nbsp; **OK**.

![](https://cdn-learn.adafruit.com/assets/assets/000/102/972/medium800/learn_arduino_preferences.png?1624392381)

The link to copy and paste:

`https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json`

![](https://cdn-learn.adafruit.com/assets/assets/000/102/973/medium800/learn_arduino_board_manager.png?1624392390)

Click “OK” to save these preferences. Then, go to&nbsp; **Tools -\> Board -\> Board Manager** and type&nbsp; **pico** into the search bar, and hit enter. Select **Raspberry Pi Pico/RP2040** by&nbsp; **Earle F. Philhower, III&nbsp;** and press **Install**. **&nbsp;** Then press **close** and you should be all set to connect your RP2040.

![](https://cdn-learn.adafruit.com/assets/assets/000/102/974/medium800/learn_arduino_library.png?1624392418)

# Pico Bluetooth Keyboard Bridge

## Connecting your RP2040

Now that you've successfully installed the core, you can move on to connecting your RP2040 to the Arduino IDE.

To connect your RP2040 microcontroller-based board, connect it to your computer via a known good USB power+data cable. Hold down the **BOOTSEL** button when you're plugging it in to enter the bootloader. It should then show up as a USB drive with the name **RPI-RP2&nbsp;** (or something similar) in your computer File Explorer / Finder (depends on operating system).

You only need manually to enter the bootloader the first time you load an Arduino sketch onto your Pico. It is not necessary to manually enter the bootloader to load subsequent sketches once you are already running an Arduino sketch.

![learn_arduino_plug_in.gif](https://cdn-learn.adafruit.com/assets/assets/000/102/936/medium640thumb/learn_arduino_plug_in.jpg?1624289536)

Then in the Arduino IDE, go to **Tools -\> Board -\> Raspberry Pi RP2040 Boards** and select the board you are using.

![](https://cdn-learn.adafruit.com/assets/assets/000/102/975/medium800/learn_arduino_board_select.png?1624392452)

Now, you're going to want to select the correct port to use. Open&nbsp; **Tools -\> Port** , and select the right port.&nbsp;On my computer, it was **/dev/**** ttyS0 **. If it only gives you the options to use a port with&nbsp;** ACM**(Linux) in it, as in&nbsp;**/dev/ttyACM0&nbsp; **or** usbmodem**(Mac/OSX), as in&nbsp;**/dev/tty.usbmodem14301 **then try unplugging it and plugging it back in, making sure to hold down the&nbsp;** BOOTSEL** button as you do so. On Windows, serial ports show up as COM ports.

![](https://cdn-learn.adafruit.com/assets/assets/000/102/976/medium800/learn_arduino_port_select.png?1624392480)

Warning: 

# Pico Bluetooth Keyboard Bridge

## Uploading a Sketch

Finally, to test that everything works, you can upload an example sketch that will make the onboard LED fade in and out.

Now that you've installed everything and connected your RP2040, it's time to flash a sketch to your board.

Make sure all your Arduino settings are correct and you've selected the correct serial port.

In the Arduino IDE, navigate to **File -\> Examples -\> Examples for Raspberry Pi Pico** and select the&nbsp; **Fade** example. Then press the upload button and your code should start running in a few seconds.

![](https://cdn-learn.adafruit.com/assets/assets/000/102/979/medium800/learn_arduino_sketch.png?1624392995)

If it worked, your RP2040 should look something like this.

![learn_arduino_ezgif.com-gif-maker_(1).gif](https://cdn-learn.adafruit.com/assets/assets/000/102/941/medium640thumb/learn_arduino_ezgif.com-gif-maker_%281%29.jpg?1624297522)

# Pico Bluetooth Keyboard Bridge

## Use the Bluetooth Keyboard Bridge

![](https://cdn-learn.adafruit.com/assets/assets/000/139/180/medium800/hacks_bt_bridge-7648.jpg?1756306727)

The Pico Bluetooth Keyboard Bridge is designed to search for a Bluetooth Classic keyboard to connect to first, then search for a BLE keyboard. If no connection is made, it repeats this cycle.

To use it:

- Plug it into the target computer (or microcontroller with USB HID keyboard host) and put the keyboard into pairing mode
- The Pico's LED will blink slowly while it scans for a device
- LED blinks rapidly when a device is found
- Press a key on your keyboard to connect
- LED turns on stead solid while connected
- LED blinks once per keypress while in use
- To re-scan for a different keyboard, press the Pico's BOOT button

Watch the demo video below to see it in action!

https://www.youtube.com/watch?v=U4cAgoHBGsM

# Pico Bluetooth Keyboard Bridge

## Pico Case

You can 3D print a simple case for your Pico W or Pico 2W using the model files linked below. This design was derrived from the excellent Ruiz Bros. [Snap-on Enclosure for Pi Pico you can purchase here](https://www.adafruit.com/product/6252).

[Pico case base](https://cdn-learn.adafruit.com/assets/assets/000/139/181/original/pico_case_base.stl?1756307025)
[Pico case lid](https://cdn-learn.adafruit.com/assets/assets/000/139/182/original/pico_case_lid.stl?1756307036)
![](https://cdn-learn.adafruit.com/assets/assets/000/139/183/medium800/hacks_bt_bridge-7645.jpg?1756307284)

![](https://cdn-learn.adafruit.com/assets/assets/000/139/184/medium800/hacks_bt_bridge-7647.jpg?1756307294)


## Featured Products

### Raspberry Pi Pico W

[Raspberry Pi Pico W](https://www.adafruit.com/product/5526)
The Raspberry Pi foundation changed single-board computing [when they released the Raspberry Pi computer](https://www.raspberrypi.org/archives/723), now they're ready to do the same for microcontrollers with the release of the brand new **Raspberry Pi Pico W**. This...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5526)
[Related Guides to the Product](https://learn.adafruit.com/products/5526/guides)
### Raspberry Pi Pico 2W

[Raspberry Pi Pico 2W](https://www.adafruit.com/product/6087)
 **Raspberry Pi Pico 2W** is Raspberry Pi Foundation's update to their popular RP2040-based wireless ico board,&nbsp;now built on **RP2350** : their new high-performance, secure microcontroller. With a higher core clock speed, double the on-chip SRAM (512KB), double...

In Stock
[Buy Now](https://www.adafruit.com/product/6087)
[Related Guides to the Product](https://learn.adafruit.com/products/6087/guides)
### Snap-on Enclosure for Raspberry Pi Pico / W / 2 / 2W

[Snap-on Enclosure for Raspberry Pi Pico / W / 2 / 2W](https://www.adafruit.com/product/6252)
Here is a cute and minimal enclosure for your [Pi Pico](https://www.adafruit.com/search?q=Pi+Pico)&nbsp;to keep it safe during use and transport. This case has been custom-designed and 3D printed to accommodate the Micro USB and Bootloader button press with&nbsp;venting through the...

In Stock
[Buy Now](https://www.adafruit.com/product/6252)
[Related Guides to the Product](https://learn.adafruit.com/products/6252/guides)
### Pimoroni Pico Plus 2 W - RP2350 Dev Board with Pico Shape

[Pimoroni Pico Plus 2 W - RP2350 Dev Board with Pico Shape](https://www.adafruit.com/product/6243)
The&nbsp; **Pimoroni Pico Plus 2 W** &nbsp;is a&nbsp;top of the line Pirate-brand RP2350 microcontroller with 16MB of flash memory, 8MB of PSRAM, USB-C, Qw/ST, debug connectors and 2.4GHz wireless / Bluetooth®. It's an excellent 'drop in' upgrade to the...

In Stock
[Buy Now](https://www.adafruit.com/product/6243)
[Related Guides to the Product](https://learn.adafruit.com/products/6243/guides)
### USB cable - 6" A/MicroB

[USB cable - 6" A/MicroB](https://www.adafruit.com/product/898)
This here is your standard A-microB USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your NETduino, Arduino Leonardo, Raspberry Pi (among other things).  
  
Approximately 6.5" long from end to end, its a little more compact than our classic 3' long cable  
<br...></br...>

In Stock
[Buy Now](https://www.adafruit.com/product/898)
[Related Guides to the Product](https://learn.adafruit.com/products/898/guides)
### USB C to Micro B Cable - 1 ft 0.3 meter

[USB C to Micro B Cable - 1 ft 0.3 meter](https://www.adafruit.com/product/3879)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to Micro B** &nbsp;plugs!

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

In Stock
[Buy Now](https://www.adafruit.com/product/3879)
[Related Guides to the Product](https://learn.adafruit.com/products/3879/guides)
### USB Type A to Type C Cable - 6" long

[USB Type A to Type C Cable - 6" long](https://www.adafruit.com/product/4472)
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/4472)
[Related Guides to the Product](https://learn.adafruit.com/products/4472/guides)
### USB Type A to Type C Cable - 1ft - 0.3 meter

[USB Type A to Type C Cable - 1ft - 0.3 meter](https://www.adafruit.com/product/4473)
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/4473)
[Related Guides to the Product](https://learn.adafruit.com/products/4473/guides)

## Related Guides

- [Arduino Yun Temboo Twitter Tracker](https://learn.adafruit.com/arduino-yun-temboo-twitter-tracker.md)
- [Feather Guitar Hero Adapter](https://learn.adafruit.com/feather-guitar-hero-adapter.md)
- [Android Smart Home Mirror](https://learn.adafruit.com/android-smart-home-mirror.md)
- [Use Docker to Compile Linux for ESP32-S3](https://learn.adafruit.com/docker-esp32-s3-linux.md)
- [USB Host to BLE Keyboard Adapter](https://learn.adafruit.com/esp32-s3-usb-to-ble-keyboard-adapter.md)
- [3D Scans for Low Poly Statues](https://learn.adafruit.com/low-poly-3d-scans-for-3d-printing.md)
- [Adafruit Terminal PiCowbell for Pico](https://learn.adafruit.com/adafruit-terminal-picowbell-for-pico.md)
- [Debug Arduino Uno/ATmega328P with Adafruit CH552 QT Py and debugWire](https://learn.adafruit.com/debug-arduino-uno-atmega328p-with-adafruit-ch552-qt-py-and-debugwire.md)
- [RP2040 RunCPM Emulator with USB Keyboard & HDMI screen](https://learn.adafruit.com/rp2040-runcpm-emulator-with-usb-keyboard-hdmi-screen.md)
- [Submitting Arduino Code to the Adafruit Learning System](https://learn.adafruit.com/submitting-arduino-code-to-the-adafruit-learning-system.md)
- [CustomEyesation: DIY Monster M4SK Graphics](https://learn.adafruit.com/customeyesation-diy-monster-m4sk-graphics.md)
- [Adafruit Feather M4 Express](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51.md)
- [ePaper FeatherWing Quote Display](https://learn.adafruit.com/epaper-display-featherwing-quote-display.md)
- [Adafruit DACx578 - 8 x Channel I2C DAC](https://learn.adafruit.com/adafruit-dac7578-8-x-channel-12-bit-i2c-dac.md)
- [DIY Turbo Button Controller - HID Remapper](https://learn.adafruit.com/diy-turbo-button-controller-hid-remapper.md)
