A native Windows desktop application for managing Flipper Zero and WiFi Pineapple devices.
Bad-Antics Device Manager is a feature-rich desktop application that provides an intuitive interface for managing and monitoring Flipper Zero and WiFi Pineapple devices. Built with PyQt6 for a modern, responsive user experience.
- ✅ Native Desktop App - No web server needed, no browser required
- ✅ Instant Startup - Single executable or Python script
- ✅ Better Performance - Direct device communication
- ✅ Rich UI - Professional desktop interface with real-time updates
- ✅ Background Operations - Auto-connect and monitoring run in background threads
- ✅ Windows Integration - System notifications and tray integration ready
-
🔌 Auto-Connect - Automatically detects and connects to Flipper Zero via USB
-
📊 Device Monitor - Real-time display of:
- Device information (model, firmware version)
- System uptime
- Memory usage
- Serial port details
-
🎮 CLI Commands - Execute any Flipper CLI command directly:
info device uptime free subghz tx <parameters> storage list <path> -
📁 File Explorer
- Browse Flipper's internal and external storage
- Read file contents
- Delete files
- Download files to computer
-
📡 Sub-GHz Transmission
- Carrier transmission
- Static signal transmission
- Custom frequency and modulation
- Load from files
- Raw data transmission
-
🌐 Auto-Discovery - Automatically locates Pineapple on network
-
🔐 Authentication - Secure login with token-based API access
-
📈 Status Monitoring - View:
- Device status and uptime
- Connected clients
- System logs
- Notifications
-
⚙️ Configuration - Manage device settings
-
📝 Logs - Access detailed operation logs
Requirements: Python 3.10+
# Clone or download the repository
git clone https://github.com/yourusername/pineflip-desktop-app.git
cd pineflip-desktop-app
# Install dependencies
pip install -r requirements.txt
# Run the application
python desktop_app.pyRequirements: Windows 10/11
- Download the latest
.exefrom Releases - Double-click to run - no installation needed!
# Install PyInstaller
pip install PyInstaller
# Build
python build_exe.py
# Run the executable
dist\Bad-Antics_Device_Manager.exe- Windows 10 or later
- Python 3.10 or higher
- PyQt6 6.6+
- pyserial 3.5+
- requests 2.32+
- Windows 10 or later
- No additional dependencies needed!
- USB connection to Flipper Zero
- Network connection to WiFi Pineapple (optional)
git clone https://github.com/yourusername/pineflip-desktop-app.git
cd pineflip-desktop-app
pip install -r requirements.txt
python desktop_app.pyDownload the latest release from the Releases page and run it directly.
pip install PyInstaller
python build_exe.pyThe executable will be created in the dist/ folder.
- Connect your Flipper Zero to your computer via USB
- Launch the application
- Switch to the "Flipper Zero" tab
- The app will auto-detect the serial port
- Click "Connect" button
- Status indicator will turn green when connected
The device monitor displays:
- Port: Serial port in use (e.g., COM3)
- Device Info: Manufacturer, model, firmware
- Uptime: How long the device has been running
- Memory: RAM and storage usage
- Enter a Flipper CLI command in the command input field
- Click "Send" or press Enter
- Results appear in the monitor panel
Common Commands:
info device # Show device information
uptime # Show system uptime
free # Show memory usage
storage list /ext # List external storage files
storage read /ext/file.txt # Read file contents
- Enter a path (e.g.,
/ext,/int,/data) - Click "List Files"
- Browse the file listing
- Click on a file to view or delete it
- Ensure Pineapple is powered on and on your network
- Switch to the "WiFi Pineapple" tab
- Enter connection details:
- URL: Device address (auto-detected as
http://172.16.42.1) - Username: Usually
root - Password: Device password
- URL: Device address (auto-detected as
- Click "Connect"
- Status indicator will turn green when authenticated
- Once connected, click "Refresh Status"
- View current device status, logs, and notifications
- Logs update automatically in the background
pineflip-desktop-app/
├── device_manager.py # Core device communication library
├── desktop_app.py # PyQt6 GUI application
├── build_exe.py # Build executable script
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore rules
├── README.md # This file
├── LICENSE # MIT License
└── docs/
├── ARCHITECTURE.md # System architecture
├── API.md # API documentation
└── DEVELOPMENT.md # Development guide
Core business logic - no UI dependencies. Provides:
-
FlipperDevice- Serial communication with Flipper Zero- Auto-detection of available ports
- Command sending and response parsing
- File system operations
- Sub-GHz transmission control
-
PineappleDevice- WiFi Pineapple API interface- Auto-discovery on network
- Authentication and token management
- API calls for status, logs, settings
- Automatic reconnection
PyQt6 desktop GUI. Provides:
MainWindow- Main application windowFlipperTab- Flipper device management interfacePineappleTab- Pineapple management interfaceDeviceWorker- Background thread for auto-connect and monitoring
# Flipper configuration
FLIPPER_PORT=COM3 # Serial port (auto-detect if not set)
FLIPPER_BAUD=230400 # Baud rate (default)
# Pineapple configuration
PINEAPPLE_URL=http://172.16.42.1
PINEAPPLE_USER=root
PINEAPPLE_PASS=your_passwordWindows PowerShell:
$env:PINEAPPLE_USER = "root"
$env:PINEAPPLE_PASS = "flooding"
python desktop_app.pyWindows Command Prompt:
set PINEAPPLE_USER=root
set PINEAPPLE_PASS=flooding
python desktop_app.pyIssue: Connection status stays "Not Connected"
Solutions:
- Check USB cable is properly connected
- Verify port in Device Manager (Settings → Device Manager → Ports)
- Try different USB port on computer
- Restart Flipper Zero
- Update Flipper firmware
Debug:
from device_manager import FlipperDevice
f = FlipperDevice()
print(f.connect()) # Should return True if connectedIssue: Can't authenticate with Pineapple
Solutions:
- Ensure Pineapple is powered on
- Check it's connected to your network
- Verify username/password (default:
root/flooding) - Check IP address with
ipconfig(should be172.16.42.x) - Try accessing
http://172.16.42.1in browser
Debug:
from device_manager import PineappleDevice
p = PineappleDevice()
p.discover_url() # Should find the device
p.authenticate() # Should return TrueIssue: "ModuleNotFoundError: No module named 'PyQt6'"
Solution:
pip install -r requirements.txtIssue: Executable crashes on startup
Solutions:
- Ensure Python 3.10+ is installed
- Rebuild executable:
pip install --upgrade PyInstaller python build_exe.py
- Check Windows Defender isn't blocking it
- Run with administrator privileges
- ARCHITECTURE.md - System design and components
- API.md - Device API documentation
- DEVELOPMENT.md - Contributing and development guide
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See DEVELOPMENT.md for detailed development instructions.
To create a release:
# Build executable
python build_exe.py
# Test the executable
dist\Bad-Antics_Device_Manager.exe
# Create GitHub release with the .exe fileThis project is licensed under the MIT License - see the LICENSE file for details.
This tool is provided for authorized use only. Users are responsible for:
- Ensuring they own or have permission to use devices
- Complying with all applicable laws and regulations
- Using this tool responsibly and ethically
- Flipper Devices - For creating the awesome Flipper Zero
- WiFi Pineapple - For the incredible WiFi Pineapple platform
- PyQt6 Team - For the excellent Python GUI framework
- Community - For feedback and contributions
- Issues: Report bugs on GitHub Issues
- Discussions: Ask questions in GitHub Discussions
- Security: Report security issues to [security email]
Made with ❤️ by the Bad-Antics team