Thank you for your interest in contributing! SkySweep32 is an open-source project and welcomes contributions of all kinds.
- Use GitHub Issues
- Include your hardware tier (Base/Standard/Pro), firmware version, and serial output
- For bugs: describe expected vs actual behavior
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes following the conventions below
- Test on real hardware if possible
- Submit a Pull Request
- Fix typos, improve explanations, add examples
- Translate to new languages
- Create tutorials or video guides
- Test with different ESP32 variants (DevKit V1, ESP32-S3, WROOM)
- Report range and detection accuracy
- Share antenna comparison results
- Use
camelCasefor variables and functions - Use
PascalCasefor classes - Use
UPPER_SNAKE_CASEfor#defineconstants - Include module guard:
#ifdef MODULE_*...#endif - Use config.h for all pin definitions and constants
- Always use
spiManager.acquire()/spiManager.release()for SPI access
src/
├── config.h # Central configuration
├── config_manager.h/cpp # Runtime JSON config
├── spi_manager.h/cpp # Thread-safe SPI
├── main.cpp # FreeRTOS task setup
├── web_server.h/cpp # Dashboard + API
├── drivers/ # Hardware drivers
│ ├── cc1101.h/cpp
│ ├── nrf24l01.h/cpp
│ └── rx5808.h/cpp
├── protocols/ # Protocol parsers
│ ├── mavlink_parser.h/cpp
│ └── crsf_parser.h/cpp
└── [module].h/cpp # Feature modules
Use conventional commits:
feat: add 433 MHz CC1101 support
fix: resolve SPI bus contention on RX5808
docs: update wiring diagram for Pro tier
refactor: extract RSSI history to separate class
- RF Signature Database — Record real drone signals and share datasets
- TFLite Model Training — Train classification models on real data
- ESP-NOW Mesh — Implement multi-node communication
- Web Dashboard UX — Improve mobile responsiveness, add map view
- 3D Enclosure — Design printable cases for each tier
- Translations — Add Chinese, Spanish, German docs
- CI/CD — GitHub Actions for automated builds on all tiers
⚠️ Do NOT submit code that enables illegal RF jamming or GPS spoofing without explicit authorization safeguards. All countermeasure code must be gated behindENABLE_COUNTERMEASURESand include appropriate warnings.
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.