Project #020: UART to BLE Bridge | Cypress Semiconductor
Project #020: UART to BLE Bridge
In today's project, we demonstrate a custom Profile to implement a UART-BLE bridge using the BLE Pioneer Kit.
When Bluetooth (classic) was released, it featured a Profile called SPP (Serial Port Profile) that allowed for easy cord-cutter designs that wanted to replace typical USB products with Bluetooth classic interfaces instead. With Bluetooth Low Energy (BLE), no such standard Profile for serial ports is provided by the Bluetooth SIG. This is primarily due to the fact that BLE was not designed for high data-rate applications, and instead focuses on low-power sensor node applications. BLE's GATT Adopted Profiles are more application-centric, with Profiles for Heart Rate Monitors, Phone Notifcations, etc.
In this project, we implement a custom Profile to create a BLE to UART bridge, enabling the ease-of-use of the UART protocol, albeit not being a very sophisticated choice of design for BLE applications. However, engineers realize the usefulness of a quick-and-dirty solution for BLE over UART, which is useful for quick prototyping or adding BLE to replace legacy Bluetooth classic designs.
The BLE Pioneer Kit with the PSoC 4 BLE module implements a BLE GAP Central device running a custom Profile and a custom UART Service. This Profile contains two custom Characteristics - one called Receive Characteristic and another called Transmit Characteristic. The Transmit Characteristic supports Notifications.
For the other end of the BLE communication, we will re-program the CySmart USB Dongle with a project implementing a GAP Peripheral. This project also implements the same custom Profile, Services and Characteristics.
Each device can be interfaced over UART using a serial terminal utility like TeraTerm or Putty to transmit/receive a byte or an entire data file.
You can download this PSoC Creator project along with a detailed PDF of instructions, here from GitHub: https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day020_BLE_UART