
🎹 Bringing Life to Generic Hardware
Created a custom driver and configuration UI for a Chinese mini keyboard that lacked proper software support, making it fully functional and customizable.
The Challenge
The SayoDevice 02C is a popular budget mini keyboard from China that ships with:
- No English documentation
- Buggy proprietary software
- Limited customization options
- Compatibility issues
My Solution
I reverse-engineered the device protocol and created:
- Custom driver for Windows/Linux
- User-friendly configuration UI
- Macro programming support
- RGB lighting control
Features Implemented
-
⌨️ Key Remapping
- Any key to any function
- Multi-key combinations
- Layer support
- Media controls
-
🎨 RGB Control
- Custom lighting effects
- Per-key RGB
- Animation speeds
- Brightness control
-
🎯 Macro System
- Record macros
- Timing control
- Complex sequences
- Game profiles
-
💾 Profile Management
- Save/load profiles
- Import/export
- Cloud sync
- Auto-switching
Technical Implementation
- Languages: C++, Python
- UI Framework: Qt/PyQt
- Protocol: USB HID
- Reverse Engineering: Wireshark, USB analysis
- Platform: Windows, Linux
Development Process
-
Protocol Analysis
- Captured USB packets
- Decoded communication protocol
- Identified command structure
-
Driver Development
- Implemented USB HID communication
- Created command library
- Built abstraction layer
-
UI Design
- User-friendly interface
- Real-time preview
- Drag-and-drop configuration
Impact & Reception
- 1000+ downloads on GitHub
- Featured in mechanical keyboard communities
- Requests for support of other devices
- Inspired similar projects
Key Achievements
- Made unusable hardware fully functional
- Saved users from buying expensive alternatives
- Created better software than original manufacturer
- Open-sourced for community benefit
Supported Features
- Windows 10/11
- Linux (Ubuntu, Arch, Fedora)
- Full RGB spectrum
- 50+ macro slots
- Unlimited profiles
- No internet required
Community Contributions
The project is open source and accepts contributions:
- Bug fixes
- New features
- Device support
- Translations
Download
Get the driver and UI: github.com/Avzolem/MiniKeyboard-SayoDevice-02C-Config
Future Plans
- macOS support
- Mobile app
- More device models
- AI-powered layouts