CY8CKIT-042-BLE Bluetooth® Development Kit - Review

Table of contents

RoadTest: CY8CKIT-042-BLE Bluetooth® Development Kit

Author: amgalbu

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?:

What were the biggest problems encountered?: No particular problems found. Everything ran smoothly

Detailed Review:

Kit content

The Bluetooth Low Energy Pioneer kit comes in a nice box where all the components are tidily placed



 

The Bluetooth Low Energy Pioneer kit comes with the following components

  • CY5671 PRoCTM BLE Module: provides a complete solution for BLE connectivity, HID, remote controls and toys
  • CY5671 PSoCTM BLE Module: provides a complete solution for sports and fitness monitors, wearable electronics, medical devices, home automation systems and sensor-based low-power systems for the Internet of Things (IoT)


  • BLE Pioneer Baseboard preloaded with CY8CKIT-142 PSoC®4 BLE Module


  • CY5670 CySmartTM USB Dongle


  • Four jumper wires (4 inches each)
  • Two proximity sensor wires (5 inches each)
  • Coin cell (3-V CR2032)
  • USB Standard-A to Mini-B cable
  • Quick Start Guide

 

The BLE Pioneer Baseboard acts as the baseboard for the PSoC 4 BLE (red module) and PRoC BLE (black module). The BLE Pioneer Baseboard contains a PSoC 5LP device, that has KitProg firmware, used as an onboard programmer or debugger, and for the USB-Serial interface. The baseboard is Arduino form-factor compatible, enabling Arduino shields to be connected on top of the board to extend the functionality of BLE modules. The board also features a 1-Mb F-RAM, an RGB LED, a five-segment CapSense slider, a proximity header, a user switch, and a reset switch for the PSoC 4 BLE and PRoC BLE devices on the module. The Pioneer board supports three voltage levels: 1.9 V, 3.3 V, and 5 V.

The BLE Pioneer Baseboard can also be used as a standalone programmer to program and debug other BLE devices using serial wire debug (SWD), and as a USB-Serial interface. The KitProg firmware on PSoC 5LP device enables bootloading PSoC 5LP over USB to upgrade the firmware.

 

PSoC and PRoC

The kit comes with two different BLE boards: one red and one blue. I initially had some difficulties to understand the difference between the two boards

The red one is called PSoC. According to the datasheet, PSoC 4 BLE enables system designers to create sensor-based, low-power wireless systems using integrated programmable analog front ends, programmable digital peripherals, industry-leading CapSense user interfaces and the Bluetooth Low Energy radio in an ARM® Cortex™-M0 one-chip solution

The blue one is called PRoC. PRoC BLE is an easy-to-use, ARM® Cortex™-M0 based, single-chip solution which integrates a Bluetooth® LE (Low Energy) or Bluetooth Smart radio and one- and two- fingers gestures recognition library. The PRoC is supposed to be less flexible than the PSoC but with the advantage of being less expensive than the PSoC

Both have plenty of input and outputs and the same RF circuitry. The main difference is that the RPoC includes the support for the Capsense technology

 

Hardware

All the boards included in the kit looks very well engineered and manufactured.

The two BLE modules (PSoC and PRoC) are very compact and has two female connectors that makes a large number of pins available for an external board. This makes these boards perfect for experimenting with your own external hardware and implement BLE connectivity very easily.

Antenna (which typically is critical is demo kits) looks well studied. The BLE module is mated with the baseboard so that the antenna protrude from the baseboard itself, thus making the antenna in the optimal operating conditions.

Another interesting feature is the presence of a current measurement jumper, that let you easily check how much power is drawn by the BLE module. Regarding the power supply section, it's nice that the kit can be powered from a variety of power sources ranging from the 3V of a coin battery to 12V of an external power supply.

I also appreciated the presence of Arduino-compatibles pin headers. Unfortunately this headers are the baseboard. Should such headers be on the BLE module, they would be much more useful and it would be really a plug-and-play job to add BLE connectivity to your Arduino projects

Another thing I didn't like was the position of the Capacitive sensor: because of the BLE module's header connectors, it a bit difficult to slide your finger. I would have placed the capacitve sensor n another daughter board so that it was at an higher level so that it would have been very easy to enclose this kit in a case and use it as a ready-to-use slider control for your DIY projects

 

First experiment

As my first experiment, I tried the steps suggested in the Quick Start Guide. I connected the dongle to your computer's USB port.

 

Insert the 3-V coin cell (included with the kit) into the coin cell holder on the rear side of the baseboard

 

Press the button SW2 on both the dongle and the baseboard. The red LED on the baseboard and the blue LED on the dongle will stay on for three seconds before turning off, indicating a Bluetooth low energy connection between the two boards

 

Move your finger over the CapSense® slider on the baseboard to control the brightness of the blue LED on the dongle

 

Connecting to a PC

