All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Initial project setup
- Complete installation automation
- USB Audio Class 2 gadget configuration
- Automatic audio routing via ALSA
- Systemd service integration
- Comprehensive documentation
- Hardware compatibility testing
- Troubleshooting guides
-
Core Functionality
- USB Audio Class 2 (UAC2) gadget implementation
- Automatic audio routing from USB to audio hardware
- Support for Merus audio HATs, HiFiBerry devices, USB audio interfaces
- Systemd service management for reliability
- Stereo audio support at 48kHz/16-bit
-
Installation System
- One-command installation script (
install.sh) - Automatic hardware detection and configuration
- Boot configuration management (
dwc2overlay, kernel modules) - Service enablement and startup automation
- Clean uninstallation support (
cleanup.sh)
- One-command installation script (
-
Documentation
- Comprehensive README with quick start guide
- Detailed installation instructions
- Hardware compatibility guide
- Troubleshooting documentation
- Contributing guidelines
-
Validation and Testing
- Setup validation script (
validate-setup.sh) - Manual routing script for testing (
start-routing.sh) - Service status monitoring
- Audio device detection and verification
- Setup validation script (
-
Hardware Support
- Raspberry Pi Zero W (primary target)
- Raspberry Pi Zero 2 W
- Raspberry Pi 4 (with OTG configuration)
- Merus Amp HAT (MA120x0P)
- HiFiBerry DAC/Amp series
- USB Audio Class 1/2 devices
- Built-in 3.5mm audio output
-
Host OS Compatibility
- Linux (PulseAudio, ALSA, PipeWire)
- Windows 10/11 (native UAC2 support)
- macOS 10.14+ (Core Audio)
- Android 5.0+ (USB OTG)
-
Legal and Licensing
- GNU General Public License v3.0
- Copyright attribution system
- Contributor guidelines
- USB Gadget Framework configuration via configfs
- ALSA loopback using
alsaloopfor real-time audio forwarding - Composite USB device with UAC2 audio function
- Automatic service dependency management
- Error handling and restart policies
- Audio format negotiation and conversion
- Low latency audio routing (10-50ms typical)
- <5% CPU usage on Pi Zero W during playback
- Stable 24+ hour operation
- Automatic recovery from power cycling
- Bus-powered operation
- Some USB 3.0 ports may require USB 2.0 compatibility mode
- Audio quality limited by Pi Zero's power delivery capabilities
- Manual configuration required for non-standard audio hardware
- Windows 7/8 not supported (no UAC2 driver)
- None (initial release)
- MAJOR.MINOR.PATCH (Semantic Versioning)
- MAJOR: Breaking changes requiring user intervention
- MINOR: New features, hardware support, significant improvements
- PATCH: Bug fixes, documentation updates, minor improvements
- Test on multiple hardware configurations
- Update documentation and changelog
- Validate all scripts and services
- Create release notes
- Tag release in Git
- Update project README if needed
- Web-based configuration interface
- Automatic audio hardware detection
- Multiple audio endpoint support
- Sample rate negotiation improvements
- Audio effects processing pipeline
- MIDI support
- Volume control integration
- Advanced buffer management
- Multi-channel audio support (>2 channels)
- Configuration file system
- Python-based management system
- REST API for configuration
- Multiple simultaneous host connections
- Audio streaming protocols (AirPlay, DLNA)
- Mobile app for configuration
- v1.x releases will maintain backwards compatibility
- Configuration files and service names will remain stable
- Breaking changes only in major version updates
- Migration guides provided for major version changes
- v1.x: Active development and bug fixes
- Previous versions: Security fixes only
- End-of-life: 12 months after major version release
When contributing, please:
- Add entries to [Unreleased] section
- Use consistent formatting
- Group changes by type (Added, Changed, Deprecated, Removed, Fixed, Security)
- Include issue/PR references where applicable
- Write clear, user-focused descriptions
- Added: New features
- Changed: Changes in existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Removed features
- Fixed: Bug fixes
- Security: Vulnerability fixes