Chameleon Flipper - Chameleon Ultra Controller for Flipper Zero
November 9, 2025 ยท View on GitHub
Complete Flipper Zero application (.fap) to control and manage your Chameleon Ultra device via USB or Bluetooth.
๐ฌ Features fun bar animation when devices connect! Watch Chameleon and Dolphin meet at a bar! ๐บ
Quick Links
- ๐ Quick Start Guide - Get started in minutes
- ๐จ Animation Documentation - Learn about the connection animation
- ๐ง Protocol Documentation - Detailed protocol specification
Features
Connection Methods
-
USB/Serial Connection - Direct communication via USB CDC โ Fully working
- Full bidirectional communication
- Real-time slot management
- Tag read/write operations
- Device diagnostics
-
Bluetooth Low Energy (BLE) - โ ๏ธ Not supported (Flipper Zero hardware limitation)
Technical Note: The Flipper Zero BLE stack is designed as a peripheral/server only (HID keyboard, serial device, etc.). It does not support central/client mode required to connect to other BLE peripherals like the Chameleon Ultra. The Flipper's BLE APIs (
furi_hal_bt,gap,ble_app) only expose peripheral functionality - there are no public APIs for BLE scanning, connecting as central, or GATT client operations.Workaround: Use USB-C connection for full functionality. The Chameleon Ultra's USB interface provides complete access to all features.
Functionality
- Slot Management - Manage all 8 slots on your Chameleon Ultra
- View slot information with real-time sync
- Rename slots (32 characters max, UTF-8)
- Set active slot
- Configure tag types
- Real device communication - reads actual slot data from Chameleon Ultra
- Tag Operations - Read and write tags
- Read tags from Chameleon Ultra
- Transfer Flipper tags to Chameleon Ultra
- Support for HF (High Frequency) and LF (Low Frequency) tags
- Device Diagnostics - View device information
- Firmware version
- Device model (Ultra/Lite)
- Operating mode (Reader/Emulator)
- Chip ID
- Connection status
- Protocol Support - Full implementation of Chameleon Ultra protocol
- Device management commands (1000-1037)
- Slot management (1003-1024)
- HF operations (2000-2012) - Mifare Classic, NTAG, etc.
- LF operations (3000-3003) - EM410X, HID Prox
- Emulator configuration (4000-4030)
Project Structure
Chameleon_Flipper/
โโโ application.fam # App manifest
โโโ chameleon_app.c # Main application
โโโ chameleon_app_i.h # Internal structures and definitions
โโโ lib/ # Libraries
โ โโโ chameleon_protocol/ # Protocol implementation
โ โ โโโ chameleon_protocol.h
โ โ โโโ chameleon_protocol.c
โ โโโ uart_handler/ # USB/Serial handler
โ โ โโโ uart_handler.h
โ โ โโโ uart_handler.c
โ โโโ ble_handler/ # Bluetooth handler
โ โโโ ble_handler.h
โ โโโ ble_handler.c
โโโ views/ # Custom views
โ โโโ chameleon_animation_view.h # Bar animation view
โ โโโ chameleon_animation_view.c
โโโ scenes/ # GUI scenes
โ โโโ chameleon_scene.h # Scene headers
โ โโโ chameleon_scene.c # Scene manager
โ โโโ chameleon_scene_config.h # Scene configuration
โ โโโ chameleon_scene_start.c # Start screen
โ โโโ chameleon_scene_main_menu.c # Main menu
โ โโโ chameleon_scene_connection_type.c
โ โโโ chameleon_scene_usb_connect.c
โ โโโ chameleon_scene_ble_scan.c
โ โโโ chameleon_scene_ble_connect.c
โ โโโ chameleon_scene_slot_list.c
โ โโโ chameleon_scene_slot_config.c
โ โโโ chameleon_scene_slot_rename.c
โ โโโ chameleon_scene_tag_read.c
โ โโโ chameleon_scene_tag_write.c
โ โโโ chameleon_scene_diagnostic.c
โ โโโ chameleon_scene_about.c
โโโ icons/ # Application icons
โ โโโ chameleon_10px.png
โโโ docs/ # Documentation
โโโ QUICK_START.md # Quick start guide
โโโ ANIMATION.md # Animation details
โโโ PROTOCOL.md # Protocol specification
Protocol Implementation
The application implements the official Chameleon Ultra protocol:
Frame Structure
SOF (0x11) | LRC1 (0xEF) | CMD (2 bytes) | STATUS (2 bytes) |
LEN (2 bytes) | LRC2 (1 byte) | DATA (0-512 bytes) | LRC3 (1 byte)
Supported Commands
- Device Management: Get version, chip ID, device model, capabilities
- Slot Operations: Set active slot, configure slots, rename slots
- Tag Reading: Scan HF/LF tags, read blocks, authenticate
- Tag Writing: Write to emulator slots, configure emulation
- Diagnostics: Get device status, firmware info
Building
Prerequisites
- Flipper Zero firmware with FAP support
- uFBT (micro Flipper Build Tool) or full firmware SDK
Build Instructions
Using uFBT:
ufbt
Using full firmware SDK:
./fbt fap_chameleon_ultra
Installation
- Build the .fap file
- Copy to Flipper Zero SD card:
/ext/apps/Tools/ - Launch from Applications > Tools > Chameleon Ultra
Usage
Connecting to Chameleon Ultra
USB Connection
- Connect Chameleon Ultra to Flipper Zero via USB-C
- Open Chameleon Ultra app
- Select "Connect Device" > "USB Connection"
Bluetooth Connection
- Power on Chameleon Ultra
- Open Chameleon Ultra app
- Select "Connect Device" > "Bluetooth Connection"
- Wait for device scan
- Select your Chameleon Ultra from the list
Managing Slots
- Connect to device
- Select "Manage Slots"
- Choose a slot (0-7)
- Configure slot settings:
- Activate slot
- Rename slot
- Change tag type
Reading Tags
- Connect to device
- Select "Read Tag"
- Follow on-screen instructions
Writing to Chameleon
- Connect to device
- Select "Write to Chameleon"
- Choose source tag
- Select destination slot
Diagnostics
- Connect to device
- Select "Diagnostic"
- View device information
Technical Details
Communication
- USB: Uses Flipper's USB CDC interface at 115200 baud
- BLE: Connects via Flipper's Bluetooth stack to Chameleon's BLE service
Memory
- Stack size: 2KB
- Supports up to 512-byte protocol payloads
- Caches device and slot information locally
Compatibility
- Flipper Zero firmware: Latest official/unleashed
- Chameleon Ultra firmware: All versions supporting standard protocol
- Chameleon Lite: Supported (limited features)
Development Status
Implemented
- โ Complete protocol implementation
- โ USB/Serial communication
- โ Bluetooth communication framework
- โ GUI with scene management
- โ Slot management
- โ Device diagnostics
- โ Connection handling
In Progress
- ๐ Tag reading from Chameleon
- ๐ Tag writing to Chameleon
- ๐ Full BLE GATT implementation
- ๐ Response parsing and error handling
Planned
- ๐ Mifare Classic key management
- ๐ NTAG configuration
- ๐ EM410X and HID Prox emulation setup
- ๐ Batch operations
- ๐ Settings persistence
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on hardware
- Submit a pull request
License
This project is open source. See LICENSE file for details.
Credits
- Chameleon Ultra Protocol: RfidResearchGroup
- Flipper Zero: Flipper Devices
Disclaimer
This tool is for educational and authorized security research purposes only. Users are responsible for complying with local laws and regulations regarding RFID/NFC devices.
Support
For issues, questions, or feature requests, please open an issue on GitHub.
Version: 1.0 Author: Chameleon Flipper Team Platform: Flipper Zero