Skip to content

Contributing to Bluepad32

There a different ways to contribute to the Bluepad32 project, like:

  • Word of mouth
  • and/or improving the documentation
  • and/or filing bugs
  • donations

Here is a detailed list of how you can contribute to the project:

Type Link Rationale
Word of mouth Spread the word in social media, forums, chat, etc The more more, the merrier.
Filing bug reports / feature requests Issue tracker Something not working? Let us know!
Updating documentation Docs Documentation is not clear? Outdated?
Help us improve it
Implementing features / fixing bugs Send a Pull Request Did you find a bug? want to fix it? Great!
Coffee PayPal , Ko-fi , or Venmo I don't drink much coffee,
but I enjoy a morning Hot Chocolate
Donating hardware Wanted hardware We need gamepads, consoles and dev kits.
It could be used hardware, and/or not fully working.
Check link for details.
If in doubt, email unijoysticle@gmail.com.
Purchasing Unijoysticle boards I sell on Tindie Helps funding the project

Running the Unit Tests

Bluepad32 uses ctest for its host testing suite. Before submitting a pull request, run the tests:

# Build and run the core tests
cmake -S tests -B tests/build
cmake --build tests/build
ctest --test-dir tests/build --output-on-failure -V

# Build and run the examples/posix_imgui diagnostic suite
git clone --depth 1 https://github.com/ocornut/imgui.git external/imgui
cmake -S examples/posix_imgui -B examples/posix_imgui/build
cmake --build examples/posix_imgui/build
ctest --test-dir examples/posix_imgui/build --output-on-failure -V

Code Formatting

Bluepad32 enforces clang-format on all C and C++ source code. Please format your code before creating a pull request:

find src/components/bluepad32 examples tests \
    \( -name '*.c' -o -name '*.h' -o -name '*.cpp' \) \
    ! -name 'btstack_config.h' \
    -exec clang-format -i {} +