Pico-BLE

From Waveshare Wiki
Jump to: navigation, search
Pico-BLE
Pico-BEL-2.jpg
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Introduction

Note

The module can only be connected to the mobile phone currently.
V1.1 (purchased after 2022/02/20), supports connection with Raspberry PI.

Introduction

The Pico-BLE is a dual-mode Bluetooth 5.1 expansion module designed for Raspberry Pi Pico, which is controlled via UART AT commands, with SPP and BLE support. Combined with the Raspberry Pi Pico, it can be used for Bluetooth wireless communication applications.

Features

  • Standard Raspberry Pi Pico header, supports Raspberry Pi Pico series.
  • Controlled via UART AT commands, get started quickly.
  • Comes with development resources and manual (Raspberry Pi Pico C/C++ and MicroPython examples).

Specifications

  • Input voltage: 3.3V/5V
  • Communication: UART
  • Communication rate: up to 1,000,000 bps
  • Dimensions: 56.5 × 21mm

Pinout

Pico-BLE-details-inter.jpg

Dimensions

Pico-BEL-1.jpg

Get Started with Pico

Firmware Download

MicroPython Firmware Download
MicroPython Firmware Download.gif
C_Blink Download
C Blink Download.gif


Examples

For the Pico-BLE module, we provide an serial example. Hereby we take C codes to explain the function.

Hardware Interface

BLE.c

The Bluetooth module initialization function mainly judges whether the Bluetooth module is successfully connected to the mobile phone, whether the notify function is enabled, querying the baud rate of the Bluetooth module, judges whether it is in low power mode, name, address, and modifying the name of the module.

void BLE_Init()

Execute and process BLE commands.

uint8_t Cmd_Process(uint8_t *data)
    data: the address of the command pointer to send

Transparent transmission receiving function, what data the mobile phone sends to the module, the module receives and returns the same data with this function.

void UART_RX()     Query receive
void UART_RX_IRQ() Interrupt receive

Parameter Modification

BLE.h

#define UART_ID uart0       Pico serial port selection
#define BAUD_RATE 115200    Serial port baud rate selection
#define DATA_BITS 8         Serial port data bits
#define STOP_BITS 1         Serial port data stop bits
#define PARITY UART_PARITY_NONE  Whether the serial port performs parity check
#define UART_TX_PIN 0       Pico serial port TX pin selection
#define UART_RX_PIN 1       Pico serial port RX pin selection
#define BLE_MODE_PIN 15     Bluetooth module status detection pin

Module Command

CMD.h

For specific use, please refer to the user manual.

Demonstration

Mobile Phone APP Demo

Connect Pico and Pico-BLE to open the python demo and run.
Pico-BLE01.png
Open the PicoGO software on the mobile phone (this is just a demonstration, you can download any Bluetooth APP in the app store).
Pico-BLE02.png
Click on Bluetooth Control.
Pico-BLE03.png
Click Search in the upper right corner.
Pico-BLE04.png
Click the serial port mode (the request pairing interface will pop up later, no password is required).
Pico-BLE05.png
Click pairing, the following will appear on the computer and mobile phone.
Pico-BLE06.png
Pico-BLE07.png
Enter the data on the mobile phone and click send (the interface you send will be displayed on the computer).
Pico-BLE08.png
Pico-BLE09.png
PS: APPs using the BLE protocol on the mobile phone need to open the notify interface.

Computer AT Command Demonstration

Use the USB to the serial port module to connect the computer and Pico-BLE, open the SSCOM software, select the corresponding baud rate (the default is 115200), enter the command, and enable "carriage return and line feed" (must be, otherwise the command will be invalid).
Picobleat.png
The above command is a reset command, please refer to the user manual for more commands.

V1.1 (Purchased after 2022/02/20)

Includes all the features of the previous version, with the following new features.

Raspberry Pi Connection

Input "bluetoothctl" to enter the Bluetooth interactive mode.
Input "Show" to check the Bluetooth status.
"Powered: yes" means the Bluetooth can be opened.
"Discoverable: no" means it cannot be searched by other devices.
"Pairable: yes" runs to pair.
Pico-BLE-010.jpg

powered yes opens the Bluetooth, powered no closes the Bluetooth
pairable yes allows it to pair, pairable no means no pairing

Input "scan on" to query the Bluetooth.
Pico-BLE-012.jpg
Input "pair [MAC]" to pair the Bluetooth.
When pairing SPP, input the contents according to the requirements if the pairing code is set.
When pairing BLE, you can directly observe whether it is paired successfully.
Pico-BLE-012.jpg

Pico-BLE-013.jpg
Input "exit" to exit the Bluetooth interactive mode.
Automatically connect to the Bluetooth corresponding to the address.

sudo rfcomm conn /dev/rfcomm0 [MAC]

When it is successfully created the label characters are shown.
Pico-BLE-014.jpg
The port is already in use when the following content is shown.
Pico-BLE-015.jpg
After successfully creating, the Raspberry Pi will automatically generate a serial port number, rfcomm0.Pico-BLE-016.jpg
Send the data

echo 1234541 > /dev/rfcomm0

Read the data.

cat /dev/rfcomm0

Resource

Raspberry Pi

Examples

Software

User Manual

Documentation

Demo Codes


FAQ

Question:
Can Pico-BLE be used as a host?


Answer:
No, currently only the slave mode is supported



Support

If you require technical support, please go to the Support page and open a ticket.