uv-k5-firmware-custom: Incorrect RSSI register read
We found a potential issue in the RT-890 OEFW code that appears to also affect the K5.
It looks like the BK4819_GetRSSI() function is reading what’s supposed to be an 8 bit register as 9 bits. The current read is done as: BK4819_ReadRegister(0x67) & 0x01FF;
This is causing the returned RSSI value to be high. Which explains why most traffic reads as S9+ on the signal bar.
After playing around on the 890, the correct way to read the register seems to be 8 bits, excluding the least significant bit. On the 890, this has produced more sensible dBm values:
- -117 instead of -74 for a repeater several miles away
- -81 instead of -47 for a 5w transmission with radios side-by-side
This is the modified read function that I tested on the 890 that seems to return sane values:
uint16_t BK4819_GetRSSI(void)
{
uint16_t RawRSSI;
RawRSSI = BK4819_ReadRegister(0x67) & 0x01FE;
RawRSSI = RawRSSI >> 1;
return RawRSSI;
}
About this issue
- Original URL
- State: closed
- Created 8 months ago
- Comments: 17 (10 by maintainers)
The register datasheet shows the formula to be what 11 wrote above. It’s nothing new/hidden.