Skip to content

Display and button Setup

BlackTechX011 edited this page Jan 10, 2024 · 2 revisions

Before you continue

Using the display interface is entirely optional. You can also control the Deauther via serial or the web interface.

We cannot start at 0 for this tutorial, so if you find this too tricky, get an Arduino starter kit with good documentation to get a feeling for tinkering with electronics. 😊

I focused on the NodeMCU in this tutorial since it is one of the most popular dev-boards. But every other ESP8266-based board should work just the same.

What you need

Wire everything up

Look up the pinout references for your board. Here's one for the NodeMCU: NodeMCU pinout

We have a limited amount of pins, and not every pin can be used for everything:

NodeMCU Pin GPIO Note
D0 GPIO 16 No I2C or PWM. Don't use this pin for the RGB LED or Display.
D1 GPIO 5 OK
D2 GPIO 4 OK
D3 GPIO 0 Connected to flash button.
D4 GPIO 2 Needs pull-up resistor.
D5 GPIO 14 OK
D6 GPIO 12 OK
D7 GPIO 13 OK
D8 GPIO 15 Needs pull-down resistor
D9 GPIO 3 RX (Serial). Avoid this pin.
D10 GPIO 1 TX (Serial). Avoid this pin.
SD2 GPIO 9 Used for Flash. Avoid this pin in QIO mode.
SD3 GPIO 10 Used for Flash. Avoid this pin in QIO mode.

Buttons

Connect each button to a GPIO and GND. Like in this Arduino tutorial: Input Pullup Serial Tutorial

LED

The LED is used as an optional indicator. For example, Green = idle, Blue = scanning, and RED = deauth attack detected (when scanning).
You can use single digital LEDs, an RGB LED, or a Neopixel LED (WS2812b).

By default, the LED on GPIO 16 (NodeMCU onboard LED) and the LED on GPIO 2 (ESP-12 and ESP-07 on-module LED) are used.

Setup with I2C OLED

Display GPIO
GND GND
VCC/VDD VCC / 3.3V
SCL/CLK/SCK GPIO 4 (D2)
SDA GPIO 5 (D1)
Button GPIO
UP GPIO 14 (D5)
Down GPIO 12 (D6)
A GPIO 13 (D7)
B GPIO 2 (D4)
NEOPIXEL LED GPIO
GND GND
VCC VCC/3.3V
DIN GPIO 15 (D8)
Light GPIO
GND GND
VCC GPIO 16 (D0)

Testing everything

When everything is correctly set up and uploaded, open the serial monitor with Arduino (Tools > Serial Monitor).

  • Set the baud rate to 115200 and select Newline. If you see it resetting every few seconds, check the code and make sure you didn't use the same pin twice.

  • If there's no image on display, type set display true;;save settings and press enter. Now press the reset button on the board to restart it. If the display doesn't show anything, something is off. Check your connections and the code.

  • To test all buttons, enter screen mode buttontest. To get back, use screen mode menu.

  • To test the LED(s), you can run led <r> <g> <b>. For example, led 255 0 0 should turn the LED red.

If you still have problems with the display, try running an example to test if it's a software or a hardware problem. This is the display library used in the Deauther: esp8266-oled-ssd1306
You can find examples there. Try to get those running.