Skip to content

ESP32 Wi-Fi RSSI Value Is Unreliable

DodaTech Updated 2026-06-26 1 min read

In this tutorial, you'll learn about ESP32 Wi. We cover key concepts, practical examples, and best practices.

The Problem

ESP32 reports inconsistent or inaccurate RSSI values for Wi-Fi signal strength measurement.

Quick Fix

Wrong

int rssi = WiFi.RSSI();
Serial.printf("Signal: %d dBm
", rssi);
Signal: -42 dBm
Signal: -67 dBm
Signal: -38 dBm
(values jump wildly between reads)
#include <WiFi.h>
float smoothRSSI = 0;
void loop() {
  int rssi = WiFi.RSSI();
  if (smoothRSSI == 0) smoothRSSI = rssi;
  smoothRSSI = smoothRSSI * 0.7 + rssi * 0.3;
  Serial.printf("Raw: %d dBm | Smooth: %.1f dBm
", rssi, smoothRSSI);
  delay(2000);
}
Raw: -42 dBm | Smooth: -44.2 dBm
Raw: -47 dBm | Smooth: -45.0 dBm
Raw: -44 dBm | Smooth: -44.7 dBm

Prevention

Apply exponential moving average to RSSI readings. Read RSSI at most once per second. Filter out values below -100 dBm (out of range). Use dBm, not percentages for precision. Compare RSSI against known baseline for your environment.

DodaTech engineers apply these same patterns when building Doda Browser's networking stack, DodaZIP's firmware packaging pipeline, and Durga Antivirus Pro's sensor communication layer.

FAQ

### What is a good RSSI value for ESP32?

Above -50 dBm is excellent, -50 to -70 dBm is good, -70 to -80 dBm is marginal, below -80 dBm is unreliable for stable connections.

Does RSSI affect data throughput?

Yes. Below -70 dBm, throughput drops significantly. Below -80 dBm, packet loss increases and retransmissions grow.

Can RSSI be used for indoor positioning?

Yes, but trilateration with multiple APs is needed. Single-AP RSSI is too noisy for accurate positioning. Smooth readings over 5-10 samples.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro