Contributing
Development Setup
Clone Repository
git clone ssh://git@192.168.0.82:10022/floppyrj45/bluerov-slam.git
cd bluerov-slam
Install Dependencies
# Python (for blueos-extension, kogger-viewer)
python3 -m venv venv
source venv/bin/activate
pip install -r blueos-extension/requirements.txt
pip install -r kogger-viewer/requirements.txt
# ESP32 (PlatformIO)
cd esp32-sensor-hub
pio run
# Documentation (Sphinx)
pip install sphinx sphinx-rtd-theme sphinx-autobuild
Code Style
Python
Formatter: Black (line length 100)
Linter: Flake8
Type hints: Optional but recommended
black --line-length 100 *.py
flake8 --max-line-length 100 *.py
C++ (ESP32)
Style: Arduino/PlatformIO conventions
Indentation: 4 spaces
Comments: Document all non-obvious logic
reStructuredText (Docs)
Line length: 100 characters
Headers: Use
=,-,^,"hierarchyCode blocks: Use
.. code-block:: language
Commit Guidelines
Format
type(scope): short description
Longer explanation if needed.
Fixes #123
Types:
feat: New featurefix: Bug fixdocs: Documentation onlyrefactor: Code restructure (no behavior change)test: Add or update testschore: Build, dependencies, tooling
Examples:
feat(esp32): add EZO conductivity sensor support
fix(kogger): handle BB55 wrap-around in ping assembler
docs(api): document MAVLink bridge endpoints
Pull Request Process
Fork the repository
Create feature branch:
git checkout -b feat/my-featureMake changes with descriptive commits
Test thoroughly (local + hardware if applicable)
Update documentation (if user-facing changes)
Push and open Pull Request
Address review feedback
Testing
Unit Tests (Python)
pytest tests/
Hardware Testing
Flash ESP32 firmware
Connect all sensors
Monitor serial output
Verify dashboard displays data
Check WebSocket connections
License
MIT License — Copyright (c) 2026 Baptiste Moulin / Flag Labs