Skip to content

Conversation

@pastaq
Copy link
Contributor

@pastaq pastaq commented Sep 16, 2025

  • Adds new source device subsystem, tty.
  • Adds driver for OneXPlayer OneXFly F1 and F1 Pro Serial TTY device.
  • Combine the configs for F1 series.

@pastaq pastaq marked this pull request as ready for review November 23, 2025 03:18
@pastaq pastaq requested a review from ShadowApex November 23, 2025 03:18
@pastaq pastaq force-pushed the pastaq/oxp_f1_conf branch from 1f31949 to 084f535 Compare December 6, 2025 02:32
@pastaq pastaq changed the title fix(Hardware): Add Right Paddle support to F1 series, unify config. WIP: feat(TTY): Add Serial TTY interface and OXP F1 Series Serial Driver Dec 6, 2025
@pastaq pastaq marked this pull request as draft December 6, 2025 02:35
@pastaq pastaq force-pushed the pastaq/oxp_f1_conf branch 3 times, most recently from cdef917 to e7202c0 Compare December 8, 2025 02:26
- Adds new source device subsystem, tty.
- Adds driver for OneXPlayer OneXFly F1 and F1 Pro Serial TTY device.
- Unify F1 and F1 Pro into single config.
- Add missing F1 models.
- Add serial tty HID device to config.
- Adjust capability map to add right paddle support if the tty is not
  used.
@pastaq pastaq force-pushed the pastaq/oxp_f1_conf branch from e7202c0 to eb0a9e9 Compare December 8, 2025 04:28
@pastaq pastaq changed the title WIP: feat(TTY): Add Serial TTY interface and OXP F1 Series Serial Driver feat(TTY): Add Serial TTY interface and OXP F1 Series Serial Driver Dec 8, 2025
@pastaq pastaq marked this pull request as ready for review December 8, 2025 04:37
@pastaq
Copy link
Contributor Author

pastaq commented Dec 8, 2025

Some explanation of why this is needed: The F1 series has two extra shoulder buttons (M1/M2). When the MCU is in xinput mode all events flow to the evdev. M1 and M2 are programmable, but only with the limited xinput event set. M2 is set to guide by default and no other button uses guide, but there is no "free" event for M1, leaving it unusable.

There is also a debug TTY mode. Switching to it moves all input to the serial interface (evdev receives no data) and M1 and M2 can be seen directly, along with the mapping of each button. As a side effect the joystick input is very slow compared to the evdev input. My testing shows this produces joystick events at somewhere between 15-20hz. Gameplay seems okay in this mode for platformers, racing, and FPS games, but I'm waiting for internal testing from OXP themselves if this is "acceptable". If not I'll drop the option in the config and reuse the serial port driver to configure M1 and M2, leaving M1 as a duplicate of some other xinput button (A probably).

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.

2 participants