ESP32 Specifications (WiFi Receive)

johnlee
Posts: 34
Joined: Sun Nov 15, 2015 4:27 am

ESP32 Specifications (WiFi Receive)

Postby johnlee » Thu Sep 21, 2017 8:24 pm

Introduction
This is a series of articles about ESP32 WiFi specifications. The organization of the topics presents the most important concepts first and the least important and most obscure ones, the last, so that the reader can stop at anytime when it becomes irrelevant. For a start, we will discuss about the receiver performance of ESP32.

Receiver Performance
The receiver performance of a WiFi system is usually called the sensitivity of the system, which refers to the smallest signal that the system can receive. This term is often confused with the RF sensitivity which refers to the noise performance of the radio only, and does not include the digital demodulator. When we include the effects of the digital demodulator together with the RF system, the receiver performance is then called the system sensitivity, receiver sensitivity or RX sensitivity.

For WiFi systems, the system sensitivity usually refers to the system sensitivity when operating at 802.11B 1Mbps mode, because this mode as the longest physical range, albeit it has the lowest data rate. So there are also system sensitivity specifications for all different data rates, such as 802.11B 11Mbps, 802.11G 54Mbps, etc, but they are all larger than the system sensitivity of 802.11B 1Mbps. To avoid confusion, we will still write 802.11B 1Mbps explicitly.

The system sensitivty of a properly matched ESP32 operating in 802.11B 1Mbps mode is -97 dBm. ESP32 receiver measurement are done at the antenna port which is matched to 50 ohms. Some other chips may specify system sensitivity at the chip port which is behind a balun or antenna switch, as such one will need to add the balun loss and switch loss to the system. (Usually about 1.0 dB or slightly more; but it's not uncommon that software engineers also attempt to do RF layout and lose 20 dB here.)

ESP32 also has an long range (LR) mode, which has an improved sensitivity of -105 dBm with 125 kbps rate, but with certain caveats. This mode can only work between a pair of ESP32 communicating with each other; other non ESP32 chips do not support this mode. One application of this is ESP32 mesh network. Having a LR mode with ESP32 mesh helps extend the physical range and robustness of the mesh network.

It is noted that the system sensitivity is composed of 2 parts: RF sensitivity (or RF performance) and baseband CNR requirement. We shall now examine these two parts in detail.

RF Sensitivity
RF sensitivity is a measure of the receiver’s ability to detect and amplify weak signals, which is also a measure of how little intrinsic noise a receiver has. A good RF receiver should have a very little intrinsic noise or low noise floor (or low intrinsic noise). Conversely, if a RF receiver has a high noise floor, the noise signal will overwhelm weak signals.

The noise floor of the system is given by:
  • N [dBm/Hz] = -174 + NF [dBm/Hz]
where NF is the noise figure and N is the amount of intrinsic noise of the system.

For ESP8266 and ESP32, the noise figure is approximately 4.5dB. In the actual system, the real sensitivity as measured together with the antenna is a factor of other things such as:
  • - Carrier-To-Noise Ratio (CNR) requirement based on modulation scheme
    - Spectral characteristics
    - Presence of interfering tones within the signal
    - Antenna matching
    - Antenna gain
Presence of Interfering Tones
Interfering tones show up on the receiver spectrum when such signals from the crystal oscillator or flash device somehow make its way into the receiver. For ESP32 and ESP8266 WROOM modules, they have been optimized to be clear of such interferers. Nonetheless, when using these modules, one should always make sure that the power supply is well decoupled.

In particular systems with DDR memory on the board can have very strong interferers in the vicinity of 2.4GHz band.

Antenna
The antenna matching and antenna gain are important factors to a receiver system. Performance can vary wildly when modules are integrated within a system, and antennas become detuned by the presence of conductive of dielectric material nearby, e.g. the casing or the PCB holding the module.

It is a requirement to place the WiFi module's antenna at the edge or corner of the application PCB, jutting out, or with the ground plane around the antenna removed.

When we consider the effects of the antenna, we then have a more complete picture of the WiFi system's performance than just looking at a single number such as the noise figure. It is good to familiarize oneself with link budget calculations: https://en.wikipedia.org/wiki/Link_budget

The sensitivity of the system with the antenna gain and losses considered then becomes:
S [dBm] = -174 + NF + CNR + 10 log bandwidth + GRX - LRX [dBm]
where GRX is the antenna gain, LRX is the losses between the antenna at the chip, including antenna conductive losses and other mismatches and CNR is the Carrier to Noise Ratio threshold of the receiver system at a certain Bit Error Rate (BER).

It seems that a high antenna gain would be good, but in actual system, it is not so. High antenna gain means that the antenna is focused in one direction, e.g. like a radar, which means that it has poor reception in any other direction that is not the desired focus. What we wish from the antenna is high antenna efficiency, which translates to less conductive losses, and low antenna gain.

An ideal antenna is one which radiates equally well in all directions; such an antenna is called an isotropic antenna. However, this is not possible in real applications because all antennas have a certain directivity. In ESP32 modules, the antennas are optimized to have the best possible radiation pattern in all directions except for the rear of the module (the direction away from the antenna, due to the application PCB ground). For more challenging applications, ESP32 also supports antenna diversity with an external antenna switch. It is possible to achieve isotropic performance with two antennas with ESP32, but in most applications we have not seen a need to do this.

Carrier to Noise Ratio (CNR)
Carrier to noise ratios are characteristics of the signal modulation scheme and the implementation of the demodulator algorithm itself. Modern digital communication systems are constructed with complicated modulation systems (a way of mapping digital representation of the signal to an analog domain, such as OFDM and BPSK in WiFi systems) and error correction codes (ECC).

A detailed study of all the parameters would be too involved for now.

The next article will be about the transmitter, or do add a reply if you wish to discuss some other topics. Stay tuned.

User avatar
hassan789
Posts: 156
Joined: Thu Jun 29, 2017 2:15 am

Re: ESP32 Specifications (WiFi Receive)

Postby hassan789 » Thu Oct 19, 2017 3:52 am

So in LR mode, we have a possible link budget of 125dB (+20dB TX) - (-105dB RX).
That is almost 18km in freespace. Even if we loose 1.5dB + 1.5dB due to pcb and antennas, we still can still expect ~12km range in freespace (line of sight NOT needed).

EDIT:
It seems that Espressif advertises that LR mode can do 1km in a point-to-point link. Anyone want to elaborate on why that is?

EDIT 2:
After accounting for 20-30dB fade margin (Fresnel zone & multi-path losses), 1km seems about right.

Who is online

Users browsing this forum: No registered users and 306 guests