# atomnft/marauder-t-display-ttgo architecture

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

- Interactive diagram: https://gitdiagram.com/atomnft/marauder-t-display-ttgo
- Repository: https://github.com/atomnft/marauder-t-display-ttgo

## Overview

This is a TTGO T-Display-focused ESP32 Marauder firmware fork for Wi-Fi/Bluetooth security tools, with device-specific display and battery features. The user-facing workflow is documented as operating the tools on the device; the tree shows both menu and command interfaces, but sampled evidence does not establish their runtime dispatch paths. Wi-Fi scanning/attacks, captive portal, GPS, file capture, and device services are represented as distinct capabilities. The available excerpts and reference index limit claims about how these subsystems invoke one another.

Main entry points: [`esp32_marauder/MenuFunctions.cpp`](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/MenuFunctions.cpp) (On-device Menus), [`esp32_marauder/WiFiScan.cpp`](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/WiFiScan.cpp) (Wi-Fi and BT Tools), [`esp32_marauder/CommandLine.cpp`](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/CommandLine.cpp) (Command Interface), [`esp32_marauder/Display.cpp`](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Display.cpp) (Display)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User Interfaces"]
  node_menu["On-device Menus<br/>[MenuFunctions.cpp]"]
  node_cli["Command Interface<br/>[CommandLine.cpp]"]
  node_display["Display<br/>[Display.cpp]"]
  node_assets["UI Assets<br/>[Assets.h]"]
end

subgraph group_wireless["Wireless Tools"]
  node_wifi["Wi-Fi and BT Tools<br/>[WiFiScan.cpp]"]
  node_portal["Evil Portal<br/>[EvilPortal.cpp]"]
  node_gps["GPS Interface<br/>[GpsInterface.cpp]"]
end

subgraph group_data["Data and Settings"]
  node_sd["SD and Updates<br/>[SDInterface.cpp]"]
  node_buffer["Capture Buffer<br/>[Buffer.cpp]"]
  node_settings[("Settings<br/>[settings.cpp]")]
end

subgraph group_device["Device Services"]
  node_battery["Battery Interface"]
  node_power["AXP192 Power<br/>[AXP192.cpp]"]
  node_keyboard["Keyboard Input<br/>[Keyboard.cpp]"]
  node_touchkbd["Touch Keyboard<br/>[TouchKeyboard.cpp]"]
  node_led["LED Interface<br/>[LedInterface.cpp]"]
end

node_user(("Device User"))

node_user -.->|"uses"| node_menu
node_user -.->|"enters commands"| node_cli
node_menu -.->|"dispatches tools"| node_wifi
node_cli -.->|"dispatches commands"| node_wifi
node_display -->|"uses graphics"| node_assets
node_wifi -.->|"integrates portal"| node_portal
node_wifi -.->|"uses GPS"| node_gps
node_wifi -.->|"records captures"| node_buffer
node_buffer -.->|"writes captures"| node_sd
node_portal -.->|"loads portal files"| node_sd
node_menu -.->|"uses input"| node_keyboard
node_menu -.->|"uses touch input"| node_touchkbd
node_menu -.->|"shows battery"| node_battery
node_battery -->|"reads power status"| node_power
node_menu -.->|"configures settings"| node_settings
node_cli -.->|"configures settings"| node_settings
node_menu -.->|"renders interface"| node_display
node_cli -.->|"prints output"| node_display

click node_menu "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/MenuFunctions.cpp"
click node_cli "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/CommandLine.cpp"
click node_display "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Display.cpp"
click node_wifi "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/WiFiScan.cpp"
click node_portal "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/EvilPortal.cpp"
click node_gps "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/GpsInterface.cpp"
click node_sd "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/SDInterface.cpp"
click node_buffer "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Buffer.cpp"
click node_settings "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/settings.cpp"
click node_battery "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/BatteryInterface.cpp"
click node_power "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/AXP192.cpp"
click node_keyboard "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Keyboard.cpp"
click node_touchkbd "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/TouchKeyboard.cpp"
click node_led "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/LedInterface.cpp"
click node_assets "https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Assets.h"

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_menu,node_cli,node_display,node_assets,node_user toneBlue
class node_wifi,node_portal,node_gps toneAmber
class node_sd,node_buffer,node_settings toneMint
class node_battery,node_power,node_keyboard,node_touchkbd,node_led toneRose
```

## Components

### User Interfaces

- [On-device Menus](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/MenuFunctions.cpp): `esp32_marauder/MenuFunctions.cpp`
- [Command Interface](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/CommandLine.cpp): `esp32_marauder/CommandLine.cpp`
- [Display](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Display.cpp): `esp32_marauder/Display.cpp`
- [UI Assets](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Assets.h): `esp32_marauder/Assets.h`

### Wireless Tools

- [Wi-Fi and BT Tools](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/WiFiScan.cpp): `esp32_marauder/WiFiScan.cpp`
- [Evil Portal](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/EvilPortal.cpp): `esp32_marauder/EvilPortal.cpp`
- [GPS Interface](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/GpsInterface.cpp): `esp32_marauder/GpsInterface.cpp`

### Data and Settings

- [SD and Updates](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/SDInterface.cpp): `esp32_marauder/SDInterface.cpp`
- [Capture Buffer](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Buffer.cpp): `esp32_marauder/Buffer.cpp`
- [Settings](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/settings.cpp): `esp32_marauder/settings.cpp`

### Device Services

- [Battery Interface](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/BatteryInterface.cpp): `esp32_marauder/BatteryInterface.cpp`
- [AXP192 Power](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/AXP192.cpp): `esp32_marauder/AXP192.cpp`
- [Keyboard Input](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/Keyboard.cpp): `esp32_marauder/Keyboard.cpp`
- [Touch Keyboard](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/TouchKeyboard.cpp): `esp32_marauder/TouchKeyboard.cpp`
- [LED Interface](https://github.com/atomnft/marauder-t-display-ttgo/blob/main/esp32_marauder/LedInterface.cpp): `esp32_marauder/LedInterface.cpp`

### Other components

- **Device User**

## Connections

- Device User → On-device Menus: uses
- Device User → Command Interface: enters commands
- On-device Menus → Wi-Fi and BT Tools: dispatches tools
- Command Interface → Wi-Fi and BT Tools: dispatches commands
- Display → UI Assets: uses graphics
- Wi-Fi and BT Tools → Evil Portal: integrates portal
- Wi-Fi and BT Tools → GPS Interface: uses GPS
- Wi-Fi and BT Tools → Capture Buffer: records captures
- Capture Buffer → SD and Updates: writes captures
- Evil Portal → SD and Updates: loads portal files
- On-device Menus → Keyboard Input: uses input
- On-device Menus → Touch Keyboard: uses touch input
- On-device Menus → Battery Interface: shows battery
- Battery Interface → AXP192 Power: reads power status
- On-device Menus → Settings: configures settings
- Command Interface → Settings: configures settings
- On-device Menus → Display: renders interface
- Command Interface → Display: prints output
