ESP32 Marauder · Volume 2

ESP32 Marauder Firmware Volume 2 — Hardware Reference Platforms and the Host-Module Ecosystem

Koko's v6/v6.1 + Mini design walk, DSTIKE Watch, Flipper Devboard, and every owned/aspirational host module

Contents

SectionTopic
1About this volume
2The two tiers of Marauder hardware
3Koko’s reference family overview
· 3.1Marauder Mini
· 3.2Marauder v6 / v6.1
· 3.3Marauder Flipper Mini
· 3.4Decision framework — which to buy
4Marauder v6.1 — design walkthrough
· 4.1SoC: ESP32-S3-WROOM-1
· 4.2Display: 2.4″ TFT (ST7789 / ILI9341)
· 4.3Storage: microSD over SPI
· 4.4Battery + charge subsystem
· 4.5Antenna and RF front end
· 4.6USB and buttons
· 4.7What’s open-hardware and what isn’t
5Marauder Mini design deltas
6DSTIKE Watch — the alternative vendor platform
7Host-module ecosystem (third-party platforms)
· 7.1AWOK Dual Touch V3 (owned · daily driver)
· 7.2Flipper Zero WiFi Devboard (owned · secondary)
· 7.3M5Stack Cardputer ADV (aspirational)
· 7.4Ruckus Game Over (owned · runs a vendor fork, not mainline)
8Cross-platform feature matrix
9BOM and DIY — building a Marauder host from scratch
10What to look for when shopping ESP32 dev boards
11Resources

1. About this volume

Vol 2 documents the hardware Marauder runs on. Two tiers: (a) Koko’s own designs — the canonical Marauder hardware the firmware author develops against — and (b) the broader ecosystem of third-party host modules where Marauder actually runs in production. tjscientist’s lab today is entirely in tier (b): the AWOK Dual Touch V3 is the daily driver, the Flipper WiFi Devboard is the secondary, and no Koko hardware is on the bench. This volume covers tier (a) for the day a buying decision comes up, and tier (b) at a Marauder-firmware-relevant level (the platform-specific deep dives in ../AWOK Dual Touch V3/, ../M5Stack Cardputer ADV/, ../Ruckus Game Over/, and ../Flipper Zero/ carry the full platform coverage and are cross-referenced extensively below).

A note on schematic depth: Koko’s hardware is not open-hardware the way Dangerous Prototypes’ Bus Pirate 6 is. The PCB Gerbers, BOM, and full schematic for the Marauder Mini / v6 / v6.1 are not publicly published. This volume walks the design pattern (what blocks are present, why each is there, how they interconnect at a functional-block level) but cannot quote specific BoM values for, e.g., the LCD backlight resistor or the LiPo charge IC’s programming resistor. Where community teardowns or vendor product-page photos reveal specific parts, this volume cites them; everywhere else, the description is design-level, not part-level. This is the same discipline applied throughout the AWOK Dual Touch V3 deep dive, where the upstream vendor’s documentation is also thin.


2. The two tiers of Marauder hardware

TierSourceWhat runs on itStatus in tjscientist’s lab
Canonical (tier A)JustCallMeKoko · sold via Tindie / vendor channelsMarauder mainline tracked against this hardware firstNone owned (aspirational)
Host-module ecosystem (tier B)Third-party vendors (AWOK Dynamics, Ruckus, M5Stack, Flipper Devices)Marauder mainline as a guest — sometimes a vendor fork insteadAWOK Dual Touch V3 (daily) + Flipper WiFi Devboard (secondary); Game Over runs a vendor fork; Cardputer ADV aspirational

Practical implication: a Marauder feature shipped in mainline is guaranteed to work on tier A. On tier B, it works only if the host module’s PlatformIO environment is up-to-date with mainline — and in some cases (Game Over) the vendor fork ships a deliberately frozen subset. Vol 7 covers the fork landscape in depth; Vol 3 covers the per-board PlatformIO environments.


3. Koko’s reference family overview

JustCallMeKoko ships hardware via his Tindie store (tindie.com/stores/justcallmekoko/). The product line as of 2026-05-13:

