Introduction: WiFi Jammer Using ESP8266

Picture of WiFi Jammer Using ESP8266

First, I just want to mention about few things which were in my mind before I could make my project. As Samy Kamkar said in Hackaday superconference that we should move towards low-cost hacking/exploitation tools could think only about NodeMCU as it was the only cheap MCU I knew that has wifi.

Before that, I only knew the ESP8266 as an IoT module and I could only make things like home automation or the simple 2 led control using the ugly HTML page. Unlike other commercially availably wifi jammers would burn several holes in my pockets having a hefty price tag of at least 45 $ (checked on amazon and eBay).

That time I had I had fewer savings as the raspberry pi was very costly for me (almost 43$, god only knows why it is so costly in India). not use many wifi jammers are proprietary and I could not make many tweaks in them. I could not resist myself to upload this instructable as this project is is a success for me.

When I had uploaded this instructable some people could not use the wifi jammer properly this is the revised version of the wifi jammer.

In this instructable, you will learn how to make a low-cost wifi jammer using ESP8266


Assemble your own WiFi jammer with an ESP8266. You select the customers you need to disengage from their system and begin the assault. For whatever length of time that the assault is running, the chose gadgets can't associate with their system. You can examine for systems, filter for customer gadgets, and begin distinctive assaults.

Points of interest

Fabricate your own WiFi jammer with an ESP8266

What it will be: It's a gadget which plays out a deauth attack.You select the customers you need to separate from their system and begin the assault. For whatever length of time that the attack is running, the chosen gadgets can't interface with their system.

How it functions:

The 802.11 WiFi convention contains an alleged deauthentication outline. It is utilized to detach customers securely from a remote system. Since these bundles are decoded, you simply require the MAC address of the WiFi switch and of the customer gadget which you need to detach from the system. You don't should be in the system or know the password, it's sufficient to be in its range.

What an ESP8266 is:

The ESP8266 is an exceptionally shoddy microcontroller with implicit WiFi. It contains a capable 160 MHz processor and you can program it with the Arduino IDE. This makes it ideal for this venture.

Step 1: ​Disclaimer

Utilize it just to test purposes all alone gadgets!

If it's not too much trouble check the legitimate controls in your nation before utilizing it. Sticking transmitters are unlawful in many nations and this gadget can fall into a similar classification (regardless of the possibility that it's in fact not the same). My aim with This venture is to attract consideration regarding this issue. This attack indicates how vulnerable is the 802.11 WiFi standard is and that it must be settled.

Step 2: Installation

Picture of Installation

The main thing you will need is a PC and an ESP8266 /NodeMCU with no less than 1Mb of flash memory.

I prescribe you to purchase a USB breakout/developer board since they have 4Mb flash and are extremely easy to utilize. It doesn't make a difference which board you use, the length of it has an ESP8266 on it.(If you utilizing an ESP-01 with only 512kb, you can comment out the MAC Vendor list in data.h.)

1. Install Arduino and open it.

2. Go to File > Preferences

3. Add to the Additional Boards Manager URLs.

4. Go to Tools>Board > Boards Manager

5. Type in esp8266

6. Select version 2.0.0 and click on Install (must be version 2.0.0!)

7. Go to File > Preferences

8. Open the folder path under More preferences can be edited directly in the file

9. Go to packages > esp8266 > hardware > esp8266 > 2.0.0 > tools > sdk > include

10. Open user_interface.h with a text editor 11. Scroll down and before #endif add following lines(from line 450):

typedef void (*freedom_outside_cb_t)(uint8 status); 
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
void wifi_unregister_send_pkt_freedom_cb(void);
int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);

And don't forget to save!

12 Go to the SDK_fix folder of this project

13 Copy ESP8266WiFi.cpp and ESP8266WiFi.h

14 Paste these files here packages > esp8266 > hardware > esp8266 > 2.0.0 > libraries > ESP8266WiFi > src (watch the video above)

15 Open esp8266_deauther > esp8266_deauther.ino in Arduino (watch the video below)

