# syphr0/wifi32 architecture

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

- Interactive diagram: https://gitdiagram.com/syphr0/wifi32
- Repository: https://github.com/syphr0/wifi32

## Overview

WiFi32 is an ESP32-based Wi-Fi security and monitoring tool. Its intended interaction is through a TFT display and buttons, with firmware features for scanning, detection, packet monitoring, and beacon/deauthentication operations. HCScreen also implements file and text viewing from SD storage. The README documents the hardware and monitoring purpose; sampled source confirms the screen and SD behavior, but not how the main sketch dispatches feature modules, so those connections are left unspecified.

Main entry points: [`HCScreen.cpp`](https://github.com/syphr0/wifi32/blob/main/HCScreen.cpp) (Screen UI), [`required-libs/SD/src/SD.cpp`](https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/SD.cpp) (SD wrapper), [`required-libs/SD/src/utility/SdFile.cpp`](https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/utility/SdFile.cpp) (FAT file layer), [`icons.h`](https://github.com/syphr0/wifi32/blob/main/icons.h) (UI icons)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Device interface"]
  node_screen["Screen UI<br/>[HCScreen.cpp]"]
  node_icons["UI icons<br/>[icons.h]"]
end

subgraph group_wifi["Wi-Fi features"]
  node_scanner["Wi-Fi scanner<br/>[wifiscanner.cpp]"]
  node_detector["Wi-Fi detector<br/>[detector.cpp]"]
  node_monitor["Packet monitor<br/>[packetmonitor.cpp]"]
  node_beacon["Beacon spam<br/>[beaconspam.cpp]"]
  node_deauth["Deauthentication<br/>[deauth.cpp]"]
end

subgraph group_storage["SD access"]
  node_sdwrapper["SD wrapper<br/>[SD.cpp]"]
  node_sdfat["FAT file layer<br/>[SdFile.cpp]"]
end

node_operator(("Operator"))
node_firmware["Firmware entry<br/>[WIFI32.ino]"]
node_sdcard[("SD card")]

node_operator -->|"uses controls"| node_screen
node_screen -->|"renders assets"| node_icons
node_screen -->|"opens files"| node_sdwrapper
node_sdwrapper -->|"uses FAT files"| node_sdfat
node_sdfat -->|"reads and writes"| node_sdcard

click node_firmware "https://github.com/syphr0/wifi32/blob/main/WIFI32.ino"
click node_screen "https://github.com/syphr0/wifi32/blob/main/HCScreen.cpp"
click node_icons "https://github.com/syphr0/wifi32/blob/main/icons.h"
click node_scanner "https://github.com/syphr0/wifi32/blob/main/wifiscanner.cpp"
click node_detector "https://github.com/syphr0/wifi32/blob/main/detector.cpp"
click node_monitor "https://github.com/syphr0/wifi32/blob/main/packetmonitor.cpp"
click node_beacon "https://github.com/syphr0/wifi32/blob/main/beaconspam.cpp"
click node_deauth "https://github.com/syphr0/wifi32/blob/main/deauth.cpp"
click node_sdwrapper "https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/SD.cpp"
click node_sdfat "https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/utility/SdFile.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_screen,node_icons toneBlue
class node_scanner,node_detector,node_monitor,node_beacon,node_deauth,node_sdcard toneAmber
class node_sdwrapper,node_sdfat toneMint
class node_operator toneIndigo
class node_firmware toneTeal
```

## Components

### Device interface

- [Screen UI](https://github.com/syphr0/wifi32/blob/main/HCScreen.cpp): `HCScreen.cpp`
- [UI icons](https://github.com/syphr0/wifi32/blob/main/icons.h): `icons.h`

### Wi-Fi features

- [Wi-Fi scanner](https://github.com/syphr0/wifi32/blob/main/wifiscanner.cpp): `wifiscanner.cpp`
- [Wi-Fi detector](https://github.com/syphr0/wifi32/blob/main/detector.cpp): `detector.cpp`
- [Packet monitor](https://github.com/syphr0/wifi32/blob/main/packetmonitor.cpp): `packetmonitor.cpp`
- [Beacon spam](https://github.com/syphr0/wifi32/blob/main/beaconspam.cpp): `beaconspam.cpp`
- [Deauthentication](https://github.com/syphr0/wifi32/blob/main/deauth.cpp): `deauth.cpp`

### SD access

- [SD wrapper](https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/SD.cpp): `required-libs/SD/src/SD.cpp`
- [FAT file layer](https://github.com/syphr0/wifi32/blob/main/required-libs/SD/src/utility/SdFile.cpp): `required-libs/SD/src/utility/SdFile.cpp`

### Other components

- **Operator**
- [Firmware entry](https://github.com/syphr0/wifi32/blob/main/WIFI32.ino): `WIFI32.ino`
- **SD card**

## Connections

- Operator → Screen UI: uses controls
- Screen UI → UI icons: renders assets
- Screen UI → SD wrapper: opens files
- SD wrapper → FAT file layer: uses FAT files
- FAT file layer → SD card: reads and writes
