100 projects in 100 days | Cypress Semiconductor
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
In project #015, we looked at how two devices go through the bonding process and secures the link. In today's example, we look at the different authentication I/O capabilities offered by the PSoC 4 BLE device.
In this example, CY8CKIT-042-BLE is configured as a GAP Peripheral and enables authentication and pairing. It uses the UART serial terminal on the PC as an interface for user to select the authentication capabilities and display debug messages.
You can download this PSoC Creator project from Github: https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day016_Authentication
In project #14, we looked at the Whitelist feature of the Link Layer, which enables the device to accept requests from a selected list of devices. Today we'll look at the feature of Security Manager Layer to secure and encrypt the link and then store the keys to establish the bonding betweent the two BLE enabled devices.
In this project, the CY8CKIT-042-BLE Bluetooth Low Energy Pioneer Kit acts as the GAP Peripheral and the GATT Client. For devices to get bonded, it performs the following operations:
- Authenticates the devices
- Encrypts the link
- Exchange the keys
- Stores the keys and authentication information
Once the devices are bonded, they do not have to go through the above process again upon reconnection.
You can download this PSoC Creator project here from GitHub: https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day015_Bonding
In earlier projects, we had looked at different roles which a BLE device can assume at both GAP and GATT layers. Now, we shift our focus to some of the features of lower layers of the BLE stack such as the Link Layer, the L2CAP layer, the Security Layer etc.
In today's example project, we demonstrate how PSoC 4 BLE device can implment Whitelist, enabling it to respond to scan requests or connection requests from the selected list of devices.
In this example, PSoC 4 BLE device is configured as the GAP Peripheral which responds to the scan request and connection request only from the GAP Centrals, which are added in its Whitelist. It also demonstrates how to add and delete a device to the GAP Peripheral's whitelist.
You can download this PSoC Creator project here from Github: https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day014_Whitelist
ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.
Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.