Contributing to OSSM (Open Source Sex Machine)

Welcome to the OSSM project, run by the Kinky Makers! We’re excited to have you contribute to the world’s most open, hackable, and community-driven sex machine. Please read this guide to help you get started and make your contributions as smooth as possible.

📚 Project Overview

🚀 Getting Started

  1. Fork the repository and clone it to your local machine:

    git clone https://github.com/YOUR-USERNAME/OSSM-hardware.git
    cd OSSM-hardware/Software
  2. Install dependencies:

  3. Set up your environment:

    • PlatformIO: Open the Software folder in VSCode and install the PlatformIO extension.

    • Arduino IDE: Open the .ino file in src/ and copy libraries from lib/ to your Arduino libraries folder.

    • See Software/README.md for more details.

🧑‍💻 Coding Standards

  • C++ Formatting:

    • Code must be formatted using clang-format (see .clang-format in Software/).

    • Pre-commit hooks are set up via .pre-commit-config.yaml to enforce formatting. Install with:

      pip install pre-commit
      pre-commit install
  • EditorConfig:

    • The project uses .editorconfig for consistent indentation, line endings, and file encoding.

  • General Guidelines:

    • Write clear, descriptive commit messages.

    • Comment your code where necessary.

    • Follow existing code structure and naming conventions.

🧪 Testing

  • Test Framework: Unity (for C++)

  • Test Structure:

    • Add new tests in Software/test/ as a new directory: test_<feature>

    • Each test directory should have a main.cpp file. See Software/test/README.md for a template.

  • Running Tests:

    • From the Software directory, run:

      pio test -e test

🌳 Branching & Pull Requests

  • Branching:

    • Follow the Git Branching Strategy if contributing regularly.

    • For small fixes, branch from main or the latest development branch.

  • Pull Requests:

    1. Ensure your branch is up to date with the latest main.

    2. Run all tests and ensure they pass.

    3. Open a pull request with a clear description of your changes and reference any related issues.

    4. Be responsive to code review feedback.

🛟 Getting Help

💡 Tips for Contributors

  • Be respectful and inclusive—this is a diverse, welcoming community.

  • If you’re unsure, open a draft PR or ask in Discord before spending lots of time on a big change.

  • Hardware, software, and documentation contributions are all welcome!

Thank you for helping make OSSM better for everyone!

Last updated