Jimmie Jammer, the nasty anti-hotspot
Nothing is as heartwarming as seeing your friends, foes and family look at their smartphones, tablets, laptops and other WiFi-capable devices. Also, it is kind of boring to sit alongside.
Jimmie Jammer is the solution to all your problems! At least, it is a nice prank that offers the ability to rant about shitty WiFi together.
The ESP8266 module is capable of sending almost arbitrary WiFi packets, including so-called deauthentication packets and packets including beacon information. Browsing the internet, I found that RandDruid already did most of the work for me. He wrote software for the ESP that kicks everyone in range out of their WiFi hotspot. Why does that work? The router and the client talk to each other. The router can send a special packet - the deauthentication packet - to the client that makes the client disconnect. The software now searches for nearby hotspots and clients, and as soon as there are any found, the module, claiming to be the router, sends the deauthentication packet. There is another special packet that tells a client a router’s name (SSID) and a kind of address (MAC). kripthor wrote a small example that blasts a ton of random beacon packets in the air. I used their code as template for a function that I included in RandDruid’s original software. You can download the code here.
Next came the hardware part. The ESP8266 is a 3.3V device that draws up to 200mA, maybe about 100 mA on average in this application. As power supply, I used rechargable LiFePo4 batteries. Those are very robust and, unlike typical batteries, stay at 3V for a long time. Mine has a capacity of 700mAh which should be enough for a few hours. The battery can be directly connected to the ESP. I added a switch to be able to turn it on and off and save energy and nerves.