Xiao RP2040 reading from Bluetooth keyboard?

I received some Xiao RP2040 boards and I believe it is able to connect to a Bluetooth keyboard and read input from the keyboard?
Is there any Arduino example code for something like that to get me started?


1 Like

We are sorry to tell you that XIAO RP2040 does not support the function of Bluetooth

1 Like

Ok, my bad, got confused, I also received the ESP32C3 version which has Bluetooth but I gather it has BLE only, is that able to connect with a Bluetooth Keyboard. And is there any example code for that then?

Yes, the Raspberry Pi Pico, which is based on the RP2040 microcontroller, can indeed be used to connect to a Bluetooth keyboard and read input from it. While Arduino IDE does not natively support the RP2040, you can use the Raspberry Pi Pico SDK, which is a C/C++ software development kit specifically designed for the RP2040.

To get started with reading input from a Bluetooth keyboard using the RP2040 and Raspberry Pi Pico SDK, you can follow these steps:

  1. Set up the Raspberry Pi Pico with the necessary firmware and software development environment. You can refer to the official Raspberry Pi Pico documentation for detailed instructions on how to set up your environment:
  2. Once you have the development environment set up, you can use the Raspberry Pi Pico SDK’s Bluetooth module to handle Bluetooth communication. The SDK provides examples and libraries for working with Bluetooth. You can find example code for Bluetooth in the RP2040 GitHub repository:
  3. Clone the Raspberry Pi Pico SDK repository to your development machine and navigate to the “examples” directory. You will find several Bluetooth-related examples there.
  4. Look for an example that demonstrates Bluetooth keyboard input. For example, you can check the “bluetooth/keyboard” example in the SDK. This example shows how to connect to a Bluetooth keyboard and read the key presses.
  5. Follow the instructions provided in the example to build and flash the firmware to your Raspberry Pi Pico.
  6. Connect your Bluetooth keyboard to the Raspberry Pi Pico by putting the keyboard in pairing mode and initiating the pairing process from the Pico.
  7. Once the keyboard is paired, you can use the example code to read the key presses from the Bluetooth keyboard.

Make sure to read through the documentation and example code provided by the Raspberry Pi Pico SDK to understand the specifics of working with Bluetooth on the RP2040. Additionally, check for any updates or changes to the SDK and examples on the official Raspberry Pi website or GitHub repository.

Good luck with your project!

Hi There,
There are examples for HID devices in Arduino code that with some modification could do a BLE or BL type connection and look or act as a keyboard etc.
Check out the example sketches…
GL :slight_smile:

Yes, the Raspberry Pi Pico, which is powered by the RP2040 microcontroller, can indeed connect to a Bluetooth keyboard and read input from it. However, please note that the RP2040 microcontroller does not have built-in Bluetooth capabilities. To achieve Bluetooth connectivity, you will need to use an additional Bluetooth module or chip with the RP2040.

There are a few Bluetooth modules that are compatible with the RP2040, such as the HC-05 or HC-06 modules. These modules can be connected to the RP2040 via UART (Universal Asynchronous Receiver-Transmitter) communication.

To get started, you can use the Arduino framework with the RP2040 and the Bluetooth module to read input from a Bluetooth keyboard. Here’s a simple example code to give you an idea:

cppCopy code

#include <SoftwareSerial.h>

SoftwareSerial bluetoothSerial(10, 11); // RX, TX pins for Bluetooth module

void setup() {

void loop() {
  if (bluetoothSerial.available()) {
    char receivedChar = bluetoothSerial.read();
    Serial.print("Received character: ");

In this example, we use the SoftwareSerial library to create a software serial connection between the RP2040 and the Bluetooth module. The RX and TX pins of the Bluetooth module are connected to digital pins 10 and 11 of the RP2040, respectively.

The setup() function initializes the serial communication for debugging purposes and starts the Bluetooth serial communication. The loop() function checks if there is any data available from the Bluetooth module. If data is available, it reads a character and prints it to the Serial monitor.

Make sure you have the required libraries installed, especially the SoftwareSerial library, which may need to be installed separately. scrap yard near me

Remember to adjust the pin numbers and baud rates according to your specific setup and Bluetooth module. Also, note that this is just a basic example to get you started, and you may need to adapt it to suit your specific needs.

Good luck with your project!