ProductPriceForm factorBest for
Marauder Mini~$60-90Pocket-size handheld, 320×240 TFTFirst buy; pocketable; “Marauder canonical experience” with minimal commitment
Marauder v6~$90-120Full handheldOlder sibling to v6.1; still sold; less-current TFT and antenna design
Marauder v6.1~$100-150Full handheldThe vendor-recommended “best Marauder experience” buy; larger battery, brighter TFT, robust antenna mount
Marauder Flipper Mini~$70Pocket form factor sized to sit alongside a Flipper ZeroCosmetic match with the Flipper toolkit; functionally similar to the Mini

Prices fluctuate; check Tindie at purchase time. All four ship pre-flashed with the latest mainline tag and a microSD card pre-populated with the default Marauder directory tree.

3.1 Marauder Mini

The compact entry point. ESP32-S3-WROOM-1, 2.4″ TFT (320×240), microSD, single 18650 LiPo, three tactile buttons, USB-C, PCB-trace 2.4 GHz antenna with U.FL fallback header. Pocketable — roughly the dimensions of a deck of cards. The Mini is the right answer to “I want the canonical experience without committing to a $150 buy.”

Tradeoffs vs v6.1: smaller battery (single 18650 vs the v6.1’s larger pack), slightly smaller TFT, simpler antenna (no external SMA option), and three buttons vs the v6.1’s four or five (some menus require button-combo shortcuts that the Mini compresses into more menu nesting).

3.2 Marauder v6 / v6.1

The full handheld. Same SoC silicon as the Mini, larger everything-else: bigger TFT (commonly 2.8″ to 3.5″ at 320×240 depending on production batch), larger battery, dedicated antenna mount with U.FL pigtail to a removable SMA-mounted antenna. The v6.1 is the current rev; v6 is the prior rev with minor pin-mapping differences (the marauder_v6 and marauder_v6_1 PlatformIO environments are not interchangeable — flashing v6 firmware to a v6.1 board produces a non-functional display).

The v6.1 is the vendor-recommended platform: it’s the one Koko targets first when adding features, the one shipped pre-flashed with the most-current mainline, and the one with the best antenna behavior under sustained TX-spam.

3.3 Marauder Flipper Mini

A Mini variant in a form factor styled to fit alongside a Flipper Zero — same width and depth, similar profile so they share a pouch. Functionally near-identical to the standard Mini; the cosmetic match is the differentiator. The Flipper Mini is the canonical answer to “I want a standalone Marauder but also carry a Flipper everywhere.”

3.4 Decision framework — which to buy

Decision:           "What do I want from a Marauder buy?"

        ┌───────────────────┼───────────────────┐
        │                   │                   │
   Pocketable             Best                Cosmetic
   first; budget        experience           match to
   < $100               first; budget        existing
   no concern           > $100               Flipper
        ↓                   ↓                   ↓
   Marauder Mini       Marauder v6.1     Marauder Flipper
                                              Mini

   Skip if you don't               Skip the v6 (older
   already own a Flipper           rev; v6.1 supersedes)
   Devboard or other
   Marauder host

If tier B already covers the use case (the AWOK V3 is meeting daily needs), the Koko buy is purely about wanting the reference platform — useful when contributing PRs to Marauder mainline, or when debugging a firmware issue that’s suspected to be hardware-specific (and tier A is the known-good baseline).


4. Marauder v6.1 — design walkthrough

This section walks the v6.1 design at functional-block level. Specific component values are cited only where vendor docs or community teardowns are explicit.

4.1 SoC: ESP32-S3-WROOM-1

The v6.1 uses ESP32-S3-WROOM-1 (Espressif part number varies by flash/PSRAM config — most v6.1 batches ship the N16R8 variant: 16 MB flash, 8 MB PSRAM).

Key SoC parameters for Marauder workloads:

ParameterValueWhy Marauder cares
CPUXtensa LX7 dual-core @ 240 MHzMarauder is mostly single-core; the second core sits idle most of the time.
RAM512 KB SRAM + 8 MB PSRAM (N16R8)PSRAM holds the AP-scan results buffer; without it, mainline caps scans at smaller result counts.
Flash16 MBMarauder mainline binary is ~1.5-2 MB; remaining flash is unused (no OTA partition by default).
Wi-Fi2.4 GHz only, 802.11 b/g/nThe 5 GHz gap that drives the AWOK ESP32 C5 / Wired Hatters Banshee aspirational entries.
BluetoothBT 5.0 BLE onlyNo BT classic on S3. This is the difference vs classic-ESP32 (WROOM-32) — see § 4.1 note below.
USBNative USB-OTG (no UART bridge)The v6.1 uses native USB; no CP210x or CH340 needed. Bootloader-mode entry is via the standard ESP32-S3 USB-DFU.
RF outputConfigurable, typical +20 dBm (100 mW)TX-spam attacks pull continuous +20 dBm — watch thermal (Vol 11 § 5) and brownout (Vol 11 § 4).

No BT classic on S3 is the only consequential silicon-tier delta for Marauder. The BT-classic discovery scan (Vol 6 § 5) requires classic ESP32 silicon. The v6.1 is BLE-only; for BT-classic work the Marauder Dev Board Pro (classic ESP32-WROOM-32) or another classic-ESP32 host is needed.

4.2 Display: 2.4″ TFT (ST7789 / ILI9341)

Most v6.1 batches use the ST7789 controller (240×320 panel addressed as 320×240 in landscape) driven over SPI. Some early production batches used ILI9341; the firmware abstracts both via TFT_eSPI’s User_Setup block (a per-board build flag picks the right driver). Backlight is GPIO-controlled (PWM-able for dimming).

Display pin map (typical v6.1; verify against the specific board batch):

Display pinESP32-S3 GPIONotes
MOSIGPIO 11SPI bus shared with microSD
SCKGPIO 12Shared
CSGPIO 10Display-specific
DCGPIO 9Data/command select
RSTGPIO 8Optional; can tie to EN
BLGPIO 13Backlight, PWM-capable

(These are typical assignments; per-batch deltas show up in the marauder_v6_1 PlatformIO env’s User_Setup_*.h. Always cross-check the env’s actual file in mainline when debugging display issues.)

4.3 Storage: microSD over SPI

SPI-mode microSD (not the 1-bit or 4-bit SDIO modes — SDIO requires more GPIOs than the v6.1 routes). Mounted at boot to /sd (firmware-internal label); user-visible at the root of the SD as /marauder/.

SD card requirements:

  • FAT32 mandatory (Vol 8 § 3)
  • Card size 4-256 GB typical; 32 GB is the sweet spot (full FAT32-spec compliance, $5-8 retail, plenty of capacity for handshake/probe-request captures across weeks)
  • Class 10 / U1 minimum; faster cards don’t help (SPI mode is bandwidth-limited)
  • Pre-formatting on host before insertion (the firmware doesn’t have a format-on-insert path)

4.4 Battery + charge subsystem

Single-cell LiPo, typical capacity 1500-2500 mAh depending on production batch. Charge IC is in the TP4056 family (cheap, 1A charge, USB-input). Discharge is direct from the LiPo through a buck/boost to 3.3 V for the SoC and 5 V for the backlight on some batches.

Brownout posture: under sustained TX-spam attacks (deauth, beacon-spam, BLE-spam) the SoC pulls high transient current. A weak / aged battery, or a microSD doing simultaneous writes, can dip the supply rail below the ESP32-S3’s brownout threshold (~2.7 V). Symptoms: TX attack appears to “stop working” — actually the SoC has reset. Vol 11 § 4 has the full power-profile discussion.

4.5 Antenna and RF front end

The v6.1 routes 2.4 GHz from the ESP32-S3-WROOM-1’s on-module PCB-trace antenna to either the trace antenna (default) or a U.FL header that pigtails out to an SMA mount on the case. SMA-mounted external antennas (a 5 dBi rubber-duck whip is the typical bundled accessory) improve range to 100-150 m line-of-sight at +20 dBm TX power. The Mini’s PCB-trace-only design tops out around 30-50 m.

There is no external LNA, RF filter, or upconverter — the v6.1’s RF performance is what the ESP32-S3-WROOM-1 module’s reference design gives you, no more.

4.6 USB and buttons

USB-C 2.0, wired to the ESP32-S3’s native USB peripheral (no UART bridge chip on board). Bootloader entry: hold BOOT (one of the front buttons) during USB plug-in or trigger the firmware’s built-in “reboot to bootloader” menu option or use the idf.py / pio host-side --port /dev/ttyACM0 -t upload invocation that resets via DTR/RTS.

Buttons on the v6.1: 4-5 tactile switches on the front (Up / Down / Left / Right / Select pattern, varies by batch). The Mini compresses to 3 buttons; the v6 / v6.1 give the menu a more natural directional UI.

4.7 What’s open-hardware and what isn’t

Open: the firmware (github.com/justcallmekoko/ESP32Marauder, GPLv3). The data/ directory (Evil Portal HTML templates, web-flasher pages). The Wiki (CC-BY-SA).

Not open: the PCB designs for the Mini / v6 / v6.1. No Gerbers, no schematic PDFs, no full BoM published. Photos of the assembled boards (Tindie product pages + occasional community teardowns) are the only public source for component identification.

Practical implication: if a hardware-specific bug needs debugging beyond what the firmware’s behavior reveals, the path is “ask Koko on Discord” — there’s no schematic to read.


5. Marauder Mini design deltas

The Mini is the v6.1 design simplified. The deltas:

Subsystemv6.1Mini
SoCESP32-S3-WROOM-1 (N16R8 typical)ESP32-S3-WROOM-1 (N8R2 or N16R8 — varies by batch)
Display2.8″-3.5″ TFT 320×240, ST77892.4″ TFT 320×240, ST7789
Battery1500-2500 mAh single 18650 LiPo500-1000 mAh smaller LiPo
AntennaPCB-trace + U.FL → SMA optionPCB-trace only (no U.FL header)
Buttons4-53
USBUSB-C 2.0USB-C 2.0 (identical)
MicrosdYesYes
CaseHeavier 3D-printed or molded ABSCompact 3D-printed
PlatformIO envmarauder_v6_1marauder_mini

The firmware behavior is identical between Mini and v6.1 — same menus, same attacks, same SD output. The differences are mechanical (battery life, screen real estate, antenna range) and ergonomic (button layout).


6. DSTIKE Watch — the alternative vendor platform

DSTIKE (dstike.com) is a long-standing community vendor that produces ESP32-based pentest hardware in formats Koko doesn’t ship. The most notable for Marauder context is the DSTIKE Watch — a wrist-form-factor handheld with classic ESP32 (ESP32-WROOM-32, not S3), a 0.96″ OLED, two tactile buttons, and a 600 mAh LiPo.

Marauder runs on the DSTIKE Watch via the dstike_watch PlatformIO environment with display patches (the OLED uses Adafruit_GFX paths rather than TFT_eSPI). The user experience is fundamentally different from the Mini/v6.1: tiny screen, two buttons that require chord-style nav, novel form factor.

Tradeoffs:

  • Pro: wrist-worn. Genuinely covert in a way no other Marauder host is. Conference-floor recon without a handheld in evidence.
  • Pro: classic-ESP32 means BT-classic support (unlike S3-based hardware). Useful for the rare BT-classic enumeration use cases (Vol 6 § 5).
  • Con: 0.96″ OLED is too small for serious menu navigation — you’ll spend more time scrolling than scanning.
  • Con: 600 mAh battery dies fast under sustained TX-spam (think 30-60 min, not the v6.1’s 4-6 h).
  • Con: classic ESP32 has less RAM than ESP32-S3; some scan modes are capped on the Watch where they aren’t on the Mini.

The Watch is a niche recommendation — useful when wrist-form-factor specifically matters. Otherwise the Mini does everything the Watch does, better.

DSTIKE also ships DSTIKE D-Duino-V2, DSTIKE Deauther Watch, and other ESP32 hardware that runs Marauder or Marauder-adjacent firmware. The Deauther Watch is not Marauder — it’s the older Spacehuhn Deauther firmware, pre-Marauder. Don’t conflate.


7. Host-module ecosystem (third-party platforms)

