[Keyboard] Add PicoLX (#26220)

This commit is contained in:
Jon Colverson
2026-05-23 23:45:12 +01:00
committed by GitHub
parent 316fc06d8c
commit 12e5b7db97
10 changed files with 349 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
{
"manufacturer": "dj505",
"keyboard_name": "PicoLX",
"maintainer": "jjc1138",
"bootloader": "rp2040",
"bootloader_instructions": "Hold down the BOOTSEL button on the underside of the PCB when connecting the USB cable",
"features": {
"bootmagic": true,
"extrakey": true,
"rgb_matrix": true
},
"matrix_pins": {
"direct": [
["GP24", null, "GP22", "GP4", null, "GP0"],
[null, "GP23", null, null, "GP3", null],
["GP19", null, "GP18", "GP2", null, "GP1"],
["GP12", "GP13", 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
},
"default": {
"animation": "gradient_up_down",
"hue": 176,
"speed": 254,
"val": 64
},
"driver": "ws2812",
"layout": [
{"x": 112, "y": 0, "flags": 2},
{"x": 0, "y": 0, "flags": 2},
{"x": 0, "y": 64, "flags": 2},
{"x": 112, "y": 64, "flags": 2},
{"x": 224, "y": 64, "flags": 2},
{"x": 224, "y": 0, "flags": 2},
{"matrix": [0, 5], "x": 212, "y": 18, "flags": 4},
{"matrix": [2, 5], "x": 212, "y": 57, "flags": 4},
{"matrix": [1, 4], "x": 174, "y": 37, "flags": 4},
{"matrix": [2, 3], "x": 136, "y": 57, "flags": 4},
{"matrix": [0, 3], "x": 136, "y": 18, "flags": 4},
{"matrix": [0, 2], "x": 88, "y": 18, "flags": 4},
{"matrix": [2, 2], "x": 88, "y": 57, "flags": 4},
{"matrix": [1, 1], "x": 50, "y": 37, "flags": 4},
{"matrix": [2, 0], "x": 12, "y": 57, "flags": 4},
{"matrix": [0, 0], "x": 12, "y": 18, "flags": 4},
{"x": 131, "y": 32, "flags": 2},
{"x": 112, "y": 32, "flags": 2},
{"x": 94, "y": 32, "flags": 2}
],
"sleep": true
},
"url": "https://github.com/dj505/PicoLX",
"usb": {
"device_version": "1.0.0",
"pid": "0x4C58",
"vid": "0xFEED"
},
"ws2812": {
"driver": "vendor",
"pin": "GP21"
},
"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}
]
}
}
}
@@ -0,0 +1,26 @@
{
"keyboard": "dj505/picolx",
"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"
]
]
}
@@ -0,0 +1,21 @@
# PicoLX 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
```
@@ -0,0 +1,16 @@
{
"keyboard": "dj505/picolx",
"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"
]
]
}
@@ -0,0 +1,12 @@
# PicoLX 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
```
@@ -0,0 +1,36 @@
{
"keyboard": "dj505/picolx",
"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"
]
]
}
@@ -0,0 +1,28 @@
# PicoLX 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.
@@ -0,0 +1,36 @@
{
"keyboard": "dj505/picolx",
"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)"
],
[
"RM_HUEU", "RM_SATU", "RM_VALU", "RM_SPDU",
"RM_PREV", "RM_NEXT",
"RM_HUED", "RM_SATD", "RM_VALD", "RM_SPDD",
"KC_TRNS", "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"
]
]
}
@@ -0,0 +1,24 @@
# PicoLX RGB Mode Keymap
The 'rgbmode' keymap is like the 'default' keymap, but with a mode for experimenting with RGB settings. Your RGB settings will be retained if you use the keyboard shortcut described below to enter bootloader mode and install a different firmware version. If you hold down the top-left key when plugging in the USB cable, then that will reset your RGB settings.
The keymap in normal mode:
```
Q E R Y
S G
Z C V N
Test: Toggle to RGB mode
```
And when in RGB mode:
```
Hue ↑ Saturation ↑ Value ↑ Speed ↑
Previous Next
Animation Animation
Hue ↓ Saturation ↓ Value ↓ Speed ↓
Test: Toggle back to game mode
```
In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions.
+35
View File
@@ -0,0 +1,35 @@
# dj505/picolx
![PicoLX controller](https://i.imgur.com/BHRRYl3.jpeg)
PicoLX: 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: [PicoLX](https://github.com/dj505/PicoLX)
* Keyboard Maintainer: [jjc1138](https://github.com/jjc1138)
Make example for this keyboard (after setting up your build environment):
make dj505/picolx:default
Flashing example for this keyboard:
make dj505/picolx: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 four keymaps provided.
* [default](keymaps/default/readme.md)
* [menumode](keymaps/menumode/readme.md)
* [allinone](keymaps/allinone/readme.md)
* [rgbmode](keymaps/rgbmode/readme.md)
### Bootloader
Put the controller in bootloader mode in one of three ways:
* **Physical reset button**: Hold down the BOOTSEL button on the underside of the PCB (by poking something through the hole on the bottom of the case) 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', 'rgbmode', 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.