earlephilhower / arduino-pico

Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards
GNU Lesser General Public License v2.1
2.02k stars 420 forks source link

Feature Request: Increased Joystick sensitivity #2275

Closed Jediknite1101 closed 2 months ago

Jediknite1101 commented 2 months ago

Let me be first to say I am a novice when it comes to microcontrollers and the Arduino IDE. Is it possible to increase the joystick axis sensitivity from 8bit to 16bit? If so is this something that I could possibly modify if I were to branch? I'm building an ASC with high sensitivity encoders that will map to the joystick axis.

Realrobots created a joystick HID library for the official Arduino Pico board manager with those 16bit ranges. Which honestly I'd love to be able to use with your Pico board profile, but there are few core lib differences that prevent his lib from compiling.

earlephilhower commented 2 months ago

It's kind of trivial to turn the gamepad into a 16-bit device, but the current TinyUSB doesn't have helper functions/macros to do so like it does for the 8-bit mode implemented now. A trivial implementation w/Adafruit_TinyUSB can be found at https://gist.github.com/OrhanYigitDurmaz/a37b410e4875a625a515a4def4397046 . Basically the HID descriptor needs to say each axis is 16, not 8 bits.

I'll need to think of a way to make this work w/the existing Joystick. Doing a parallel Joystick16 class would be simplest but have too much code duplication for my liking. But, the 8- or 16-bit choice needs to be determined at compile time since the USB descriptor is created in main() before setup() is ever called...

Jediknite1101 commented 2 months ago

Thank you so much for the update. I appreciate your dedication to the upkeep of your board profiles.

earlephilhower commented 2 months ago

No worries! Your "Thank You" note actually made me realize I needed to update the BT/BLE version as well, thanks! (#2293)