PolarRobotics / PolarRobotics/PR-Lib

Add Bluepad32 and dependencies as IDF components for use in PR-ESPIDFCodebase

Open
#9 0 comments 0 reactions 1 assignee View on GitHub

@Lewisv2 is already working on this.

Since Aug 26, 2026.

enhancement good first issue
Dominant language
C++
Stars
1
Forks
0
Avg merge
3m
Merged PRs (30d)
1

Description

Our current PS5 library (which lives in PR-Lib) is an edited version of a random PS5 ESP32 controller library found here. This is currently functional... but it does not provide many features that would be very useful to drivers, such as lights control to monitor battery levels or other functions on the controller itself, or a vibration when the robot is tackled. These features would be provided by a new, more modern, and fancy library called Bluepad32.

There are a few issues with switching to Bluepad32 however. The library has quite a few dependencies, including btstack. The way that Bluepad32 wants you to use it is by cloning their repo and building your project on top of their template, instead of just importing it as an ESP-IDF component or something much more sensible and easy. This is stupid and we will not do it this way, as it requires us to completely refactor the way our codebase is structured.

Therefore we need to add both Bluepad32, btstack, and any other dependencies directly into PR-Lib so we can create our own ESP-IDF component, similar to how we did with all our other libraries.

  • Make a new branch called dev/bluepad32 based off of dev/main in PR-Lib.
  • Make a new pull request from dev/bluepad32 to dev/main. This tracks your commits to the branch and let's me review and comment on them quickly.
  • Create ESP-IDF components within PR-Lib for bluepad32 and btstack. To do this, pay close attention to how it's done with adafruit_lis3mdl, along with it's dependencies adafruit_busio and adafruit_sensor. Your equivalent is bluepad32 as adafruit_lis3mdl, and btstack as adafruit_busio (the dependency of Bluepad32).
  • Import Bluepad32 and it's dependencies as IDF components in the idf_component.yml file in PR-ESPIDFCodebase.

Implementation of Bluepad32 within the actual codebase is the next step, however this is a new and different problem requiring a separate issue.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.