mirror of
https://github.com/Senape3000/EvilCrowRF-V2.git
synced 2026-03-29 21:29:54 +00:00
Bump firmware (include/config.h) and mobile app (pubspec.yaml) versions to 1.1.3. Introduce run_command_verbose and related Tk-based GUI/CLI helpers in release_builder.py to show live command output, interactive timeout prompts and a Terminate action; replace several blocking subprocess.run calls (venv creation, pip install, PlatformIO build, Flutter pub/get/build, Android SDK setup) with this new runner. Add required imports and ensure Tk root is set in the GUI launcher to enable popups.
Evil Crow RF v2 Mobile Controller
Mobile application to control the Evil Crow RF v2 device via Bluetooth Low Energy (BLE).
Features
- Device discovery: Automatically search for the ESP32 device named "EvilCrow_RF2"
- BLE connection: Connect to the device with automatic service discovery
- Send commands: Text input and quick buttons for common commands
- Connection status: Shows current BLE connection state
- Cross-platform: Works on Android and iOS
Install Flutter
Windows
-
Download Flutter SDK:
- Visit flutter.dev
- Download the Flutter SDK for Windows
- Extract to a folder (e.g.,
C:\flutter)
-
Add Flutter to PATH:
- Open Environment Variables in Windows
- Add
C:\flutter\binto the PATH variable
-
Install Android Studio:
- Download Android Studio
- Install Android SDK
- Configure an emulator or connect a physical device
-
Verify installation:
flutter doctor
Run the app
- Change directory to the app:
cd mobile_app
- Install dependencies:
flutter pub get
- Run the app:
flutter run
Usage
Connect to the device
- Enable Bluetooth on your phone
- Tap "Scan for Devices" to search for devices
- Find "EvilCrow_RF2" in the list
- Tap "Connect" to connect
Send commands
After connecting you can:
- Type a command manually in the input field
- Use quick buttons:
SCAN- Start scanning RF signalsRECORD- Start recording a signalPLAY- Play a recorded signalSTOP- Stop the current operation
Connection status
The app shows:
- Current BLE connection status
- Error messages
- Connection indicator (green/red)
Project structure
mobile_app/
├── lib/
│ ├── main.dart # Main application file
│ ├── screens/
│ │ └── home_screen.dart # Main screen
│ └── providers/
│ └── ble_provider.dart # BLE logic
├── pubspec.yaml # Dependencies
└── README.md # This file
Dependencies
- flutter_blue_plus: BLE functionality
- permission_handler: Permissions management
- provider: State management
Permissions
The app requests:
- Bluetooth
- Bluetooth Scan
- Bluetooth Connect
- Location (required for BLE on Android)
Compatibility
- Android: 5.0+ (API 21+)
- iOS: 12.0+
- Flutter: 3.0.0+
Troubleshooting
Device not found
- Make sure the ESP32 is powered on and advertising BLE
- Check that Bluetooth is enabled on your phone
- Try restarting the scan
Connection error
- Ensure the device is not connected to another app
- Make sure the ESP32 is not in deep sleep
- Try restarting the ESP32
App fails to compile
- Check Flutter version:
flutter --version - Update dependencies:
flutter pub upgrade - Clear cache:
flutter clean && flutter pub get
Development
Adding new commands
- Open
lib/screens/home_screen.dart - Add a new button to the "Quick Commands" section
- Add handling for the command in the ESP32 code
Changing the UI
- Open
lib/screens/home_screen.dart - Modify widgets and styles
- Restart the app
Debugging BLE
- Use
print()inble_provider.dart - Check the Flutter console
- Use nRF Connect to verify the BLE connection
License
This project is provided "as-is" for educational purposes.