While hackers do good most of the time, we occasionally do evil and play a prank. The ESP8266, unlike JSON, allows me to do evil. Thus, I programmed the microcontroller for an evil purpose: slow down the WiFi.

Binary firmware (13 channels): https://drive.google.com/open?id=0B-WcWu3EgVs9aHBrZTJWdTlkbDQ

ESP8266Flasher: https://drive.google.com/open?id=0B-WcWu3EgVs9Mm02dHJhTDBKbVE

Packet from a station is always addressed toward the access point, even if its destination is another station. The access point then relays the packet either via a wired interface, or wirelessly toward the recipient station. The two transmissions (from station to access point, and from access point to recipient station) can choose speeds independently.

One class of network packets is broadcast packet, where a packet is addressed to a broadcast address, and is intended to be received by multiple recipients. Broadcast packet from a station is also relayed through the access point: the access point receives it from the sender, and forwards the packet toward the recipients. However, a major difference from regular unicast packets is: there are multiple recipients, and the access point is no longer able to choose a speed according to the channel quality between the access point and the single recipient. In this case, WiFi standards mandate the access point to transmit the broadcast packet at the lowest speed.

And then repeatedly transmits broadcast packets as fast as possible. Since each channel refers to a single wireless frequency, this would affect all WiFi networks on the same channel, even if the stations are connected to other access points. (I can suggest for people who would like to have more stable effect - Buy 13 ESP modules for every Wi-Fi channel.)


My ESP8266s are boiling hot because the CPU and RF are operating at full speed.


WARNING: The code provided in this article is for education purposes. I ran the evil ESP8266 only for several minutes to test its effect. It's not recommended to leave this running for long periods of time, because this can disrupt normal communication which is a violation of FCC rules for 2.4G band.

More on that on my other project