CyBle_GetRssi not working for PSOC 4 MCU

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
EyGe_3183606
Level 4
Level 4
25 replies posted 10 sign-ins 10 replies posted

Hello,

We have a PSOC 4 MCU and we are using it as a peripheral. 

We are trying to measure the RSSI with the function CyBle_GetRssi after we are connected to our BLE dongle (using CySmart 1.3). 

It is very unstable and usually, it gives completely unreliable data going all over the range and even exceeding the given range of -85 to 5 db. 

In rare cases, it gives the correct data but once we move our device it suddenly stops becoming accurate and data that is completely unrelated gets printed all the time. 

Our code is fairly simple. Every second (once we are connected) we do the following:

int8_t scRSSI = CyBle_GetRssi();
uint8_t ucRSSI = scRSSI*(-1);
iprintf2_ISR(True,E_DEBUG_CODE,"[BLE] ### RSSI : -%d, %x",ucRSSI, scRSSI);

 

Here is the type of data that we get (as an example):

01/01 00:00:09.967 [BLE] ################# RSSI: -141, 73

01/01 00:00:11.009 [BLE] ################# RSSI: -49, ffffffcf

01/01 00:00:12.010 [BLE] ################# RSSI: -219, 25

01/01 00:00:13.013 [BLE] ################# RSSI: -57, ffffffc7

01/01 00:00:13.977 [BLE] ################# RSSI: -142, 72

01/01 00:00:15.009 [BLE] ################# RSSI: -50, ffffffce

01/01 00:00:15.980 [BLE] ################# RSSI: -43, ffffffd5

01/01 00:00:16.970 [BLE] ################# RSSI: -43, ffffffd5

01/01 00:00:17.972 [BLE] ################# RSSI: -213, 2b

01/01 00:00:19.008 [BLE] ################# RSSI: -206, 32

01/01 00:00:19.978 [BLE] ################# RSSI: -22, ffffffea

01/01 00:00:21.007 [BLE] ################# RSSI: -192, 40

01/01 00:00:22.009 [BLE] ################# RSSI: -100, ffffff9c

01/01 00:00:23.012 [BLE] ################# RSSI: -8, fffffff8

01/01 00:00:24.007 [BLE] ################# RSSI: -92, ffffffa4

01/01 00:00:25.010 [BLE] ################# RSSI: -6, fffffffa

01/01 00:00:26.008 [BLE] ################# RSSI: -91, ffffffa5

01/01 00:00:26.978 [BLE] ################# RSSI: -175, 51

 

RARELY it is reliable like here (which matches the RSSI measurement in the CySmart 1.3 program): 

01/01 00:00:16.008 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:17.007 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:18.014 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:18.979 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:20.008 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:20.973 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:22.007 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:23.012 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:24.007 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:25.006 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:26.007 [BLE] ################# RSSI: -34, ffffffde

01/01 00:00:27.007 [BLE] ################# RSSI: -34, ffffffde

 

Any idea why this is completely unreliable?

Thanks,

Eyal

0 Likes
1 Solution

Here is the reply I got from Infinion:

CYBLE-224110 uses CY8C4248FNI-BL483 which is a CYBLE 4.1 device. We have a bug in CyBLE 4.1 devices for the RSSI value reporting. Its a hardware limitation and there is no fix for the same.

However our 4.2 devices will give reliable RSSI values. So if in your application reliable RSSI values are mandatory, we suggest you to choose any of CyBLE 4.2 modules.

You may also take a look at the following thread in community for more information:

https://community.cypress.com/t5/PSoC-4-MCU/CyBle-GetRssi-returned-value-doesn-t-make-sense/td-p/174...

We are very sorry for the inconvenience.

View solution in original post

0 Likes
4 Replies
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

Hello,

Could you please let me know the details of the PSoC4 BLE peripheral device which you are using ? Also, please let me know the BLE component version which you are using currently.

Thanks,

P Yugandhar.

0 Likes

Hello Yugandhar,

We are using PSOC4 CYBLE-224110-00 (BLE 4.1).

the profile role is GATT server.

the GAP role is peripheral.

Our device is advertising in connectable mode. once the PSOC dongle connects (before MTU exchange and pairing) we want to read the RSSI.

Thanks,

Eyal

0 Likes

Here is the reply I got from Infinion:

CYBLE-224110 uses CY8C4248FNI-BL483 which is a CYBLE 4.1 device. We have a bug in CyBLE 4.1 devices for the RSSI value reporting. Its a hardware limitation and there is no fix for the same.

However our 4.2 devices will give reliable RSSI values. So if in your application reliable RSSI values are mandatory, we suggest you to choose any of CyBLE 4.2 modules.

You may also take a look at the following thread in community for more information:

https://community.cypress.com/t5/PSoC-4-MCU/CyBle-GetRssi-returned-value-doesn-t-make-sense/td-p/174...

We are very sorry for the inconvenience.

0 Likes
baye_4029466
Level 1
Level 1
First question asked 5 replies posted First reply posted

Hello Yugandhar,

I'm working with Eyal and since he is not available for the next week, I will answer your question.

We are using PSOC4 CYBLE-224110-00 (BLE 4.1).

the profile role is GATT server.

the GAP role is peripheral.

Our device is advertising in connectable mode. once the PSOC dongle connects (before MTU exchange and pairing) we want to read the RSSI.

The RSSI result is as Eyal wrote.

Thanks,

Barak.

 

 

0 Likes