Chameleon Ultra
Connect GhostESP to a Chameleon Ultra reader
On this page
GhostESP can control a Chameleon Ultra over BLE, then use the normal NFC scan/save flows. The Chameleon Ultra uses a different backend (BLE GATT protocol) than the PN532 (SPI/I2C), so some behavior differs. You need a GhostESP build with BLE and Chameleon Ultra features enabled, plus a powered Chameleon Ultra advertising over BLE.
Supported Devices
Chameleon Ultra support is enabled on most BLE-capable GhostESP builds (the feature is on unless explicitly disabled). Confirmed builds include:
- CrowPanel: CrowPanel Advance 2.4 / 2.8 / 3.5 / 4.3 / 5 / 7; CrowPanel 4.2 E-paper and 5.79 E-paper
- Waveshare / Crowtech / Sunton: 7″
- Wired Hatters Banshee: Banshee C5, Banshee S3
- M5Stack: M5 CoreS3-SE, AtomS3R
- LilyGo: T-Dongle S3, T-Dongle C5, T-Deck, T-Embed C1101, S3TWatch-2020, T-Display S3 Touch
- Seeed XIAO: XIAO S3, XIAO C5, XIAO S3 Sense
- Others: Heltec V3, Poltergeist, NM-CYD-C5, JC3248W535EN, Feberis Pro, Sputnik_SCR, GhostLink P1
- Generic builds: esp32-generic, esp32s3-generic, esp32c3-generic, esp32c5-generic-v01, esp32c6-generic
- Marauder / dev boards / CYD: MarauderV4_FlipperHub, MarauderV6_AwokDual, ghostboard, Cardputer, CardputerADV, CYD2USB, CYDMicroUSB, CYDDualUSB, CYD2USB2.4Inch, CYD2USB2.4Inch_C, CYD2432S028R, JCMK_DevBoardPro, RabbitLabs_Minion, Lolin_S3_Pro
Connecting to Chameleon Ultra
Note: GhostESP suspends the access point and Wi-Fi services during BLE sessions (including Chameleon connections) to free memory. The radio comes back automatically after you disconnect or run
stop.
On-Device UI
- Open Main Menu → NFC → Tools → Chameleon Ultra → Connect. The device scans for nearby Chameleon Ultra devices.
- Wait for the connection popup to show “Connected”. Battery voltage and percentage appear below the status.
- Use Disconnect from the same menu when finished. Wi-Fi services resume automatically after disconnecting.
CLI
- Run
chameleon connectto start pairing. Optional arguments:timeoutin seconds (default 10) if you need more time for discovery.pinif your Chameleon Ultra requires a 4-6 digit security code. Example:chameleon connect 15 1234Argument parsing: a 1-2 character positive value is treated as a timeout; anything else is treated as a PIN.
- Wait for pairing confirmation in the terminal. The CLI announces when the link succeeds.
- Check status with
chameleon statusor battery withchameleon battery. Voltage and percentage display before starting long dumps. - Run
chameleon disconnectwhen finished. BLE releases and the Wi-Fi services will restore automatically.
Other Chameleon Subcommands
The chameleon command also supports:
firmware,devicemode,activeslot,setslot <1-8>,slotinfo <1-8>,batteryscanhidprox,mfdetect,mfprng,ntagdetect,ntagdump,saventag [file]savelf [file],readhf,savedump [file],emulator
Troubleshooting
- Connection timeouts: Keep the Chameleon Ultra awake (press any button) and re-run
chameleon connect 20for a longer window. - PIN failures: Verify the configured code on the Chameleon Ultra; three failed attempts may force a power cycle.
- No BLE advertisements: Check the Chameleon Ultra’s BLE settings or reboot it; GhostESP only connects to active broadcasts.
Related tasks
- Scanning: Continue with PN532-based scanning guide.
- Saving: Store remote dumps using Saving Tags.
- Compatibility: Review what tag families work via Supported Tags.
