╔═════════════════════════════════════════════════════════════════════════════╗
║ GLOWFIN - GOVEE BLE CONTROLLER ║
╠═════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌──────────────────────────────────────────────────────────┐ ║
║ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ ║
║ │░┌────────────────────────────────────────────────────┐░░│ ║
║ │░│ GLOWFIN │░░│ ))) ║
║ │░│ │░░│ ))) ║
║ │░│ > Scan for Devices │░░│ ))) ║
║ │░│ Manual Entry │░░│ ║
║ │░│ Saved Devices │░░│ BLE 5.0 ║
║ │░│ │░░│ -42 dBm ║
║ │░│ │░░│ ║
║ │░└────────────────────────────────────────────────────┘░░│ ║
║ │░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ ║
║ └──────────────────────────────────────────────────────────┘ ║
║ 128x64 Monochrome Display (Actual Size) ║
║ ║
║ ┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐ ║
║ │ ◄ │ ▲ │ ► │ │ USB │ │ GPIO│ ║
║ ├─────┼─────┼─────┤ │ C │ SD │ PORT│ ║
║ │ ● │ ▼ │ OK │ └─────┴─────┴─────┘ ║
║ └─────┴─────┴─────┘ ║
║ 5-Way D-Pad External Ports ║
║ ║
╚═════════════════════════════════════════════════════════════════════════════╝
╔═════════════════════════════════════════════════════════════════════════════╗
║ APP RUNNING - REAL DISPLAY VIEW ║
╠═════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌──────────────────────────────────────────────────────────┐ ║
║ │████████████████████████████████████████████████████████ │ 12:45 PM ║
║ │█ GLOWFIN ≡ █████████████████████████BT:ON█│ BAT: 87% ║
║ │████████████████████████████████████████████████████████ │ ║
║ │ │ ║
║ │ Scanning... │ H6006 ║
║ │ ▪ Looking for H6006 │ DETECTED ║
║ │ ▪ Found: 1 device │ RSSI:-42 ║
║ │ │ ║
║ │ > H6006_A4C1 [-42dBm] │ ┌─────┐ ║
║ │ H6160_7B32 [-68dBm] │ │ ▓▓▓ │ ║
║ │ H6135_9F11 [-71dBm] │ │ ▓▓▓ │ ║
║ │ │ │ ▓▓▓ │ ║
║ │ [OK] Connect [Back] Menu │ └─────┘ ║
║ │ │ BULB ║
║ └──────────────────────────────────────────────────────────┘ ║
║ Actual 128x64 pixel constraints shown ║
║ ║
╚═════════════════════════════════════════════════════════════════════════════╝
╔═════════════════════════════════════════════════════════════════════════════╗
║ CONNECTED - CONTROL VIEW ║
╠═════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌──────────────────────────────────────────────────────────┐ ║
║ │████████████████████████████████████████████████████████ │ ║
║ │█ H6006_A4C1 CONTROL ≡ ███████████████████████CONNECTED█│ ║
║ │████████████████████████████████████████████████████████ │ ║
║ │ │ ┌─────┐ ║
║ │ Power: [ON ] │ │▓▓▓▓▓│ ║
║ │ Brightness: [███████░░░] 75% │ │▓▓▓▓▓│ ║
║ │ Color: RGB(255,128,64) │ │▓▓▓▓▓│ ║
║ │ Effect: [None ▼] │ │▓▓▓▓▓│ ║
║ │ │ └─────┘ ║
║ │ [▲▼] Adjust [◄►] Select │ ON ║
║ │ [OK] Apply [Back] Menu │ 75% BR ║
║ │ │ ║
║ └──────────────────────────────────────────────────────────┘ ║
║ ║
╚═════════════════════════════════════════════════════════════════════════════╝
GlowFin is a native Flipper Zero application for comprehensive control of Govee Bluetooth-enabled LED devices, providing advanced lighting automation, scene management, and multi-device orchestration capabilities.
- Multi-Device Control - Manage 5+ Govee LED devices simultaneously
- Device Discovery - Automatic BLE scanning with RSSI monitoring
- Color Management - Full RGB/HSV color control with temperature adjustment
- Effects Library - Built-in Govee effects with custom animation support
- Scene Engine - Pre-configured and custom scenes with scheduling
- Group Control - Organize devices into logical groups with synchronized commands
- Automation - Time-based schedules, triggers, and macro recording
- Protocol Analysis - BLE packet capture and command logging tools
- Offline Operation - No cloud dependency for core functionality
- Persistent Storage - Device configurations and scene library backup
- Low Latency - Sub-100ms command execution
- Battery Optimized - Less than 10% battery impact per hour of active use
Model | Device Type | Features | Status |
---|---|---|---|
H6006 | Smart A19 LED Bulb | RGBWW, 2000K-9000K | Priority |
H6160 | LED Strip Lights | RGB, Effects | Planned |
H6163 | LED Strip Lights Pro | RGB, Segments, Gradient | Planned |
H6104 | LED TV Backlight | RGB, Segments | Planned |
H6110 | Smart Bulb | RGBWW | Planned |
H6135 | Smart Light Bar | RGB, Effects | Planned |
H6159 | Gaming Light Panels | RGB, Segments | Planned |
H6195 | Immersion Light Strip | RGB, Effects | Planned |
- Flipper Zero device
- Firmware version: Latest stable or development build
- Bluetooth enabled
- At least 1MB free storage
Coming soon - The application will be available through the official Flipper catalog.
- Clone the repository:
git clone https://github.com/yourusername/glowfin.git
cd glowfin
- Set up the Flipper Zero SDK:
# Install the SDK
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git
cd flipperzero-firmware
- Build the application:
./fbt fap_govee_control
- Deploy to Flipper Zero:
./fbt launch APPSRC=applications_user/govee_control
Download the latest .fap
file from the releases page and copy it to your Flipper Zero's SD card under /apps/Misc/
.
- Launch the application from the Flipper Zero menu
- Select "Quick Control" for immediate access to nearby devices
- Choose a device from the discovered list
- Use the D-pad to adjust colors and brightness
Button | Action |
---|---|
Up/Down | Navigate menu items |
Left/Right | Adjust values |
OK | Select/Apply |
Back | Return to previous menu |
Hold OK | Quick action menu |
Hold Back | Exit application |
- Quick Control - Fast access to last used device
- Devices - Manage and configure connected devices
- Scenes - Create and activate lighting scenes
- Schedule - Set up automated lighting schedules
- Settings - Configure application preferences
┌─────────────────────────────────────────┐
│ Application Layer │
├─────────────────────────────────────────┤
│ Scene Engine │ UI Manager │
├────────────┬────────┴────────────────────┤
│ Device Abstraction Layer (DAL) │
├───────────────────────────────────────────┤
│ BLE Manager │
│ ┌──────────┬──────────┬──────────┐ │
│ │Discovery │Connection│ Command │ │
│ │ Service │ Pool │ Queue │ │
│ └──────────┴──────────┴──────────┘ │
├───────────────────────────────────────────┤
│ Flipper Zero BLE Stack │
└───────────────────────────────────────────┘
The application communicates with Govee devices using the following protocol:
- Primary Control Service:
000102030405060708090a0b0c0d1910
- Alternative Service (some models):
02f0000000000000000000000000fe00
- Control Write:
000102030405060708090a0b0c0d2b10
- Status Read/Notify:
000102030405060708090a0b0c0d2b11
All commands follow a 20-byte packet format:
- Byte 0: Header (0x33 for commands, 0xAA for keep-alive, 0xA3 for gradient)
- Byte 1: Command type
- Bytes 2-18: Payload (command-specific data)
- Byte 19: XOR checksum
- Power On:
33 01 01 00...00 [XOR]
- Power Off:
33 01 00 00...00 [XOR]
- Set RGB:
33 05 02 [R] [G] [B] 00...00 [XOR]
- Set Brightness:
33 04 [LEVEL] 00...00 [XOR]
- Keep-Alive:
AA 01 00...00 [XOR]
- Flipper Zero SDK or ufbt (micro Flipper Build Tool)
- ARM GCC toolchain
- Python 3.8+
- Git
# Clone Flipper Zero firmware
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git
cd flipperzero-firmware
# Install uFBT for easier development
python3 -m pip install --upgrade ufbt
# Setup VSCode integration (optional)
ufbt vscode_dist
govee_control/
├── application.fam # App manifest
├── govee_control.c # Main entry point
├── ble/
│ ├── ble_manager.c # BLE connection management
│ ├── ble_scanner.c # Device discovery
│ └── ble_protocol.c # Protocol implementation
├── devices/
│ ├── device_registry.c # Device abstraction layer
│ ├── govee_h6006.c # H6006 Smart Bulb driver
│ ├── govee_h6160.c # H6160 LED Strip driver
│ └── govee_h6163.c # H6163 LED Strip Pro driver
├── ui/
│ ├── views/ # UI views
│ │ ├── device_list.c
│ │ ├── color_picker.c
│ │ └── scene_editor.c
│ └── govee_ui.c # UI manager
├── storage/
│ ├── config_storage.c # Configuration persistence
│ └── scene_storage.c # Scene library storage
├── assets/ # Icons and resources
└── tests/ # Unit tests
# Debug build
./fbt debug
# Release build
./fbt fap_govee_control
# Run tests
./fbt test
# Start debugging session
./fbt debug
# View logs
./fbt cli
> log
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow the existing code style
- Add unit tests for new functionality
- Update documentation as needed
- Ensure all tests pass before submitting
- Project setup and documentation
- Technical implementation specifications
- BLE scanner implementation
- Basic device connection
- Simple on/off control
- Device listing UI
- Color and brightness control
- Multi-device support (5+ simultaneous)
- Group management
- Basic scenes
- H6006 Smart Bulb full support
- Effects library implementation
- Custom animations engine
- Scene sequencing and transitions
- Scheduling system
- Automation rules
- Performance optimization (<100ms latency)
- Battery usage improvements (<10% per hour)
- Enhanced error handling
- Complete user documentation
- Beta testing program
Metric | Target | Current |
---|---|---|
Device Discovery | < 3 seconds | TBD |
Command Latency | < 100ms | TBD |
Multi-device Sync | < 50ms deviation | TBD |
Memory Usage | < 256KB RAM | TBD |
Storage | < 1MB | TBD |
Battery Impact | < 10% per hour | TBD |
- All device credentials are stored encrypted on the Flipper Zero
- No cloud connectivity required for operation
- BLE pairing follows standard security protocols
- Local-first architecture ensures privacy
This project is licensed under the MIT License - see the LICENSE file for details.
- Product Requirements Document - Complete product specifications
- Technical Implementation - Detailed BLE protocol and implementation guide
- Project Status - Current development progress
- Changelog - Version history and updates
- Flipper Zero team for the excellent SDK and documentation
- Govee community for protocol reverse engineering efforts
- Contributors and testers who help improve this application
For bugs and feature requests, please open an issue on GitHub.
This is an unofficial application and is not affiliated with, endorsed by, or sponsored by Govee or Flipper Devices Inc. All product names, logos, and brands are property of their respective owners.