Hi,
I am working on a project wherein the DA 14585 device is in scanning mode for the entire time. We are using the SDK 6.0.4. The device is capturing BLE packets sent from 2 devices at an advertising interval of 500ms each, and at tx powers 0dBm and 8 dBm respectively. The test is repeated at various distances ranging from 0 meter - 14 meters. After capturing the packets, the rssi values received are converted to the corresponding dBm values using the formula as specified in the linkhttps://support.dialog-semiconductor.com/convert-rssi-dbm. While analysing the results, huge range in rssi is observed, and the dBm values obtained are very low even for short distances. For instance, at a distance of 0 meter, the rssi into dbm converted values for the device which sends at 0dBm power was found to be close to -70, whereas for the device which sends BLE packets at 8dBm, the converted value was found to be -69. The range was also not 2db, as specified in datasheet. Kindly suggest if the formula for conversion is different for the new SDK version, and the reasons for the same.
Thanks and Regards
Wisilica
Hi wisilica,
The conversion formulas and the way of the calculation is changed on the 585, the wrong reported values that you get is a bug on the released SDK, in order to get proper values you will have to replace the rf_rssi_convert() function and instead of having return rssi_reg/2 replace that with return ((rssi_reg >> 1U)-112U); as soon as you got that you should be able to get the proper values without extra conversions.
Thanks MT_dialog
Hi,
As per the method suggested, the return value has been changed to return ((rssi_reg >> 1)-112); in the rf_rssi_convert(). Now, at a distance of 0meter, the value we are getting i param->report.rssi ranges from e6 to e7. What does this correspond to ? Are any other conversions required ?
Thanks
Hi wisilica,
No, there are no conversions required the value that is returned after that modification is the actual value of the RSSI in dbm, the 0xE6 stands for -26dbm if you read it as a signed value.
Thanks MT_dialog
Hi,
As per your suggestion we had modified the code, and the test was repeated. PFA the rssi vs distance graph we had obtained. The rssi do not decrease in a linear way with respect to distance. Also, a shift of more around 10 - 15 dbm in rssi was obtained in each case. Please suggest the reasons for the same.
Thanks
Wisilica
Hi wisilica,
The RSSI is measured in dbm and dbm is a logarithmic unit, the relation between the RSSI and the distance is not linear, you wont see the RSSI to be decreased in direct analogy as the distance increases, if that is what you expect to observe. Also in order to properly test this you will have to perform shielded measurements (for the shifting).
Thanks MT_dialog
Hi,
The logarithmic analysis is attached herewith. There still exists discrepancy between the actual variation and logarithmic representation.
Kindly check.
Thanks
Wisilica
Hi wisilica,
有很多公式用于估计基于RSSI的距离,这是出于这个论坛的范围,我建议检查网站,以便找到有关此内容的更多细节,如果这就是你的更多细节正在努力做到。虽然您不会获得精确的阅读,并且大多数公式提供粗略估计的距离,也关于图,天线和系统一般不完美,例如接收信号的电源不会是在所有频率中也是如此测试以便准确地需要在屏蔽的环境中执行,因为RSSI值受到噪声的高度影响。
Thanks MT_dialog
Hi,
I would like to know that the rssi returned in case of DA 14580(SDK 5.0.4) is correct, ie rssi_reg/2. The bug exists only for 585 SDK 6.0.4 right ?
Thanks
Wisilica
Hi wisilica,
Yes, the calculation of the rssi is different on those two SoCs, since the 585 carries a different stack, how to calculate the RSSI in dbm in documented in the below link, and no you dont have to apply that patch on the 580 SDK:
https://support.dialog-semiconductor.com/guide/faq-da1458x-software-peri...(FAQ: How to read and convert the RSSI value to dBm).
Thanks MT_dialog