A WiFi-eating Pwnagotchi-style pet for the M5Stack CoreS3.
M5gotchi roams the 2.4 GHz band, randomly deauthenticates nearby access points, and
"eats" the WPA/WPA2 four-way handshakes it captures. Its moods and faces are driven by
what it catches — it gets excited when it grabs a handshake, intense while hunting,
and bored or lonely when the air is quiet. Captured handshakes are written to
microSD as standard .pcap files you can open in Wireshark or feed to hashcat/aircrack.
It wears the full Pwnagotchi personality — the complete set of moods (sleep, awake, look‑left/right, intense, cool, happy, excited, grateful, motivated, demotivated, smart, lonely, sad, angry, friend, broken…) each with its own face and voice lines.
⚠️ For authorized testing and education only. Deauthentication is a WiFi attack. Only use M5gotchi on networks you own or have explicit written permission to test. You are responsible for complying with all applicable laws.
- Roams the band, channel‑hopping and sniffing in promiscuous mode.
- Discovers nearby access points from their beacons.
- Deauths a random discovered AP every few seconds to provoke reconnections.
- Eats handshakes — detects EAPOL (4‑way handshake) frames, counts them, and saves
each to a PCAP file on microSD (
/pwn_*.pcap, link typeIEEE802.11). - Reacts — a Pwnagotchi‑style mood engine turns activity into faces and phrases.
- M5Stack CoreS3 (ESP32‑S3). CoreS3 SE should work too.
- A microSD card (optional but required to save captured handshakes).
The CoreS3 has no physical buttons, so M5.BtnA is emulated on the left third of the
screen (M5gotchi enables this explicitly — stock M5Unified leaves it off, which is why
touch does nothing in some CoreS3 ports):
- Hold (long press) the left of the screen — open / close the menu
- Single tap — select
- Double tap — next item
- Triple tap — previous item
Menu: Stats (handshakes eaten, APs seen, deauths, channel, SD status) and About (QR).
Grab M5gotchi-cores3.bin from Releases and flash at offset 0x0.
Put the CoreS3 into download mode first: hold RESET (bottom‑left) ~3 s until the green LED,
then release. It appears as a serial port (Espressif 303A:1001).
esptool --chip esp32s3 --port <PORT> --baud 921600 --after hard-reset \
write-flash 0x0 M5gotchi-cores3.binAfter flashing, short‑press RESET to boot (esptool's reset is a no‑op on the CoreS3 native USB).
Requires arduino-cli with the ESP32 core and the
M5Unified / M5GFX libraries.
arduino-cli core install esp32:esp32
arduino-cli lib install M5Unified # pulls M5GFX
arduino-cli compile --fqbn esp32:esp32:m5stack_cores3 m5gotchiLike the original Pwnagotchi, the pet's expression reflects its state:
| Situation | Mood |
|---|---|
| Just caught a handshake | Excited → Grateful (every 5) → Motivated (every 10) |
| Sending a deauth burst | Intense / Cool |
| APs around, scanning | Looking left/right, Smart, Happy |
| APs around, long dry spell | Demotivated / Sad |
| No APs nearby | Lonely → Bored → Sleep |
- Inspired by Pwnagotchi by evilsocket.
- Built on the mood/UI scaffolding of m5-palnagotchi by Vinícius Borriello (MIT), extended from a passive pwnagotchi decoy into an active handshake‑eating pet.
- Uses M5Unified / M5GFX.
MIT — see LICENSE.