Title: Chameleon Ultra Description: Connect GhostESP to a Chameleon Ultra reader URL: /latest/nfc/chameleon-ultra/ Version: latest Section: NFC Search index: /search-index.json # Chameleon Ultra > Connect GhostESP to a Chameleon Ultra reader ## On this page - [Supported Devices](#supported-devices) - [Connecting to Chameleon Ultra](#connecting-to-chameleon-ultra) - [On-Device UI](#on-device-ui) - [CLI](#cli) - [Other Chameleon Subcommands](#other-chameleon-subcommands) - [Troubleshooting](#troubleshooting) - [Related tasks](#related-tasks) --- 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 connect to start pairing. Optional arguments: timeout in seconds (default 10) if you need more time for discovery. - pin if your Chameleon Ultra requires a 4-6 digit security code. Example: chameleon connect 15 1234 Argument 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 status or battery with chameleon battery. Voltage and percentage display before starting long dumps. - Run chameleon disconnect when 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>, battery - scanhidprox, 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 20 for 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](/latest/nfc/scanning/). - Saving: Store remote dumps using [Saving Tags](/latest/nfc/saving/). - Compatibility: Review what tag families work via [Supported Tags](/latest/nfc/supported/).