The BLE modules can connect to a smartphone by means of an app (that can be downloaded from the Google Store for Android phone or fro App Store for iOS-based phones) called CySmart.

I have an Android phone but, unfortunately, this app requires Android 4.3 or later and my phone has Android 4.2.1...

Thankfully, there is also a PC version of the CySmart application that connects using the BLE dongle included in the kit.

First of all, a special application needs to be downloaded into the BLE Dongle. Form PSOC Creator IDE, in the Start page, I selected the example project named "BLE_Dongle_CySmart"

 

Then, I selected Debug -> Program to download the project. Everything went smoothly and I was able to launch the CySmart application.

The application immediately  recognized the Dongle and let me choose it for connection

 

I clicked "Start scan" and pressed the SW2 button on the baseboard. The advertisement was immediately shown

 

Range test

This application was very useful because it let me test the range of BLE.

I powered the baseboard using the 3V coin battery move more and more away from the PC to find out the maximum distance at which the PSoC BLE was discoverable

The results are very surprising to me: the devices communicate in open air at a distance of about 35 meters, which is very good considered that one device was powered by a 3V coin battery! This is an evidence of the quality of the PCB I was able to visually appreciate in the right moment I opened the shipping box

 

Make a custom application

To get hands on the hardware and the PSOC Creator IDE, I made a simple project using the two BLE modules included in the kit.

The PSoC (red) module will act as a server (aka Peripheral mode), whereas the PRoC (blue) module will act as a client (aka Central mode)

On the PSoC side, the starting point is the example project named "PSoC_4_BLE_CapSens_Slider_LED". This project does not need any change

On the PRoC side, the starting point is the example project named "PRoC_4_BLE_Central_IAS". This project requires some minor changes. The first change is to add a PWM output. This is very easy to do thanks to the graphical designer included in the IDE. I already get accustomed with this user interface because I worked (some time ago) on the PSoC4 module. The graphical interface provides a convenient way to configure system peripheral. For example, to enable the PWM output, simply open the TopDesign.cysch document. Right-click on the PWM_1 peripheral and select "Enable" in the context menu

Now double-click on the clock peripheral to open the configuration window


 

Next, let's configure the PWM period and duty-cycle


Finally. let's add the pin where the PWM signal will be output

 

It is now possible to access PWM peripheral by using C functions like

 

PWM_1_Start();

PWM_1_WriteCompare(<value>);

PWM_1_Stop();


Finally, let's change the C code to handle notifications from PSoC (red) module

All the logic to handle BLE communication is in the BLEClient.c file. In particular, the function ApplicationEventHandler.

This function is invoked by the BLE stack and is set by invoking (when firmware boots) the following code (in main.c)

 

CyBle_Start(ApplicationEventHandler);   


The function

void ApplicationEventHandler(uint32 event, void *eventparam)

has two parameters: event identifies the notification that is required to be processed, and eventparam points to a structure that depends n the value of the event parameter. To handle notifications sent by PSoC, we need to add a case for the following event


/* Notification data received from server device. Event parameter

      is a pointer to a structure of type CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T. */

    CYBLE_EVT_GATTC_HANDLE_VALUE_NTF,

 

The CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T contains the data that can be accessed as follow


reqParam = (CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T *) eventParam;

RGBledData[RED_INDEX] = reqParam->handleValPair.value.val[RED_INDEX];

RGBledData[GREEN_INDEX] = reqParam->handleValPair.value.val[GREEN_INDEX];

RGBledData[BLUE_INDEX] = reqParam->handleValPair.value.val[BLUE_INDEX];

               

 

Conclusions

Here are the pros and cons of this kit

Pros

  1. the kit has everything you need to evaluate and test the capabilities of BLE connectivity. You can start testing BLE communication 30 seconds after opening the shipping box
  2. good hardware quality, especially regarding the RF section (antennas)
  3. good quality-to-price ratio: for 49 dollars you have three fully-programmable BLE modules. All the modules are ready to be used as daughter boards to give BLE connectivity to your projects
  4. extremely user-friendly development tools: the graphical tool for configuring peripheral are incredibly useful and powerful

 

Cons

  1. BLE modules female connectors are not the best option: I would prefer male header connectors. Also, mating and un-mating BLE module and baseboard is a bit difficult and could lead to damages to the PCBs
  2. baseboard switches and capacitive sensor are not easy to reach
  3. the Arduino-compatible connectors would have been more useful on the BLE module than on the baseboard
  4. the project of the USB Dongle operating in central mode (i.e. the firmware installed on the USB dongle out of the box) is not available. So after another application is programmed on the USB dongle, it's impossible to get back to the original application
  5. it would have been useful to have GPIO available also on the USB dongle
  6. it would have been nice to have a simple PC application that continuously monitor the power of the received signal. CySmart PC application shows signals power only for the message received from a device
Anonymous