16 Select your ESP8266 board at Tools > Board and the right port at Tools > Port If no port shows up you may have to reinstall the drivers.

17 Upload! Note: If you use a 512kb version of the ESP8266, you need to comment out a part of the mac vendor list in data.h. Your ESP8266 Deauther is now ready!

Step 3: How to Use It

Picture of How to Use It

Step 1

To begin with, begin your ESP8266 by giving it powering it . You can do as such by associating it to the power bank or the USB connector. You can likewise interface with USB ports in Laptops.

Step 4:

Picture of

Scan for WiFi networks and connect to pwned. The password is deauther. Once connected, you can open up your browser and go to

You can now scan for networks.

Step 5:

Picture of

Scan for client devices.

Note: While scanning the ESP8266 will shut down its access point, so you may have to go to your settings and reconnect to the WiFi network manually.

Step 6:

Picture of

And start different attacks.

Step 7:


Do you have a GitHub page where I can simply get the refreshed code for the activities?

Obviously. I will always keep the refreshed code at GitHub. Here is the URL

Would it be able to auto-deauth all APs in the range?

Yes, yet I won't actualize this "highlight" for moral and legitimate reasons.

Can it sniff handshakes?

The ESP8266 has an unbridled mode in which you can sniff bundles, yet handshake parcels are dropped and there is no other approach to get them with the capacities gave by the SDK.Maybe somebody will discover a route around this obstruction however, I couldn't. Maybe in future...

espcomm_sync fizzled/espcomm_open while transferring

The Arduino IDE can't speak with the chip, ensure the correct port is selected!You can likewise experiment with various USB ports and cables.If this doesn't understand it you may need to introduce USB drivers.Which drivers you require relies on upon the board, most sheets utilize a cp2102, cp2104 or ch340.

AP check doesn't work

There is a revealed issue on this: exchanging the program or open the site with another device.A

Deauth attack won't work

In the event that you see 0 pkts/s on the site, you have committed an error. Check on the off chance that you have taken after the means accurately and that the privilege SDK introduced, it must be 2.0.0!If it can send parcels yet your objective don't free its association then the WiFi switch utilizes 802.11w and it's insured against such assaults or they impart by means of 5 GHz WiFi, which the ESP8266 doesn't.

On the off chance that you have different inquiries or issues with the ESP8266 you can likewise look at the official group discussion.

How to donate for this project?

