Skip to content

feat(input): add AYANEO Pocket S Mini support - #681

Draft
mydanyi wants to merge 2 commits into
ShadowBlip:mainfrom
mydanyi:feat/ayaneo-pocket-s-mini
Draft

feat(input): add AYANEO Pocket S Mini support#681
mydanyi wants to merge 2 commits into
ShadowBlip:mainfrom
mydanyi:feat/ayaneo-pocket-s-mini

Conversation

@mydanyi

@mydanyi mydanyi commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

I have an AYANEO Pocket S Mini running ROCKNIX. Device support was merged in ROCKNIX/distribution#3177, but its InputPlumber configuration remained distribution-local.

This PR adds:

  • a device profile matched through ayaneo,pocket-s-mini
  • a dedicated aya10 capability map
  • support for AYANEO/DirectInput 4001:0428 and internal XInput 045e:028e
  • face-button translation matching the Xbox-style prompts used by ROCKNIX
  • Guide and Quick Access mappings for the two GPIO system buttons
  • an Xbox Elite virtual controller target

The capability map only contains inputs that differ from InputPlumber's default evdev behavior.

Button mapping

Physical control Source event Virtual output
A / B / X / Y BTN_EAST / BTN_SOUTH / BTN_NORTH / BTN_WEST South / East / West / North
Start / Select BTN_START / BTN_SELECT Start / Select
L1 / R1 BTN_TL / BTN_TR Left / Right bumper
L2 / R2 ABS_BRAKE/GAS in AYANEO mode, ABS_Z/RZ in XInput mode Left / Right trigger
Left and right sticks ABS_X/Y and ABS_RX/RY Left and right sticks
L3 / R3 BTN_THUMBL / BTN_THUMBR Left and right stick click
D-pad ABS_HAT0X/Y D-pad
AYANEO button GPIO KEY_A Guide
Home button GPIO KEY_EQUAL Quick Access

Test environment

  • Device: AYANEO Pocket S Mini
  • Platform: Qualcomm SM8550 / Snapdragon 8 Gen 2
  • OS: ROCKNIX
  • Architecture: native ARM64
  • InputPlumber base: 0.78.1 (23f84b78521a4e12f2ff7b16fa9e0dc03ccb1846)

Validation

  • both YAML files validate against the current upstream schemas
  • the device-tree compatible string and internal XInput physical path match captured retail-device data
  • the equivalent event mappings were verified on a retail Pocket S Mini in both ROCKNIX and Steam
  • A/B/X/Y matched the on-screen prompts
  • AYANEO and Home buttons worked as Guide and Quick Access
  • git diff --check passes

Known limitation

LC and RC remain unmapped because their source events have not been verified.

Related downstream work

AI disclosure

I used OpenAI Codex (GPT-5) to compare the hardware-validated ROCKNIX configuration with current InputPlumber conventions, prepare the initial YAML changes, and run validation. I reviewed the complete final diff against the captured device data and the merged downstream configuration.

Add a device-tree matched profile for the AYANEO Pocket S Mini.

Normalize its Nintendo-labeled face buttons to positional outputs, map the DirectInput triggers, and expose the two GPIO system buttons. Support both the AYANEO DirectInput and internal XInput controller modes.

AI assistance: OpenAI Codex (GPT-5) compared the downstream ROCKNIX profile with current upstream patterns, drafted the YAML changes, and ran validation checks. I reviewed the complete diff against the captured device data and the merged downstream configuration.
Use the physical A, B, X, Y, AYANEO, and Home control names so each mapping can be identified without relying on its virtual output.

AI assistance: OpenAI Codex (GPT-5) compared these descriptions with the naming convention established in InputPlumber#670. I reviewed the complete five-line naming-only diff.
@pastaq
pastaq marked this pull request as draft September 2, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant