[Keyboard] Add PicoFX (#25704)

This commit is contained in:
Jon Colverson 2025-12-08 20:31:24 +00:00 committed by GitHub
parent de8f05b4c3
commit 107812ceef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 269 additions and 0 deletions

View file

@ -0,0 +1,96 @@
{
"manufacturer": "dj505",
"keyboard_name": "PicoFX",
"maintainer": "jjc1138",
"bootloader": "rp2040",
"bootloader_instructions": "Hold down the BOOTSEL button on the microcontroller when connecting the USB cable",
"features": {
"bootmagic": true,
"extrakey": true,
"rgb_matrix": true
},
"matrix_pins": {
"direct": [
["GP19", null, "GP6", "GP27", null, "GP0"],
[null, "GP10", null, null, "GP2", null],
["GP21", null, "GP8", "GP17", null, "GP4"],
["GP14", "GP15", null, null, null, null]
]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_splash": true,
"splash": true
},
"driver": "ws2812",
"layout": [
{"x": 0, "y": 64, "flags": 2},
{"x": 0, "y": 0, "flags": 2},
{"x": 112, "y": 0, "flags": 2},
{"x": 112, "y": 64, "flags": 2},
{"x": 224, "y": 64, "flags": 2},
{"x": 224, "y": 0, "flags": 2}
],
"sleep": true
},
"url": "https://github.com/dj505/PicoFX",
"usb": {
"device_version": "1.0.0",
"pid": "0x4658",
"vid": "0xFEED"
},
"ws2812": {
"driver": "vendor",
"pin": "GP22"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "P1 UL", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "P1 UR", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "P2 UL", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "P2 UR", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "P1 CN", "matrix": [1, 1], "x": 1, "y": 1},
{"label": "P2 CN", "matrix": [1, 4], "x": 4, "y": 1},
{"label": "P1 DL", "matrix": [2, 0], "x": 0, "y": 2},
{"label": "P1 DR", "matrix": [2, 2], "x": 2, "y": 2},
{"label": "P2 DL", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "P2 DR", "matrix": [2, 5], "x": 5, "y": 2},
{"label": "Service", "matrix": [3, 0], "x": 6.5, "y": 0.5},
{"label": "Test", "matrix": [3, 1], "x": 6.5, "y": 1.5}
]
}
}
}

View file

@ -0,0 +1,26 @@
{
"keyboard": "dj505/picofx",
"keymap": "allinone",
"layout": "LAYOUT",
"layers": [
[
"KC_Q", "KC_E", "KC_TAB", "KC_UP",
"KC_X", "KC_G",
"KC_A", "KC_D", "KC_SPC", "KC_DOWN",
"LT(1,KC_ESC)", "KC_ENT"
],
[
"KC_F1", "KC_F2", "KC_F5", "KC_F6",
"KC_TRNS", "KC_TRNS",
"KC_F3", "KC_F4", "KC_F7", "KC_F8",
"KC_TRNS", "QK_BOOT"
]
]
}

View file

@ -0,0 +1,21 @@
# PicoFX All-in-one Keymap
The 'allinone' keymap puts most of the buttons that you need for navigating the Pump It Up Rise menus in the main mode. If you configure the game to use those buttons for gameplay as well, then you can play the game and navigate most of the menus without having to switch modes.
```
Q E Tab Up
X G
A D Space Down
Service: Esc when tapped, or temporarily activates the mode below when held
Test: Enter
```
When Service is held the buttons have these meanings instead:
```
F1 F2 F5 F6
- -
F3 F4 F7 F8
Test: Bootloader mode
```

View file

@ -0,0 +1,16 @@
{
"keyboard": "dj505/picofx",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
[
"KC_Q", "KC_E", "KC_R", "KC_Y",
"KC_S", "KC_G",
"KC_Z", "KC_C", "KC_V", "KC_N",
"KC_ESC", "KC_ENT"
]
]
}

View file

@ -0,0 +1,12 @@
# PicoFX Default Keymap
The default keymap matches the 'Basic 2' preset in Pump It Up Rise. In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the matching preset.
```
Q E R Y
S G
Z C V N
Service: Escape
Test: Enter
```

View file

@ -0,0 +1,36 @@
{
"keyboard": "dj505/picofx",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
[
"KC_Q", "KC_E", "KC_R", "KC_Y",
"KC_S", "KC_G",
"KC_Z", "KC_C", "KC_V", "KC_N",
"MO(2)", "TG(1)"
],
[
"KC_Q", "KC_E", "KC_TAB", "KC_UP",
"KC_ESC", "KC_ENT",
"KC_LEFT", "KC_RGHT", "KC_SPC", "KC_DOWN",
"LT(2,KC_F1)", "KC_TRNS"
],
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "QK_BOOT"
]
]
}

View file

@ -0,0 +1,28 @@
# PicoFX Menu Mode Keymap
The 'menumode' keymap is like the 'default' keymap in that it matches the 'Basic 2' preset in Pump It Up Rise, but it also includes the ability the toggle into a menu mode that provides most of the keys you need to navigate the game's menus.
In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the 'Basic 2' preset.
The keymap in normal mode:
```
Q E R Y
S G
Z C V N
Test: Toggle to menu mode
```
And when in menu mode:
```
Q E Tab Up
Esc Enter
Left Right Space Down
Service: F1
Test: Toggle back to game mode
```
It might take a little bit of practice to remember where everything is in menu mode. The rule of thumb is that the layout roughly corresponds to where those controls appear on the game's song selection screen.
In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions.

View file

@ -0,0 +1,34 @@
# dj505/picofx
![PicoFX controller](https://i.imgur.com/YNsJPg0.png)
PicoFX: A compact keyboard-style controller for the *Pump It Up* rhythm game series. This firmware is intended for using the controller with the [Pump It Up Rise](https://store.steampowered.com/app/2756930/PUMP_IT_UP_RISE/) home version of the game.
* Hardware Supported: [PicoFX](https://github.com/dj505/PicoFX)
* Keyboard Maintainer: [jjc1138](https://github.com/jjc1138)
Make example for this keyboard (after setting up your build environment):
make dj505/picofx:default
Flashing example for this keyboard:
make dj505/picofx:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Keymaps
There are three keymaps provided, or you can build your own using the instructions below.
* [default](keymaps/default/readme.md)
* [menumode](keymaps/menumode/readme.md)
* [allinone](keymaps/allinone/readme.md)
### Bootloader
Put the controller in bootloader mode in one of three ways:
* **Physical reset button**: Hold down the BOOTSEL button on the microcontroller when connecting the USB cable.
* **Bootmagic reset**: If a version of this firmware is already installed, hold down the top-left button on the keyboard when connecting the USB cable.
* **Keycode in keymap**: If a version of this firmware is already installed with the 'menumode' or 'allinone' keymap, hold down the Service button and press the Test button. Or press a button mapped to `QK_BOOT` in your own keymap.