
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
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
Solved! Go to Solution.
- Labels:
-
PSoC 4 MCU
- Tags:
- rssi

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
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:
We are very sorry for the inconvenience.