You are here

Sending Temperature and CapSense using a Custom Event | Cypress Semiconductor

Sending Temperature and CapSense using a Custom Event

Summary: 5 Replies, Latest post by cy2392_1568091 on 27 May 2016 07:26 AM PDT
Verified Answers: 2
Last post
Log in to post new comments.
cy2392_1568091's picture
11 posts

I'm sending temperature data using DieTemp over a Custom Event bluetooth connection. I have generated the same process for sending CapSense proximity data but it seems that when I click "Notify" on the CySmart mobile app I am only able to see the temperature data. Is there a sequencing issue? Is the stack busy sending temperature data? 

mady's picture
Cypress Employee
964 posts


In your BLE Component settings -> Profile -> Plant -> Temperature, set the type as uint8[] instead of uint8.

Also, set the length as 2 instead of 1.


- Madhu Sudhan

cy2392_1568091's picture
11 posts



I've tried that and no notifications are coming up for the CapSense / 2nd characteristic. Do I need to change something in main.c to also change the type of the field? 


(why does changing the field allow for two notifications to be sent?)

cy2392_1568091's picture
11 posts

I fixed the problem - the code in my BLE C file did not allow for notifications to be sent for the CapSense data. 

jesus.sola9_1581581's picture
7 posts

Hello, I have a similar problem. I have a service with two characteristics ( temperature and humidity) and I created an android application to receive data from the characteristics, but I can not get one of them .


This is the feature that if it works (temperature):

cbtemp.setOnClickListener(new View.OnClickListener() { //CheckBox temperature


public void onClick(View view) {

boolean isChecked = ((CheckBox) view).isChecked();

if (isChecked) {

  BluetoothGattService mCustomService=mBluetoothLeService.getServices();

  BluetoothGattCharacteristic mCustomCharacteristic = mCustomService.getCharacteristic(UUID.fromString("00000002-0000-1000-   8000-00805f9b34fb"));   //UUID characteristic temperature

  final int charaProp = mCustomCharacteristic.getProperties();

  if ((charaProp | BluetoothGattCharacteristic.PROPERTY_READ) > 0) {

    if (mNotifyCharacteristic != null) {

      mBluetoothLeService.setCharacteristicNotification(mNotifyCharacteristic, false);

      mNotifyCharacteristic = null;


mBluetoothLeService.readCharacteristic(mCustomCharacteristic); }

if ((charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {

    mNotifyCharacteristic = mCustomCharacteristic;

    mBluetoothLeService.setCharacteristicNotification(mCustomCharacteristic, true); }



where getservices() function is :

public BluetoothGattService getServices(){

return mBluetoothGatt.getService(UUID.fromString("00000001-0000-1000-8000-00805f9b34fb"));  //UUID Service


For the characteristic humidity I do the same procedure but using the corresponding UUID (00000003-0000-1000-   8000-00805f9b34fb) but by clicking on the checkbox to activate it tells me :

java.lang.NullPointerException : Attempt to invoke virtual method ' int android.bluetooth.BluetoothGattCharacteristic.getProperties () ' on a null object reference

I'm really lost and not to do more . Thank you

user_242978793's picture
973 posts

Jesús please post your program. Also have you checked the function using the dongle to see what it is sending?

Log in to post new comments.