Skip to content

Raspberry Pi Pico Firmware for a SDVX or IIDX controller setup. Supports 11 buttons, 10 LEDs, 1 WS2812B strip, and 2 encoders.

License

Notifications You must be signed in to change notification settings

VeyPatch/Pico-Game-Controller-Own

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pico-Game-Controller

This branch was developed with SDVX in mind. Capable of handling 7 LEDs, 1 WS2812B RGB strip, and 2 encoders.

Demo of this firmware running on Pocket SDVX Pico v4, 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:

Build:

  • Go to create build folder
  • Go to build folder
  • export PICO_SDK_PATH=../../pico-sdk
  • cmake ..
  • make -j4
  • files in build/src/

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:

About

Raspberry Pi Pico Firmware for a SDVX or IIDX controller setup. Supports 11 buttons, 10 LEDs, 1 WS2812B strip, and 2 encoders.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 89.2%
  • CMake 10.8%