M5Stack Cardputer ADV · Volume 12

M5Stack Cardputer ADV Volume 12 — Cheatsheet (the laminate-ready field card)

Hardware quick-facts, pinout, firmware decision tree, attack quick-refs, hashcat commands, regional LoRa rules, troubleshooting flow

Contents

SectionTopic
1About this volume
2Hardware quick-facts panel
3Pinout one-page reference
4Firmware decision tree
5Pentest attack quick-ref
6Meshtastic preset table
7Module ecosystem one-page reminder
8Flashing-method picker
9M5Launcher SD card layout reminder
10Hashcat 22000 command reference
11Regional LoRa rules
12EIRP recalc after antenna upgrade
13Common build / flash errors
14Troubleshooting flow
15Key references in one block

1. About this volume

Vol 12 is the laminate-ready field card — synthesis of every preceding volume’s most-referenced content into one-page-printable sections. Print, laminate, carry. In the field, lookups are by section number.

Pages are sized for typical 8.5×11 or A4 print at readable type size. Some sections are dense — print at 100% scale, not “fit to page”.


2. Hardware quick-facts panel

┌───────────────────────────────────────────────────────────────┐
│ M5Stack Cardputer ADV — K132-Adv                              │
├───────────────────────────────────────────────────────────────┤
│ MCU       ESP32-S3FN8 · LX7 dual @ 240 MHz · 8 MB flash       │
│           512 KB SRAM (no PSRAM) · Wi-Fi 4 2.4 GHz · BLE 5    │
│ Display   1.14" 240×135 IPS · ST7789V2 · SPI 40 MHz · 30 fps  │
│ Keyboard  56 keys · TCA8418RTWR scanner · 160 gf · I²C        │
│ Audio     ES8311 codec · NS4150B 1 W amp · MEMS mic · 3.5 mm  │
│ IMU       BMI270 6-axis (accel + gyro) · I²C                  │
│ IR        940 nm on GPIO44 · 3–5 m range                      │
│ Storage   microSD · ESP32 SD.h (FAT32 / exFAT)                │
│ Battery   1750 mAh LiPo · SY8089 buck · CHARGE NEEDS SW ON    │
│ Expansion 1× Grove HY2.0-4P (top edge)                        │
│           1× 14-pin EXT bus 2.54 mm (underside) ← Cap modules │
│           1× USB-C OTG (side)                                 │
│ Power     ~120 mA idle · ~155 mA BLE · 0.23 µA deep sleep     │
│ Size      84 × 54 × 19.6 mm · 81 g · LEGO-Technic mag base    │
└───────────────────────────────────────────────────────────────┘

Cap LoRa-1262 (M5Stack SKU U214):
┌───────────────────────────────────────────────────────────────┐
│ LoRa    SX1262 · 868–923 MHz · +22 dBm TX · −147 dBm RX       │
│         CSS + FSK/GFSK/MSK/GMSK/OOK · RP-SMA antenna          │
│ GNSS    AT6668 · 50-chan · GPS+GLONASS+Galileo+BeiDou         │
│         +QZSS+SBAS · CEP50 <1.5 m · TTFF 23s cold / 1s hot    │
│ Antenna RP-SMA female · 3 dBi rubber-duck included            │
│ Size    84 × 24 × 15.2 mm · 22.1 g · 14-pin EXT header        │
└───────────────────────────────────────────────────────────────┘

3. Pinout one-page reference

Critical GPIOs:

GPIOFunction
0BOOT button — hold during USB plug-in for download mode
1, 2Grove TX/RX (UART2 default) or secondary I²C SCL/SDA
3EXT RESET (SX1262)
4EXT INT (SX1262 DIO1)
5EXT CS (SX1262 NSS)
6EXT BUSY (SX1262)
8, 9Primary I²C SDA / SCL (codec + keyboard + IMU + EXT + Grove-when-I²C)
10Battery ADC
11Keyboard INT (TCA8418)
12microSD CS
13EXT UART RX (from AT6668 TX)
14SPI MOSI (shared display + microSD + EXT)
15EXT UART TX (to AT6668 RX)
18, 19USB D-/D+ (native)
33-38LCD bus + RGB LED
39SPI MISO
40SPI SCK + microSD CLK
41-43, 46I²S audio (codec)
44IR TX LED

Grove HY2.0-4P (top edge) — default PortC UART:

Pin 1  Black   GND
Pin 2  Red     +5V (USB or boost; ~500 mA budget)
Pin 3  White   G2 (UART RX or I²C SDA when re-tasked)
Pin 4  Yellow  G1 (UART TX or I²C SCL when re-tasked)

14-pin EXT bus (underside) — Cap mating:

Pin 1   3V3              (~200 mA budget)
Pin 2   5V_IN            (~500 mA budget, shared with Grove)
Pin 3   EXT RESET (G3)
Pin 4   EXT INT (G4)
Pin 5   EXT CS (G5)
Pin 6   EXT BUSY (G6)
Pin 7   I²C SDA (G8)     [shared primary bus]
Pin 8   I²C SCL (G9)
Pin 9   EXT UART TX (G15)  [to GNSS RX]
Pin 10  MISO (G39)
Pin 11  SCK (G40)
Pin 12  MOSI (G14)
Pin 13  EXT UART RX (G13)  [from GNSS TX]
Pin 14  GND

4. Firmware decision tree

What's the use case?

        ├─ Pentest → Bruce (most features, AGPLv3) OR
        │           NEMO (smaller, MIT, BadUSB Hunter) OR
        │           Marauder (best PCAP export) OR
        │           BadCard (BadUSB only, MIT) OR
        │           Evil-Portal-standalone (captive portal only)

        ├─ Off-grid mesh → Meshtastic (with Cap LoRa-1262)
        │                  CardputerLoRaChat (simple P2P)
        │                  LoRa-APRS (licensed hams)

        ├─ Embedded dev → Arduino IDE + M5Cardputer (quick sketches)
        │                 PlatformIO + M5Cardputer (serious projects)
        │                 MicroPython + mpremote (scripting)
        │                 UiFlow 2 (block coding)
        │                 ESP-IDF (low-level)

        ├─ Home automation → ESPHome (Home Assistant satellite)

        ├─ Retro gaming → cardputer-nofrendo (NES)
        │                Walnut-CGB (Game Boy / GBC)
        │                m5cardputer_doom (Doom)

        └─ Audio / niche → RHesus-RAdio (internet radio)
                            m5Cardputer_audiospectrum (FFT)
                            esp-now-talkie (walkie-talkie)
                            PyDOS (DOS-shell)

ALWAYS install M5Launcher in app0 FIRST. Esc-on-boot = recovery.
Partitions (default scheme): nvs / app0=M5Launcher (subtype test) /
app1=ota_0 (the one OTA slot) / vfs=FAT / spiffs / coredump.
Device's CFG > List of Partitions shows: OTA, FAT, SPIFFS.
CFG > Change Partition Scheme switches Default/Doom/UiFlow/GameStation.
Save SPIFFS + Save FAT vfs BEFORE any scheme change (it wipes them).

5. Pentest attack quick-ref

AttackFirmwareMenu pathSD outputTime-to-effect
Evil PortalBruceWiFi → Evil Portal → Start/bruce/portals/captures.csvCaptures arrive when users join + submit
EAPOL handshake captureMarauderWiFi → Sniffers → WiFi Pkt Capture/captures/wifi_NN.pcapImmediate (passive); deauth induces re-handshake
PMKID captureMarauderWiFi → Sniffers → WiFi Pkt Capture/captures/pmkid_NN.pcapOpportunistic — minutes-to-hours
DeauthBruce / MarauderWiFi → Attacks → Deauthnone (capture separately)Clients disconnect in 1-2 sec
Beacon spamBruceWiFi → Attacks → Beacon FloodnoneiOS UI denial within ~10-15 sec
Sour Apple BLEBruceBLE → BLE Spam → Sour ApplenoneiOS pairing prompts within seconds
Swiftpair BLEBruceBLE → BLE Spam → SwiftpairnoneWindows toast queue within seconds
Mifare Classic crackBruceRFID → Mifare → Default Key/rfid/dumps/uid_XXXX.dump~30 sec for default keys
CC1101 sub-GHz replayBruceSubGHz → Read RAW + Replay/subghz/raw_NN.subPer-button-press
IR TV-B-GoneBruce / NEMOIR → TV-B-GonenoneLoops through codes for ~30 sec
BadUSB DuckyScriptM5Launcher / BadCardFiles → BadUSB → Runnone~3 sec injection

6. Meshtastic preset table

PresetSF/BW/CRToA (50B)Realistic rangeUse case
VeryLongSlowSF12/125/4/8~3.5 s15-25 km LoSLong-range relays in remote terrain
LongSlowSF12/250/4/5~1.8 s10-20 km LoSLong-range moderate traffic
LongFast (default)SF11/250/4/5~510 ms5-10 km mixedGeneral-purpose mesh chat
MediumSlowSF10/250/4/5~290 ms2-5 km urbanDense mesh
MediumFastSF9/250/4/5~155 ms1-3 kmUrban high-density
ShortSlowSF8/250/4/5~95 ms500 m - 1.5 kmHigh-traffic mesh
ShortFastSF7/250/4/5~50 ms200-500 mVery high traffic
ShortTurboSF7/500/4/5~25 ms200 m heavy trafficMaximum capacity

Region preset is mandatory — Settings → Region → US (915 MHz) / EU868 / JP / CN / IN / RU.

Rule of thumb: +1 SF doubles range + ToA; +1 BW step halves both.


7. Module ecosystem one-page reminder

Cap modules (14-pin EXT, one at a time, daughter card):

  • Cap LoRa-1262 ($24-30) — SX1262 LoRa + AT6668 GNSS. The flagship.

Grove Units (HY2.0-4P top edge, one at a time without PaHub):

  • Unit RFID2 (NFC, $12)
  • CC1101 Sub-GHz ($10)
  • Unit C6L (ESP32-C6 + SX1262 standalone, $15)
  • Unit ENV IV (temp/humid/pressure, $10)
  • Unit GPS V2 (standalone GNSS, $12)
  • Unit IR (with RX, $5)
  • Unit OLED (status display, $5)
  • PaHub (I²C mux 6-channel, $5)
  • PbHub (digital I/O 6-channel, $8)
  • Unit Thermal MLX90640 (thermal cam, $50)

HAT modules DO NOT FIT Cardputer ADV. Use Grove Unit equivalents.

M5MonsterC5 (Grove, $25-35) — ESP32-C5 coprocessor for 5 GHz Wi-Fi capability.

USB-C OTG: USB keyboard, USB-to-Serial console, USB-MIDI, USB mass-storage thumb drives, BadUSB Hunter HID inspection. NOT supported: USB Wi-Fi, USB Ethernet, webcams.


8. Flashing-method picker

MethodBest forURL / command
Web flasher (M5Launcher)First install of M5Launcherhttps://bmorcelli.github.io/Launcher/
Web flasher (Bruce)Bruce-only installhttps://bruce.computer/
Web flasher (Meshtastic)Meshtastic installhttps://flasher.meshtastic.org/
M5Burner desktopFleet flashing, when Web Serial unavailablehttps://docs.m5stack.com/en/download
esptool.py CLIScripting, CI, recoverypip install esptool
OTA (in-firmware)Update once installed + on Wi-FiPer-firmware UI
M5Launcher OTA menuDay-to-day path once M5Launcher is in app0M5Launcher → OTA

Backup factory firmware FIRST:

esptool.py --chip esp32s3 -p /dev/ttyACM0 -b 1500000 \
    read_flash 0 0x800000 stock_backup.bin

9. M5Launcher SD card layout reminder

/                          ← microSD root (FAT32 mandatory)
├── apps/                  ← Small .bin apps + apps.json metadata
├── BadUSB/                ← DuckyScript .txt (case-sensitive!)
├── firmware/              ← Chain-loadable .bin
├── presets/               ← RF/IR captures
│   ├── subghz/
│   └── ir/
├── imgs/                  ← Boot splash 240×135 .jpg/.bmp
├── themes/                ← Theme JSON (RGB565 palettes)
├── update/                ← Self-update path (Launcher.bin)
└── nvs_backup.bin         ← Settings restore

Bruce additions:
├── bruce/portals/         ← Evil Portal HTML + captures.csv
├── captures/wifi_NN.pcap  ← Wi-Fi PCAPs
├── rfid/captures/         ← RFID dumps + nonces
└── wardriving/wifi_NN.csv ← WiGLE-format wardriving logs

Critical:
- FAT32 required (exFAT iffy)
- Class 10 / U1 minimum (slow cards = OTA timeout)
- Case-sensitive directory names (/BadUSB/ not /badusb/)

10. Hashcat 22000 command reference

# Convert Marauder PCAP to hashcat format
hcxpcapngtool -o handshakes.hc22000 /path/to/wifi_NN.pcap

# Crack with rockyou wordlist
hashcat -m 22000 handshakes.hc22000 /path/to/rockyou.txt

# With rules (best64 — strong general-purpose)
hashcat -m 22000 handshakes.hc22000 rockyou.txt \
    -r /path/to/best64.rule

# Mask attack (8 chars all printable)
hashcat -m 22000 -a 3 handshakes.hc22000 '?a?a?a?a?a?a?a?a'

# 8-digit phone-number-style password
hashcat -m 22000 -a 3 handshakes.hc22000 '?d?d?d?d?d?d?d?d'

# 8-hex-character router default
hashcat -m 22000 -a 3 handshakes.hc22000 '?h?h?h?h?h?h?h?h'

# Resume interrupted run
hashcat --restore

# View cracked
hashcat -m 22000 handshakes.hc22000 --show

# GPU-only with status
hashcat -m 22000 handshakes.hc22000 rockyou.txt \
    -D 2 --status --status-timer 60

Mask character classes:

| ?l lowercase a-z | ?u uppercase A-Z | ?d digit 0-9 | | ?s special !@#$%^&* | ?a all (l+u+d+s) | ?h hex lowercase | | ?H hex uppercase | | |

GPU rental (RunPod / Vast.ai): RTX 4090 ~$0.40-0.80/hr. 5-min rockyou run ≈ $0.05.


11. Regional LoRa rules

RegionFrequencyMax EIRPDuty cycle
EU g1868.0-868.6 MHz+14 dBm1%
EU g3869.4-869.65 MHz+27 dBm10%
US902-928 MHz+30 dBmNone
AU/NZ915-928 MHz+30 dBmNone
JP920.6-928 MHz+13 dBm10%

Cap LoRa-1262 default (+22 dBm + 3 dBi = +25 dBm EIRP):

  • US: ✓ compliant
  • EU g3: ✓ compliant
  • EU g1: ✗ NON-COMPLIANT — must firmware-clamp TX to ≤+11 dBm or run g3-only
  • JP: ✗ NON-COMPLIANT — must firmware-clamp TX to ≤+10 dBm

12. EIRP recalc after antenna upgrade

TX powerAntennaEIRPUSEU g1EU g3JP
+22 dBm3 dBi+25 dBm
+22 dBm6 dBi+28 dBm
+22 dBm14 dBi (Yagi)+36 dBm
+11 dBm3 dBi+14 dBm
+11 dBm6 dBi+17 dBm
+8 dBm6 dBi+14 dBm
+5 dBm14 dBi+19 dBm

ALWAYS recalculate after any antenna change. Higher gain = lower allowed TX in EU/JP.


13. Common build / flash errors

SymptomCauseFix
”Cardputer” vs “Cardputer-Adv” binary mismatchWrong board variantReflash with the ADV-specific binary
Device won’t enumerateCharge-only USB cableUse data-capable cable
Device won’t chargeSide switch OFFSlide switch ON
”No chip detected” in esptoolNot in download modeHold G0 during USB plug-in
Web flasher won’t connectWrong browserUse Chrome / Edge / Brave
Flash succeeds, BLACK SCREENWrong TFT pin map (custom build)Verify build flags per Vol 3 § 2
Reboot loop “Brownout triggered”Inadequate USB powerBetter cable / fresh battery
OTA times outSlow SD cardClass 10 / U1+ required
multiple definition of 'tft'Two .cpp instantiate displayOnly one Display.cpp
error: 'X' was not declaredarduino-esp32 version driftpio platform update espressif32

14. Troubleshooting flow

Device won't boot?

    ├─ Black screen → SD card formatted FAT32?
    │                 → Esc-on-boot to M5Launcher
    │                 → If still nothing: G0+USB to mask-ROM, reflash

    ├─ Display on, looping → Settings → About → reads version?
    │                        Yes → app issue, Esc-on-boot recovery
    │                        No  → bootloader issue, reflash via mask-ROM

    └─ Charges but won't power on → side switch ON? USB switch ON?

No scan results?

    ├─ Wi-Fi scan empty   → Region setting matches venue?
    │                       → Antenna OK (PCB trace) on Cardputer?
    │                       → Channel-hop mode on, not stuck on one ch?

    └─ BLE scan empty     → BLE radio enabled?
                            → No interfering Wi-Fi traffic?

Evil Portal not capturing?

    ├─ SSID set correctly?
    ├─ Open security (no password)?
    ├─ Form HTML has action="/get" or "/post"?
    ├─ Form inputs have name= attributes?
    ├─ File at /bruce/portals/<name>/index.html?
    └─ Captive-portal sheets pop on test device?

LoRa TX silent?

    ├─ FM8625H switch enabled?
    │  (PI4IOE5V6408 addr 0x43, port P0 = HIGH)

    ├─ Antenna physically attached?
    │  (Never TX without antenna — PA damage)

    └─ Region setting matches operating environment?
       (Some firmwares refuse TX if region mismatch detected)

hashcat says "No hashes loaded"?

    └─ Run hcxpcapngtool first to convert PCAP → .hc22000 format

15. Key references in one block

Upstream

Firmware

Tools

Datasheets

Regulatory

Community

Hack Tools cross-references


This is the final volume of the M5Stack Cardputer ADV 12-volume series. Print, laminate, carry.