# spacehuhntech/esp8266_deauther architecture

> Architecture diagram of the GitHub repository spacehuhntech/esp8266_deauther, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/spacehuhntech/esp8266_deauther
- Repository: https://github.com/spacehuhntech/esp8266_deauther

## Overview

ESP8266 Deauther is firmware for testing 2.4 GHz Wi-Fi networks, with a browser interface and an on-device display. The main workflow is to scan nearby access points and stations, select targets, and invoke an attack; the README also describes creating many networks to confuse Wi-Fi scanners. The tree identifies separate scan, target-list, attack, and SSID modules, but their implementations were not sampled, so the graph omits uncertain internal call wiring. The web command flow is visible in the scan UI excerpt; other browser-to-firmware links are shown only where supported by that flow.

Main entry points: [`esp8266_deauther/CLI.cpp`](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/CLI.cpp) (Command CLI), [`esp8266_deauther/Scan.cpp`](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Scan.cpp) (Network scan), [`esp8266_deauther/DisplayUI.cpp`](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/DisplayUI.cpp) (Display UI), [`esp8266_deauther/wifi.cpp`](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/wifi.cpp) (Wi-Fi service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User interfaces"]
  node_webui["Web interface<br/>[scan.js]"]
  node_display["Display UI<br/>[DisplayUI.cpp]"]
  node_cli["Command CLI<br/>[CLI.cpp]"]
  node_webassets["Web assets<br/>[webfiles.h]"]
end

subgraph group_radio["Wi-Fi operations"]
  node_wifi["Wi-Fi service<br/>[wifi.cpp]"]
  node_scan["Network scan<br/>[Scan.cpp]"]
  node_attack["Attack control<br/>[Attack.cpp]"]
end

subgraph group_targets["Target data"]
  node_aps["Access points<br/>[Accesspoints.cpp]"]
  node_stations["Stations<br/>[Stations.cpp]"]
  node_names["Device names<br/>[Names.cpp]"]
  node_ssids["SSID lists<br/>[SSIDs.cpp]"]
end

subgraph group_device["Device support"]
  node_settings["Settings<br/>[settings.cpp]"]
  node_eeprom[("Persistent settings<br/>[EEPROMHelper.h]")]
  node_led["LED output<br/>[led.cpp]"]
end

node_user(("Operator"))
node_radioenv(("Wi-Fi devices"))

node_user -->|"uses"| node_webui
node_user -->|"uses"| node_display
node_webui -->|"requests commands"| node_wifi
node_wifi -->|"dispatches"| node_cli
node_wifi -->|"serves assets"| node_webassets
node_scan -->|"records access points"| node_aps
node_scan -->|"records stations"| node_stations
node_scan -->|"scans"| node_radioenv
node_attack -->|"transmits tests"| node_radioenv
node_cli -->|"commands"| node_scan
node_cli -->|"commands"| node_attack
node_cli -->|"manages targets"| node_aps
node_cli -->|"manages targets"| node_stations
node_cli -->|"manages names"| node_names
node_cli -->|"manages SSIDs"| node_ssids
node_settings -->|"persists"| node_eeprom
node_display -->|"displays scan"| node_scan
node_display -->|"controls"| node_attack
node_display -->|"configures"| node_settings
node_wifi -->|"reads configuration"| node_settings
node_settings -.->|"configures"| node_led

click node_webui "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/web_interface/js/scan.js"
click node_display "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/DisplayUI.cpp"
click node_cli "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/CLI.cpp"
click node_wifi "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/wifi.cpp"
click node_scan "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Scan.cpp"
click node_attack "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Attack.cpp"
click node_aps "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Accesspoints.cpp"
click node_stations "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Stations.cpp"
click node_names "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Names.cpp"
click node_ssids "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/SSIDs.cpp"
click node_settings "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/settings.cpp"
click node_eeprom "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/EEPROMHelper.h"
click node_webassets "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/webfiles.h"
click node_led "https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/led.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webui,node_display,node_cli,node_webassets toneBlue
class node_wifi,node_scan,node_attack toneAmber
class node_aps,node_stations,node_names,node_ssids toneMint
class node_settings,node_eeprom,node_led toneRose
class node_user,node_radioenv toneIndigo
```

## Components

### User interfaces

- [Web interface](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/web_interface/js/scan.js): `web_interface/js/scan.js`
- [Display UI](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/DisplayUI.cpp): `esp8266_deauther/DisplayUI.cpp`
- [Command CLI](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/CLI.cpp): `esp8266_deauther/CLI.cpp`
- [Web assets](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/webfiles.h): `esp8266_deauther/webfiles.h`

### Wi-Fi operations

- [Wi-Fi service](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/wifi.cpp): `esp8266_deauther/wifi.cpp`
- [Network scan](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Scan.cpp): `esp8266_deauther/Scan.cpp`
- [Attack control](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Attack.cpp): `esp8266_deauther/Attack.cpp`

### Target data

- [Access points](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Accesspoints.cpp): `esp8266_deauther/Accesspoints.cpp`
- [Stations](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Stations.cpp): `esp8266_deauther/Stations.cpp`
- [Device names](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/Names.cpp): `esp8266_deauther/Names.cpp`
- [SSID lists](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/SSIDs.cpp): `esp8266_deauther/SSIDs.cpp`

### Device support

- [Settings](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/settings.cpp): `esp8266_deauther/settings.cpp`
- [Persistent settings](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/EEPROMHelper.h): `esp8266_deauther/EEPROMHelper.h`
- [LED output](https://github.com/spacehuhntech/esp8266_deauther/blob/v2/esp8266_deauther/led.cpp): `esp8266_deauther/led.cpp`

### Other components

- **Operator**
- **Wi-Fi devices**

## Connections

- Operator → Web interface: uses
- Operator → Display UI: uses
- Web interface → Wi-Fi service: requests commands
- Wi-Fi service → Command CLI: dispatches
- Wi-Fi service → Web assets: serves assets
- Network scan → Access points: records access points
- Network scan → Stations: records stations
- Network scan → Wi-Fi devices: scans
- Attack control → Wi-Fi devices: transmits tests
- Command CLI → Network scan: commands
- Command CLI → Attack control: commands
- Command CLI → Access points: manages targets
- Command CLI → Stations: manages targets
- Command CLI → Device names: manages names
- Command CLI → SSID lists: manages SSIDs
- Settings → Persistent settings: persists
- Display UI → Network scan: displays scan
- Display UI → Attack control: controls
- Display UI → Settings: configures
- Wi-Fi service → Settings: reads configuration
- Settings → LED output: configures
