# Waveshare RP2040-BLE

> A compact RP2040-based module with Bluetooth 5.1 dual-mode (BLE + Classic SPP) connectivity, 2MB flash, 14 GPIO pins, ceramic antenna, and castellated edge design for embedded Bluetooth applications.

## Quick Facts

- **Brand:** Waveshare
- **Price:** ~$6.49
- **CPU:** ARM Cortex-M0+ dual-core @ 133MHz
- **CPU Architecture:** ARM Cortex-M0+
- **CPU Cores:** 2
- **RAM:** 264KB SRAM
- **Flash:** 2MB
- **USB:** USB-C (via adapter board)
- **Power:** 5V via VBUS pin or FPC connector
- **Operating Voltage:** 3.3V
- **Dimensions:** 33.5 × 21mm
- **Antenna:** Ceramic (built-in)

## Connectivity

- **Bluetooth:** Bluetooth 5.1 (BLE + Classic SPP)

## Use Cases

- ble-peripheral
- iot-sensor-node
- prototyping
- compact-iot-node
- data-logging

## Components

- **RP2040** (mcu): Raspberry Pi RP2040 dual-core ARM Cortex-M0+ processor at 133MHz with 264KB SRAM, 8 PIO state machines, and USB 1.1 support. — [Datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fdatasheets.raspberrypi.com%2Frp2040%2Frp2040-datasheet.pdf&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)

## Protocols

- **UART** (UART1 (Bluetooth)): TX: GPIO20, RX: GPIO21, STATUS: GPIO15
- **UART** (UART0): TX: GPIO0, RX: GPIO1
- **I2C** (I2C0): SDA: GPIO4, SCL: GPIO5
- **SPI** (SPI0): SCK: GPIO6, MOSI: GPIO7, MISO: GPIO4, CS: GPIO5

## GPIO Map

| Pin | Name | Type | Functions |
|-----|------|------|-----------|
| GPIO0 | UART0 TX | UART | digital-input, digital-output, pwm |
| GPIO1 | UART0 RX | UART | digital-input, digital-output, pwm |
| GPIO2 | GPIO | — | digital-input, digital-output, pwm |
| GPIO3 | GPIO | — | digital-input, digital-output, pwm |
| GPIO4 | I2C0 SDA / SPI0 MISO | I2C | digital-input, digital-output, pwm |
| GPIO5 | I2C0 SCL / SPI0 CS | I2C | digital-input, digital-output, pwm |
| GPIO6 | SPI0 SCK | SPI | digital-input, digital-output, pwm |
| GPIO7 | SPI0 MOSI | SPI | digital-input, digital-output, pwm |
| GPIO15 | BLE Status | — | digital-input |
| GPIO20 | BLE UART TX | UART | digital-input, digital-output, pwm |
| GPIO21 | BLE UART RX | UART | digital-input, digital-output, pwm |
| GPIO26 | ADC0 | — | digital-input, digital-output, pwm, adc |
| GPIO27 | ADC1 | — | digital-input, digital-output, pwm, adc |
| GPIO28 | ADC2 | — | digital-input, digital-output, pwm, adc |

## Description

## Overview

The Waveshare RP2040-BLE is a compact castellated module that pairs the Raspberry Pi RP2040 dual-core microcontroller with an onboard Bluetooth 5.1 dual-mode module, enabling both Bluetooth Low Energy (BLE) and Classic SPP (Serial Port Profile) communication. At just 33.5 x 21mm, the module is designed for direct soldering onto carrier boards, making it ideal for embedding Bluetooth wireless connectivity into custom projects.

The Bluetooth module is controlled via UART AT commands from the RP2040 (GP20 TX, GP21 RX at 115200 baud), with GP15 providing a connection status detection pin. The module operates in slave mode, allowing smartphones and tablets to discover and connect to it for wireless data exchange. An optional USB-C adapter board (18 x 18mm) connects via 8-pin FPC cable for programming and debugging.

With 14 multi-function GPIO pins, 3 ADC channels, 14 PWM outputs, and standard SPI/I2C/UART interfaces, the RP2040-BLE provides sufficient I/O for sensor reading, actuator control, and data acquisition applications that benefit from wireless Bluetooth connectivity. The ceramic antenna eliminates the need for external antenna hardware, keeping the footprint minimal. Development is supported through C/C++ (Pico SDK), MicroPython, and Arduino, with Waveshare providing example code and an Android companion app for Bluetooth testing.

## Where to Buy

- [Waveshare](https://openhardware.directory/r?to=https%3A%2F%2Fwww.waveshare.com%2Frp2040-ble.htm&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export) — 6.49

## Resources

- [product](https://openhardware.directory/r?to=https%3A%2F%2Fwww.waveshare.com%2Frp2040-ble.htm&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)
- [github](https://openhardware.directory/r?to=https%3A%2F%2Fgithub.com%2Fwaveshareteam%2FPico_MircoPython_Examples&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)
- [wiki](https://openhardware.directory/r?to=https%3A%2F%2Fwww.waveshare.com%2Fwiki%2FRP2040-BLE&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)
- [datasheet](https://openhardware.directory/r?to=https%3A%2F%2Fdatasheets.raspberrypi.com%2Frp2040%2Frp2040-datasheet.pdf&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)
- [schematics](https://openhardware.directory/r?to=https%3A%2F%2Ffiles.waveshare.com%2Fwiki%2FRP2040-BLE%2FRP2040-BLE.pdf&ref=openhardware.directory&product=waveshare-rp2040-ble&source=md-export)

## Images

![Waveshare RP2040-BLE](https://nbg1.your-objectstorage.com/openhardware-directory/entities/waveshare-rp2040-ble/e47be57aaff0.jpg)
![Waveshare RP2040-BLE](https://nbg1.your-objectstorage.com/openhardware-directory/entities/waveshare-rp2040-ble/182c261c2a02.jpg)
![Waveshare RP2040-BLE](https://nbg1.your-objectstorage.com/openhardware-directory/entities/waveshare-rp2040-ble/be5dc570b772.jpg)
![Waveshare RP2040-BLE](https://nbg1.your-objectstorage.com/openhardware-directory/entities/waveshare-rp2040-ble/354f2beb65a9.jpg)

---
[View full device page](https://openhardware.directory/devices/waveshare-rp2040-ble)