This is tier B — the platforms tjscientist actually owns or might buy that aren’t Koko-branded. Marauder runs on each; the experience varies.

7.1 AWOK Dual Touch V3 (owned · daily driver)

Brief here; full coverage in ../../../AWOK Dual Touch V3/03-outputs/AWOK_Dual_Touch_V3_Complete.html — that deep dive walks the dual-ESP32 architecture, the resistive touchscreen UI, the GPS module, the microSD slot at top-center between the dual USB-C ports, the Dual Board Battery Backpack standalone-power option, and the section-8 power-input safety advisory.

Marauder-specific facts for the firmware reader:

  • Dual ESP32-WROOM (classic ESP32, not S3). Each of the two MCUs can run independent firmware. The default factory configuration is Marauder on one ESP32 and a settings/UI shim on the other. The user can flash Marauder, Ghost ESP, or Bruce to either ESP32 independently — they communicate over a shared serial bus and a per-board GPIO header.
  • Display: ILI9341 + XPT2046 resistive touch over SPI. The touch driver is integrated into Marauder via the HAS_TOUCH build flag — the AWOK V3 ships with a Marauder build that compiles touch as the input device.
  • microSD: slot at top-center between the two USB-C ports; 32 GB FAT32 typical. Marauder writes to it from v1.8.4+.
  • GPS: on-board u-blox-compatible module. Marauder uses GPS data when the HAS_GPS flag is set — adds geolocation to capture filenames.
  • Mounting: on the Flipper Zero GPIO header (passes serial control through the Flipper’s UART) or standalone over the Dual Board Battery Backpack ($37 BYO-LiPo accessory, see AWOK deep dive § 8).
  • Device Info banner: HW V6.1, ESP-IDF V5.5.1-710, Marauder release v1.12.x (captured 2026-05-12 on AWOKflip’s AWOK V3).

The AWOK V3 is the most-feature-complete Marauder host in tjscientist’s lineup. Touch UI, GPS, dual radios (two independent ESP32s), Flipper integration. The reason it’s the daily driver.

7.2 Flipper Zero WiFi Devboard (owned · secondary)

ESP32-S2-WROVER on a Flipper-shaped daughter board. Sits on the Flipper Zero’s GPIO header; serial control routes through the Flipper. The Marauder build is marauder_devboard (note: ESP32-S2, not S3 or classic — a third silicon-tier).

ESP32-S2 deltas vs S3 / classic:

FeatureESP32-S2 (Devboard)ESP32-S3 (v6.1)ESP32-classic (DSTIKE Watch)
Wi-Fi2.4 GHz only2.4 GHz only2.4 GHz only
BluetoothNone (no BT radio)BLE 5.0 onlyBT 4.2 (BLE + classic)
USBNative USB-OTGNative USB-OTGUART bridge
RAM320 KB512 KB + PSRAM520 KB
BT scan in MarauderDisabled — no BT radioBLE onlyBLE + BT classic

The Devboard has no Bluetooth radio. Every Marauder Bluetooth menu is no-op on this hardware. For Wi-Fi-only workloads, fine. For BLE-spam or BLE-scan work, use a different host.

The Devboard’s primary value is the Flipper integration — UART pass-through means Marauder telemetry shows on the Flipper’s screen, and the Flipper’s keyboard can drive Marauder menus. For tjscientist’s bench: kept on hand for Flipper-side BadUSB workflows that benefit from a Wi-Fi adjunct, but not the first reach for Wi-Fi-specific work (the AWOK V3 is).

7.3 M5Stack Cardputer ADV (aspirational)

Brief here; full coverage in ../../../M5Stack Cardputer ADV/03-outputs/cardputer_adv_deep_dive.html.

Cardputer ADV facts for Marauder:

  • ESP32-S3 + 1.14″ TFT (240×135) + full QWERTY keyboard + IR + microSD + speaker + battery.
  • Bruce is the more common firmware on the Cardputer ADV — Bruce’s multi-modal UI fits the device’s “Swiss-army knife” positioning better than pure Marauder.
  • Pure Marauder is supported via PlatformIO env (cardputer_marauder typical); the keyboard is mapped onto the menu nav (arrow keys + Enter). Tiny TFT compromises the menu UX.
  • The Cardputer ADV deep dive § 9 covers the Marauder vs Bruce decision on this hardware specifically.

7.4 Ruckus Game Over (owned · runs a vendor fork, not mainline)

Brief here; full coverage in ../../../Ruckus Game Over/03-outputs/game_over_complete.html.

The Game Over is not running Marauder mainline — it runs a vendor fork derived from Marauder that adds CC1101 sub-GHz integration, NRF24 daughter-card driving, and a closed-source UI layer. Operationally:

  • The vendor fork is Marauder-like — same menu pattern, similar attack catalog — but not kept in sync with mainline. Features that landed in mainline post-fork don’t backport.
  • For Wi-Fi/BLE work on the Game Over, the experience is good — vendor’s CC1101 + NRF24 integration adds capability mainline doesn’t have.
  • For mainline-Marauder fluency, the Game Over is the wrong host. Reach for the AWOK V3 instead.

The [Game Over deep dive Vol 5](../../Ruckus%20Game%20Over/03-outputs/game_over_complete.html#vol05) covers the vendor fork in depth and the migration path if the user wants to flash mainline Marauder over the vendor fork (possible but loses CC1101/NRF24 support).


8. Cross-platform feature matrix

The big table — every host module Marauder runs on, with the features that matter for picking a target:

PlatformSiliconWi-Fi 2.4BLEBT classicDisplayInputmicroSDGPSSub-GHzNRF24PlatformIO envMarauder version
Marauder MiniS3YY (5.0)N2.4″ TFT 320×2403 buttonsYNNNmarauder_miniMainline (latest)
Marauder v6.1S3YY (5.0)N2.8-3.5″ TFT 320×2404-5 buttonsYNNNmarauder_v6_1Mainline (latest)
Marauder Flipper MiniS3YY (5.0)N2.4″ TFT 320×2403 buttonsYNNNmarauder_flipper_miniMainline (latest)
DSTIKE WatchClassicYY (4.2)Y0.96″ OLED 128×642 buttonsNNNNdstike_watchMainline (display-patched)
AWOK Dual Touch V3Classic × 2YY (4.2)Y2.4″ ILI9341 + touchTouchscreenY (top-center)YNNmarauder_awok_v3 (variant)Mainline v1.12.x
Flipper WiFi DevboardS2YNN(passthrough to Flipper)(Flipper keyboard)NNNNmarauder_devboardMainline (latest)
Cardputer ADVS3YY (5.0)N1.14″ TFT 240×135Full QWERTYYNNNcardputer_marauderBruce typical; mainline available
Ruckus Game OverS3YY (5.0)N1.5″ OLED + joystickJoystick + buttonsYNY (CC1101)YClosed-source vendor forkVendor fork (not mainline)
Marauder Dev Board ProClassicYY (4.2)YNone / externalNone / serialNNNNmarauder_dev_board_proMainline (headless)

(Marauder Dev Board Pro is a headless dev board — bare ESP32-WROOM-32 with the build flags configured for Marauder firmware but no display or buttons; useful as a serial-only “Marauder over USB-CDC” for scripting work. Used by AWOK V3 internally as the underlying silicon.)

Pattern observations:

  • Classic-ESP32 silicon is the only path to BT-classic support. S3 hardware is BLE-only.
  • microSD is universal except on the Watch and the Devboard. Without microSD, capture-to-file is unavailable — only on-screen scan results.
  • GPS is unique to the AWOK V3 — no other host in this matrix has it.
  • Sub-GHz and NRF24 are unique to the Game Over (via its vendor fork; mainline Marauder doesn’t drive either radio).
  • The Devboard’s lack of BLE is the standout footgun — every other host has at least BLE.

9. BOM and DIY — building a Marauder host from scratch

For the builder: assembling a Marauder-compatible host from off-the-shelf parts costs ~$25-40 in components and gives you a customizable target the vendor hardware doesn’t.

Minimum viable BOM (single-board solution, ~$30):

ItemSpecifierApprox. costSource
ESP32-S3 dev boardLilyGO T-Display-S3, M5Stack ATOM-S3, generic ESP32-S3-DevKitC$12-18AliExpress / Amazon / vendor
microSD breakout (if dev board doesn’t include)Catalex SD module or M5Stack SD-card kit$3-5Same
LiPo battery + protection circuit1500 mAh 18650 cell + TP4056 module$5-8Same
Buttons (if dev board doesn’t include)4× tactile pushbuttons + breadboard$1-2Same
Antenna upgrade (optional)U.FL → SMA pigtail + 5 dBi 2.4 GHz whip$5-8Same
Enclosure (3D print)STL from communityFree if you have a printer; $5-10 to mail-orderVarious
Total~$25-40

LilyGO T-Display-S3 is the most common DIY target — it bundles an ESP32-S3-WROOM-1, a 1.9″ TFT (170×320), two buttons, USB-C, and a battery connector on a single 16-pin board. Cost $15-20 retail. Marauder has a PlatformIO env (marauder_t_display_s3) tailored for it.

M5Stack ATOM-S3 is the smallest viable host — a cube-format ESP32-S3 with a 128×128 LCD and one button. Compact but the small screen and single button make menu nav cramped.

Generic ESP32-S3-DevKitC + breadboard + jumper wires + a separate microSD breakout is the cheapest but least convenient — requires soldering or breadboarding, no enclosure.

DIY tradeoffs vs Koko hardware:

  • DIY pros: $20-40 cost. Customize button count, screen size, antenna, battery. Flash mainline immediately (no need to wait for vendor firmware updates).
  • DIY cons: No pre-flashed firmware (PlatformIO setup required — see Vol 10). No documented per-board PlatformIO env unless the board is in mainline’s platformio.ini. Display drivers may need TFT_eSPI User_Setup.h patching.

For tjscientist’s bench, the DIY route is the right answer when a specific form factor or capability is needed that no vendor ships (e.g., a permanent fixture mounted on a deployable sensor, or a Marauder with an external antenna substantially larger than vendor offerings allow).


10. What to look for when shopping ESP32 dev boards

When evaluating an ESP32 dev board for Marauder compatibility, check:

  1. Silicon tier — ESP32-S3 is the current best. Classic ESP32-WROOM-32 is legacy but supported (and adds BT-classic). ESP32-S2 is the Devboard tier — Wi-Fi only, no Bluetooth at all. ESP32-C3 / C6 / C5 are even newer; mainline support is uneven (see ../AWOK ESP32 C5/ for the C5 outlook).
  2. PSRAM presence — S3 boards with PSRAM (the N8R8 or N16R8 variants) handle larger scan-result buffers. Boards with only on-chip SRAM (N4R0 / N8R0) work but cap some scans.
  3. Display — ST7789 and ILI9341 are the most-supported TFT controllers. Avoid boards with esoteric display controllers unless the PlatformIO env is documented.
  4. USB — native USB-OTG is preferred (S3, S2, C-series). UART-bridge USB (CP210x, CH340) on classic-ESP32 boards is fine but adds a chip and slows bootloader entry.
  5. microSD — on-board microSD slot is preferred. External breakouts work but require pin-mapping in the PlatformIO env.
  6. Antenna option — PCB-trace antenna is universal; U.FL or IPEX for external is preferred for serious RF work.
  7. Battery — on-board LiPo charging is preferred. USB-only operation is fine for bench work but limits mobility.
  8. Existing PlatformIO env in mainline — if platformio.ini already has an env for the specific board, the build is one command. If not, you’re authoring a User_Setup.h and a per-board env yourself.

The LilyGO T-Display-S3 ticks all these boxes; it’s the recommended DIY target unless a different form factor is required.


11. Resources

Vendor channels

Upstream firmware + build matrix

Cross-references to platform deep dives

Component datasheets (when needed)


This is Volume 2 of a twelve-volume series. Next: Vol 3 walks the firmware architecture — the repo layout, the menu dispatcher in MenuFunctions.cpp, the per-board build matrix in platformio.ini, the scan/attack module pattern, the display abstraction, and SD-backed save/load.