Skip to content

Conversation

@finger563
Copy link
Contributor

@finger563 finger563 commented Sep 22, 2025

Description

  • Update hid-rp submodule to latest to pull in changes / improvements
  • Move Hat into new espp::gamepad namespace to be more easily reused
  • Move Imu data structure from SwitchPro into espp::gamepad namespace to be more easily reused
  • Add input report structures and descriptors for Playstation 5 DualSense controller, esp. when used over Bluetooth.
  • Update hid-rp/example and hid_service/example to better test different input/output/feature reports and show various use cases.

Motivation and Context

Adds another controller type that can be parsed / emulated and improves the examples to show more features of the hid-rp library.

How has this been tested?

Build and run hid-rp/example and hid_service/example on QtPy ESP32-S3 board. Tested with MacOS, iOS, and Windows 11 (via Steam) over BLE to ensure correct parsing of input reports and correct sending of output reports.

Note: I checked the values and debugged the CRC and other parts of the code using the following html+js code:

dualsense-explorer.html.zip

Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Hardware (schematic, board, system design) change
  • Software change

Checklist:

  • My change requires a change to the documentation.
  • I have added / updated the documentation related to this change via either README or WIKI

Software

  • I have added tests to cover my changes.
  • I have updated the .github/workflows/build.yml file to add my new test to the automated cloud build github action.
  • All new and existing tests passed.
  • My code follows the code style of this project.

Copilot AI review requested due to automatic review settings September 22, 2025 21:28
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds PlayStation 5 DualSense Bluetooth HID report descriptors and input report structures to the hid-rp component, significantly expanding gamepad controller support.

  • Adds comprehensive PS5 DualSense BLE controller support with input/output/feature report structures
  • Refactors shared gamepad components (Hat and IMU data structures) into new espp::gamepad namespace for better reusability
  • Updates and improves examples to demonstrate multi-controller emulation capabilities

Reviewed Changes

Copilot reviewed 50 out of 50 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
doc/en/hid/hid-rp.rst Updates documentation to include PS5 DualSense and new gamepad namespace references
doc/Doxyfile Adds new include paths for gamepad namespace and PlayStation components
components/hid_service/example/ Adds configuration options and comprehensive multi-controller example code
components/hid-rp/include/hid/page/ Updates HID page definitions with improved info templates and usage descriptions
components/hid-rp/include/hid-rp-*.hpp Adds PlayStation support, refactors shared components, and improves formatters

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@github-actions
Copy link

github-actions bot commented Sep 22, 2025

✅Static analysis result - no issues found! ✅

@finger563 finger563 merged commit d9b1aec into main Sep 23, 2025
92 of 93 checks passed
@finger563 finger563 deleted the feat/ps5-dualsense-hid-report branch September 23, 2025 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants