So I recently learned about the Friis equation and link budget calculation. When I tried to figure out what the theoretical maximum range of a 20dBm WiFi transmitter was, I quickly noticed that, assuming free space propagation, we should be able to transmit over a distance of several hundred meters. Since my experiments transmitting data across the Neckar valley (a distance of 1km) just using an omnidirectional dipole antenna were successful, I wanted to push my little ESP32 transmitter to the max and got a directional antenna. By reverse engineering and modifying the ESP32’s WiFi stack a bit, I managed to get it to transmit arbitrary WiFi frames which helped me accomplish an astonishing WiFi range of 10km!
The firmware component used to transmit arbitrary 802.11 frames can be found on GitHub.