huantian 2f00d9d6ac fix: stop button 8 from being always activated
It seems that because the unused button 8 needed for infinitas spoof
was the same pin as an LED pin, it could sometimes be always activated
for some users. We switch it to unused pins to stop this from happening.
2024-12-15 13:00:50 -08:00
2022-08-18 21:45:42 -04:00
2021-09-16 01:41:48 -04:00
2022-08-18 21:45:42 -04:00

Pico-Game-Controller

This branch was developed with IIDX in mind. Capable of handling 11 buttons, 11 LEDs, 1 WS2812B RGB strip, and 1 encoder. Note: 12 buttons/LEDs are reported but B8 should probably not be used (https://github.com/veroxzik/arduino-konami-spoof)

Demo of this firmware running on Pocket SDVX Pico, purchasable at https://discord.gg/MmuKd73XbY

Pocket SDVX Pico

Currently working/fixed:

  • Gamepad mode - default boot mode
  • NKRO Keyboard & Mouse Mode - hold first button(gpio4) to enter kb mode
  • HID LEDs with Reactive LED fallback
  • ws2812b rgb on second core
  • 2 ws2812b hid descriptor zones
  • sdvx/iidx spoof - Tested on EAC - checkout branches release/pocket-sdvx-pico or release/pocket-iidx
  • 1000hz polling
  • Reversable Encoders with debouncing
  • Switch debouncing
  • Switch and LED pins are now staggered for easier wiring
  • Fix 0-~71% encoder rollover in gamepad mode, uint32 max val isn't divisible evenly by ppr*4 for joystick - thanks friends
  • HID LEDs now have labels, thanks CrazyRedMachine
  • refactor ws2812b into a seperate file for cleaner code & implement more RGB modes (added turbocharger mode) - hold second button (gpio 6) to swap to turbocharger mode; hold 9th button (gpio 20) to turn off RGB
  • refactor debouncing algorithms into separate files for cleaner code

TODO:

How to Use:

  • For basic flashing, see README in build_uf2
  • Otherwise, setup the C++ environment for the Pi Pico as per https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf
  • Build pico-examples directory once to ensure all the tinyusb and other libraries are there. You might have to move the pico-sdk folder into pico-examples/build for it to play nice.
  • Move pico-sdk back outside to the same level directory as Pico-Game-Controller.
  • Open Pico-Game-Controller in VSCode(assuming this is setup for the Pi Pico) and see if everything builds.
  • Tweakable parameters are in controller_config.h

Thanks to:

S
Description
Raspberry Pi Pico Firmware for a SDVX or IIDX controller setup. Supports 11 buttons, 10 LEDs, 1 WS2812B strip, and 2 encoders.
Readme GPL-3.0
24 MiB
Languages
C 85.7%
CMake 14.3%