Professional ESP-IDF Components & IoT Solutions
Building reusable, well-documented ESP32 components for the embedded community
WhirlingBits develops production-ready ESP-IDF components with comprehensive documentation, examples, and best practices. Our mission is to accelerate ESP32 development by providing reliable, tested building blocks.
- ✅ Well-Documented - Doxygen API docs + Docusaurus guides
- ✅ Thoroughly Tested - Unit tests & hardware validation
- ✅ Easy Integration - CMake-based, follows ESP-IDF conventions
- ✅ Community-Driven - Open source, contributions welcome
Collection of reusable ESP-IDF components for common peripherals and protocols.
| Component | Description | Status | Documentation |
|---|---|---|---|
| wb-idf-i2c | I²C Master Driver with multi-instance support | ✅ Stable | 📖 API Docs |
| wb-idf-spi | SPI Communication Handler | 🚧 In Development | Coming Soon |
- 🔄 Multi-Instance Support - Run multiple peripherals simultaneously
- ⚙️ Kconfig Integration - Easy configuration via menuconfig
- 📚 Rich Examples - Complete working examples included
- 🧪 Unit Tested - ESP-IDF test framework integration
- 📖 Doxygen Documentation - Comprehensive API reference
# Add as ESP-IDF component
cd your-project/components
git clone https://github.com/WhirlingBits/wb-idf-core.git
# Or as Git submodule
git submodule add https://github.com/WhirlingBits/wb-idf-core.git components/wb-idf-core
# Configure via menuconfig
idf.py menuconfig
# Navigate to: Component config → WhirlingBits Components
# Build your project
idf.py build flash monitorUnified documentation portal built with Docusaurus, featuring:
- 📖 API Reference - Auto-generated from Doxygen
- 🎓 Tutorials - Step-by-step guides
- 💡 Examples - Working code samples
- 🔧 Configuration - Kconfig options explained
- 🐛 Troubleshooting - Common issues & solutions
Technology Stack:
- Docusaurus - Documentation framework
- Doxygen - API documentation generator
- GitHub Pages - Hosting
- GitHub Actions - CI/CD pipeline
We welcome contributions from the community!
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/AmazingFeature) - ✍️ Commit your changes (
git commit -m 'Add AmazingFeature') - 📤 Push to the branch (
git push origin feature/AmazingFeature) - 🔀 Open a Pull Request
- Follow ESP-IDF style guide
- Add unit tests for new features
- Update documentation (Doxygen comments + guides)
- Run
idf.py clang-formatbefore committing
→ Contributing Guide | → Code of Conduct
- 🏗️ Component Template - Starter for new components
- 📝 Documentation Template - Doxygen + Docusaurus setup
If you find our components useful:
- ⭐ Star our repositories
- 🐛 Report bugs and suggest features
- 🤝 Contribute code or documentation
- 📢 Share with the ESP32 community
- 🌐 Website: whirlingbits.de
- 📖 Documentation: docs.whirlingbits.de
- 📧 Email: info@whirlingbits.de
- 💬 Discussions: GitHub Discussions
- 🐛 Bug Reports: Issue Tracker