Thank you for your interest in contributing to ODStepper! This document provides guidelines for contributing to the project.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- Clear and descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Hardware setup (microcontroller, stepper driver model, wiring)
- Code snippet demonstrating the issue
- Error messages or debug output
Enhancement suggestions are welcome! Please provide:
- Clear and descriptive title
- Detailed explanation of the proposed feature
- Use case scenarios
- Code examples of how the feature would be used
- Any potential drawbacks or compatibility concerns
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly on actual hardware
- Update documentation if needed
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Keep changes focused and atomic
- Follow the existing code style
- Update the README.md if adding new features
- Add examples if introducing new functionality
- Ensure all examples compile on supported platforms
- Test on ESP32 (primary platform) and at least one other platform
- Update CHANGELOG.md with your changes
- Use clear, descriptive variable names
- Comment complex logic
- Keep functions focused and small
- Follow Arduino library conventions
- Maintain compatibility with FastAccelStepper API
Before submitting:
- Test all examples compile without warnings
- Test on real hardware with actual stepper motors
- Verify open-drain functionality on ESP32
- Check standard output mode on non-ESP32 platforms
- Test with common stepper drivers (A4988, DRV8825, TMC series)
- Update inline code comments
- Keep README.md examples working and up-to-date
- Document any new public methods or constants
- Add entries to keywords.txt for syntax highlighting
Feel free to open an issue for any questions about contributing.
By contributing, you agree that your contributions will be licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).
Contributors retain copyright to their contributions but grant a license to the project maintainers for both non-commercial and commercial use.