PolarRobotics / PolarRobotics/PR-Lib
Add Bluepad32 and dependencies as IDF components for use in PR-ESPIDFCodebase
@Lewisv2 is already working on this.
Since Aug 26, 2026.
- 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/bluepad32based off ofdev/mainin PR-Lib. - Make a new pull request from
dev/bluepad32todev/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
bluepad32andbtstack. To do this, pay close attention to how it's done withadafruit_lis3mdl, along with it's dependenciesadafruit_busioandadafruit_sensor. Your equivalent isbluepad32asadafruit_lis3mdl, andbtstackasadafruit_busio(the dependency of Bluepad32). - Import Bluepad32 and it's dependencies as IDF components in the
idf_component.ymlfile 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.