*If anyone wants to contribute to this projects you can do so via PayPal ( or PayTM(+918407975073). I also accept BitCoin (15fR1pF4PcxenVnZcHab4mY9sTx8fH8GF6).This money is used to buy Hardware for the projects.


This venture is authorized under the MIT License - see the Licence document display in for points of interest

If my question /doubt is not clear, which is the immediate way to contact you?

You can contact me via WhatsApp (messages only). My WhatsApp number is +918407975073. You can also use discord as here in the comments section and Whatsapp different people ask the same question again and again.

Step 8:

Journey through Electronics

Hi, my name is Tejas. I am 18 years old. I have been interested in electronics since I was a 9-year-old kid. My most favourite pastime activity was to disassemble toys and figure out the components. When I was 11 years of age, I started disassembling radios, mobile chargers and watches. Sometimes people would get irritated because of these deeds and thought that I am just breaking stuff.

When I got my first computer at 12 years, it was amazing. Using it I learnt about something called the internet which was way wonderful than books. The only thing I was interested was hacking hardware. In 2015 I heard about rubber ducky. I could never place hands one because For me in India it was a distant dream and I was just searching on youtube how to make one. some were fake some were too complicated due to which I found ethical hacking too interesting. for that, I again turned to youtube. Learnt some practical work was unable to learn things like crypto which were way boring.

Then on Instructables, I saw many posts about Arduino and learnt electronics. that was the first time of me in actual DIY electronics. my first board was Arduino Uno. from then journey never stopped. I always kept researching about various dev boards-Arduino Leonardo, pro micro and the latest Raspberry pi 3. I was amused but the fact that Arduino pro micro (Leonardo) could be used as HID. Also, the Digispark was also cool. A board which myself and my friends found very interesting.

In late 2016 while I was watching ethical hacking tutorials-wifi hacking using aircrack in kali Linux, the instructor always mentioned that for cracking the wifi password, the client should authenticate with the AP. This lets me in thinking that if I kick out the client on theAP so that it will connect back then I will be able to capture authentication packets. That was the time this wifi jammer using esp8266 was born. Made my jobs much easier and enjoying it.


TanakaL (author)2017-09-13


Arduino: 1.8.4 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

Build options changed, rebuilding all

Archiving built core (caching) in: C:\Users\LTanaka\AppData\Local\Temp\arduino_cache_465259\core\core_esp8266_esp8266_nodemcuv2_CpuFrequency_80,UploadTool_esptool,UploadSpeed_115200,FlashSize_4M3M_f36db3b066411bdfb783256971d4597a.a

Sketch uses 565526 bytes (54%) of program storage space. Maximum is 1044464 bytes.

Global variables use 57560 bytes (70%) of dynamic memory, leaving 24360 bytes for local variables. Maximum is 81920 bytes.

error: Failed to open COM1

error: espcomm_open failed

error: espcomm_open failed

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

mrtejaslol (author)TanakaL2017-11-08

Ru5 arduino as administrator . Ch3ck if you have selected correct port

instagramjulian46 (author)2017-06-14

I've got this error, how to fix it?:

Archiving built core (caching) in: /var/folders/19/lklss1_96nn731ht7z067wjh0000gn/T/arduino_cache_2134/core/core_esp8266_esp8266_nodemcuv2_CpuFrequency_80,UploadTool_esptool,UploadSpeed_115200,FlashSize_4M3M_a962c2dc8942d296cd0db465cf8c2997.a

De schets gebruikt 480952 bytes (46%) programma-opslagruimte. Maximum is 1044464 bytes.

Globale variabelen gebruiken 55554 bytes (67%) van het dynamisch geheugen. Resteren 26366 bytes voor lokale variabelen. Maximum is 81920 bytes.

warning: espcomm_sync failed

error: espcomm_open failed

error: espcomm_open failed

run your arduino IDE with sudo and check the port. Also run dmesg in terminal to find if ESP is detecting

GijsR1 (author)instagramjulian462017-06-15
MoroisaA1 (author)GijsR12017-07-02

How to install the diffrent attack ?

GijsR1 (author)MoroisaA12017-07-19

Sorry I don't understand.

DavidT511 (author)2017-11-07

is there any way I can change the IP address to something else?

SyconTechnology (author)2017-10-17

Hy, It was straight forward! No errors though nothing shows on serial monitor

LogisticsJoe (author)2017-10-10

Thank you so much! That great feeling when it finally works after adjustment, after adjustment, after adjustment...

This was a great project for me to get my feet wet with coding boards. Much appreciated!


dankakot05 (author)2017-09-30

Arduino: 1.8.4 (Windows Store (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 9600, 4M (3M SPIFFS)"

sketch\Attack.cpp: In member function 'bool Attack::send(uint8_t*, int)':

Attack.cpp:41: error: 'wifi_send_pkt_freedom' was not declared in this scope

if(wifi_send_pkt_freedom(buf, len, 0) == -1){


sketch\Attack.cpp: In member function 'void Attack::run()':

Attack.cpp:179: error: 'wifi_send_pkt_freedom' was not declared in this scope

if(wifi_send_pkt_freedom(deauthPacket, 26, 0) == -1){/*


Attack.cpp:190: error: 'wifi_send_pkt_freedom' was not declared in this scope

if(wifi_send_pkt_freedom(deauthPacket, 26, 0) == -1){/*


Attack.cpp:221: error: 'wifi_send_pkt_freedom' was not declared in this scope

if (wifi_send_pkt_freedom(packet, packetSize, 0) == -1){/*


exit status 1

'wifi_send_pkt_freedom' was not declared in this scope

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

Akshay6766 (author)2017-09-18

How to automatically make it t scan and deauther the devices

Noaharoma (author)2017-09-16

I'm getting this error:

Build options changed, rebuilding all

In file included from sketch\Settings.h:12:0,

from sketch\APScan.h:9,

from sketch\APScan.cpp:1:

C:\Users\Noaha\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/sdk/include/user_interface.h:449:39: error: 'freedom_outside_cb_t' was not declared in this scope

int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb); void wifi_unregister_send_pkt_freedom__cb(void); int wifi_send_pkt_freedom(uint8 **buf, int len, bool sys_seq);


exit status 1

Error compiling for board NodeMCU 1.0 (ESP-12E Module).

Any Recommendations?

TimofeiB (author)2017-08-19

Guys, Its a wonderful project, just one thing: I get this error every time:

C:\Users\yuri2\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/sdk/include/user_interface.h:6:0: error: unterminated #ifndef

#ifndef __USER_INTERFACE_H__

Please help as I am doing this for a science fair !!!!!

ChrüterchraftR (author)2017-08-18

Very simple project for a beginner like me that was my first project with a arduino thanks you a lots for the clear instruction ^^

Cjcanaday (author)2017-08-16

Hello. I have been having some issues with this guide and I was wondering if someone could help me out.

I have read the majority of the comments hoping that one of them could help me out but sadly none of them did. I have plugged my ESP8266 in to my computer and I have everything setup including the port that is neccasary and when I hit the upload button it goes through but I dont see the network pwned.

I have tried changing settings.cpp but whenever I change line 41 it gives me an error when I try to upload.

Someone Please Help!

CollinW12 (author)2017-07-18

I'm doing this on mac and have a 512kb board, and don't know how to convert the code. Someone pls help

graemepeek made it! (author)2017-07-11

Works well, needs some tweaks and the ESP8266 board library is on V2.3.0 at this point and would be nice if updated to support that version but otherwise a fun project

youngbyzucc (author)graemepeek2017-07-18

please help me

youngbyzucc made it! (author)youngbyzucc2017-07-18

I used V2.3.0 too,but I failed......

youngbyzucc (author)youngbyzucc2017-07-18

I can't got SSID

youngbyzucc (author)2017-07-17

I have trouble! I can't get any SSID, it keep scanning,and it says " sending AP scan result JSON ...........DONE"

MoroisaA (author)2017-07-02

but I don't understand why the another attack is not working (beacon and probe request), and how to install the another attack (mod)?

MoroisaA made it! (author)2017-07-02

work perfect !!! let's improved.

bwesty064 (author)2017-04-29


Ive uploaded the program to my development board, but when i plug the board into a power source it turns its light on and then off really quickly, and when i scan for wireless networks on my iPhone i cannot find it. any help would be appreciated! thanks

Squirrel1975 (author)bwesty0642017-05-18

I had the same problem, which was solved by changing board to "NodeMCU 1.0(ESP-12E Module)" in Arduino.

pwned then appeared in my wifi list

scojoe (author)Squirrel19752017-06-10

Brilliant!! This solved my problem. I did not see "pwned" in my wifi list and I double-checked everything. Turns out I had the wrong board selected in my Board Manager. Changing from "NodeMCU 0.9(ESP-12E Module)" to "NodeMCU 1.0(ESP-12E Module)" fixed it. Pwnd started showing up in my wifi list! :^)

StefanoM72 (author)bwesty0642017-05-10

Me too :( help pls!!

mrtejaslol (author)StefanoM722017-05-23

Try again all the steps properly right drom begining

WilliamK134 (author)bwesty0642017-05-08

I have the same problem :(

mrtejaslol (author)WilliamK1342017-05-23

Try again all the steps properly right from begining

mrtejaslol (author)bwesty0642017-05-19

Its absolutely normal. It is coded in such a way in which max power can be used by the esp8266.

speedred (author)2017-06-10

Simply great! I just finished the project and it worked at first! I just have a doubt, I have a specific cell phone in which when I connect to the network "powned" I can't
open the IP address of esp8266, in all other devices works well, but in that device only connects and is everything, is A MotoG4 with Android 7, obviously is a issue in that equipment,but I wondered if someone had happened something like this

zdravkok (author)2017-06-09

select NodeMCU 1.0 ESP12E and its work

lucastrike (author)2017-06-05

hi! can someone explain to me where is stored the website I access to?

Alessandrod48 (author)2017-06-03

Friend would like to know why after I do the whole procedure and unplug the esp8266 it does not show the network to "pwned" where I should have access to

Alessandrod48 (author)2017-06-02

can't to see on Scan for WiFi connect to pwned and it's no show...

any help...

mrtejaslol (author)Alessandrod482017-06-03

This reason is very generic. That's why I don't reply comments. You'll don't give me any details how will I solve the problem? Whatsapp me

RavenT7 (author)2017-05-30

I have a problem with compiling the code, can somone help me please?

Arduino: 1.8.2 (Windows 8.1), Board:"NodeMCU 0.9 (ESP-12 Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

C:\Users\raven\AppData\Local\Temp\\esp8266_deauther-master\esp8266_deauther\esp8266_deauther.ino:60:18: fatal error: data.h: No such file or directory

#include "data.h"


compilation terminated.

exit status 1

foult of compiling of board NodeMCU 0.9 (ESP-12 Module)

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

scojoe (author)2017-05-03

Like some others here, I've successfully connected to my device and uploaded the deauth package, but I never see pwnd show up in my network list - I've tried several different devices, I've even tried better USB cables (it's PC powered still). The LED flashes as I upload but goes dark after. Is it powered down? Why can't I find the signal? Thanks for any help

mrtejaslol (author)scojoe2017-05-06

You are on right track. The led will glow only at the time of connecting to usb. Then connect to 'pwned' ssid with passwod 'deauther' and open browser,type thats all

scojoe (author)mrtejaslol2017-05-08

Thanks for your reply - I've gone back over everything and all looks well. I've used the correct versions, and I've modified the right files correctly. My sketch upload succeeds, and I see no errors. Still I don't see pwnd in my SSID list... I see a few people have hit this problem too, and it's a showstopper. Any suggestions on how to troubleshoot?

mrtejaslol (author)scojoe2017-05-29

open settings.cpp in project folder. scroll to line 41. now change the quoted text

AxDhoqak (author)2017-05-13

I get the following compilation error referring to ESP8266mDNS.h:

error: 'WiFiEventHandler' does not name a type
WiFiEventHandler _disconnectedHandler;

error: 'WiFiEventHandler' does not name a type
WiFiEventHandler _gotIPHandler;

Do you have any ideas how to solve this?

mrtejaslol (author)AxDhoqak2017-05-29

redo the whole procedure

mrtejaslol (author)AxDhoqak2017-05-23

Try again all the steps properly right from begining

RaphaëlA31 (author)2017-05-14

Hi good work

So Everything allright but...

I want to go further

The 64 AP shows unsecure

Where can i change something in the code to see them secure? (even if is unsecure,can i fake this option?)

Thanks in advance

mrtejaslol (author)RaphaëlA312017-05-29

open settings.cpp in project folder. scroll to line 41. now change the quoted text

RaphaëlA31 (author)RaphaëlA312017-05-14

My bad

Its show up secure i want the 64 AP unsecure so the people will try to connect to it...

RaphaëlA31 (author)RaphaëlA312017-05-14

Also in the 64 AP there is dot before the SSID

Can I edit the code to not see this dot?

About This Instructable



Bio: Hi, I am a hardware hacker. I program in C, C++, Python, HTML, CSS. I also like to play with electronics. Please help by donating ... More »
More by mrtejaslol:PIR Controlled RelayWiFi Jammer Using ESP8266
Add instructable to: