GhostESP v2.2 is out, and it's the widest release yet. If v2.1 was about turning GhostESP into a platform, v2.2 is about reaching further: into LoRa mesh networks, into a much smarter picture of the Bluetooth devices around you, and into the details of the Wi-Fi you're capturing. There's also a Game Boy in here, because of course there is.
LoRa & Meshtastic
The headline addition is LoRa. GhostESP can now talk to Meshtastic and Meshcore networks over SX1262 radios, and the official Meshtastic and Meshcore apps work with it over BLE. That means a supported board can join a mesh, read and send messages, and behave like a node in the apps you already use.
Support lands on the Heltec V3 and LilyGo T-Deck, plus the Elecrow CrowPanel Advance 2.4/2.8/4.3-inch and the CrowPanel Advanced P4 7/9/10.1-inch. It's a different kind of radio work from everything else in GhostESP, and it's the part of this release I'm most excited to see people build on.
Bluetooth, With Better Eyes
The BLE device detect scan got a real upgrade. It now has its own bledetect CLI command and a row in the Devices menu, with list, track, and AirTag spoof actions.
More importantly, it recognises a lot more hardware: Tile trackers, Samsung SmartTags, Chipolo tags, AirPods with per-model variants, Apple Watch, generic FindMy clones, Fast Pair and Find Hub accessories, hearing aids, exposure beacons, and the Chameleon Ultra. You can also set a custom advertised name with blespam -name.
On PSRAM boards, wardriving can now run dual BLE and Wi-Fi capture at the same time with the new dualwd command, so a single drive logs both sides of the air at once.
Cleaner Wi-Fi & Captures
Wi-Fi got a batch of quality-of-life fixes that add up. You can now set your own channel hopping list for attacks, scans, the airspace monitor, and packet hopping, and pick your country in Settings > Wi-Fi so channel limits are handled correctly.
Captures are richer too. They now carry signal, channel, and rate information so Wireshark shows per-frame radio details, and they include VLAN-tagged traffic and control frames. Several long-standing bugs that dropped or mangled frames are fixed as well.
There's also a new mdnssniff command that passively learns local device names from mDNS, LLMNR, SSDP, and NetBIOS traffic while it works.
Apps & Hardware
This release adds a full Game Boy and Game Boy Color emulator with save states and battery saves, so the SD app gallery now has something to do on a long drive. The Apps gallery also gained folders, Tools, System, Games, Communication, Media, and Sensors, shared with SD apps by their manifest category.
Under the hood, the plugin API got faster menus and a native options list, so community apps feel snappier. On the hardware side, the LilyGo T-Deck can now play audio through its onboard speaker, ESP32-S3 boards with an SD card can expose it over USB, the Elecrow CrowPanel 1.28-inch rotary display is supported, and IR TX/RX pins can be changed at runtime.
UI & Feel
A lot of this release is about the small stuff you notice every time you pick the device up. The status bar now has a clock, with switchable analog and seven-segment clock faces. The on-screen keyboard got a standard, restyled layout, Settings was reorganised, and a new Row Height setting controls how dense the option menus feel.
Navigation is deeper and tidier: subfolder browsing now works across IR, NFC, SubGHz, Evil Portal, Favorites, and BadUSB. The lockscreen is on by default for fresh installs, and the related reliability work freed up roughly 15 KB of RAM at boot on classic ESP32 boards.
Everything Else
There's plenty more in v2.2 that doesn't fit a heading: lower GhostScript and wardriving memory use, fixes for S3TWatch USB, battery, backlight and RTC, web UI and C5 scanning fixes, and a pile of memory leaks closed off.
That's v2.2: join a mesh, see the Bluetooth around you more clearly, capture Wi-Fi in finer detail, and enjoy a smoother device while you do it.
Full details in the v2.2 changelog.
If you use GhostESP, star the repo .