Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade (#24880)

Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
ploopyco 2025-02-21 03:01:29 -05:00 committed by GitHub
parent 2f27b3dc78
commit 50967dbe7e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 311 additions and 99 deletions

View File

@ -18,11 +18,6 @@
#pragma once
// These pins are not broken out, and cannot be used normally.
// They are set as output and pulled high, by default
#define UNUSABLE_PINS \
{ B4, D6, F1, F5, F6, F7 }
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
@ -30,13 +25,7 @@
// #define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_BUTTON_COL 1
#define ENCODER_BUTTON_ROW 0
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -1,6 +1,6 @@
{
"keyboard_name": "Mouse",
"manufacturer": "PloopyCo",
"manufacturer": "Ploopy",
"url": "www.ploopy.co",
"maintainer": "drashna",
"usb": {
@ -9,6 +9,9 @@
"device_version": "0.0.1",
"max_power": 100
},
"bootmagic": {
"matrix": [0, 3]
},
"features": {
"bootmagic": true,
"extrakey": true,
@ -17,28 +20,6 @@
"pointing_device": true,
"encoder": true
},
"bootmagic": {
"matrix": [0, 3]
},
"ws2812": {
"pin": "B5"
},
"rgblight": {
"led_count": 4,
"max_brightness": 40,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"matrix_pins": {
"direct": [
["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"]
]
},
"encoder": {
"driver": "custom"
},

View File

@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = pmw3360

View File

@ -6,14 +6,14 @@ It's a DIY, QMK Powered Mouse!!!!
* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/)
* Hardware Supported: ATMega32u4 8MHz(3.3v)
* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040
* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco)
Make example for this keyboard (after setting up your build environment):
make ploopyco/mouse:default:flash
To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side)
To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side)
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).

View File

@ -0,0 +1,33 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
* Copyright 2020 Ploopy Corporation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// These pins are not broken out, and cannot be used normally.
// They are set as output and pulled high, by default
#define UNUSABLE_PINS \
{ B4, D6, F1, F5, F6, F7 }
// If board has a debug LED, you can enable it by defining this
// #define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -0,0 +1,21 @@
{
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"matrix_pins": {
"direct": [
["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"]
]
},
"ws2812": {
"pin": "B5"
},
"rgblight": {
"led_count": 3,
"max_brightness": 40,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true
}
}
}

View File

@ -0,0 +1,3 @@
See the [main readme](../readme.md) for more details.
This is for the R1.002 version of the Mouse. It's easily distinguishable from the R1.003+ versions of the Mouse because it has an ATmega32u4 on the board.

View File

@ -1,4 +1,2 @@
# Processor frequency
F_CPU = 8000000
POINTING_DEVICE_DRIVER = pmw3360

View File

@ -0,0 +1,32 @@
/* Copyright 2024 Colin Lam (Ploopy Corporation)
* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define UNUSABLE_PINS \
{ GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP16, GP18, GP20, GP25, GP27, GP29 }
/* PMW3360 Settings */
#define PMW33XX_LIFTOFF_DISTANCE 0x00
#define PMW33XX_CS_PIN GP5
#define SPI_SCK_PIN GP2
#define SPI_MISO_PIN GP0
#define SPI_MOSI_PIN GP7
#define ENCODER_A_PINS { GP26 }
#define ENCODER_B_PINS { GP28 }

View File

@ -0,0 +1,25 @@
{
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.0.0"
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"direct": [
["GP15", "GP21", "GP23", "GP17", "GP19", "GP22", "GP14", "GP24"]
]
},
"rgblight": {
"led_count": 1,
"max_brightness": 40,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true
}
},
"ws2812": {
"pin": "GP12"
}
}

View File

@ -0,0 +1,3 @@
See the [main readme](../readme.md) for more details.
This is for the R1.003+ version of the Mouse. It's easily distinguishable from the previous versions of the Mouse because it has an RP2040 on the board.

View File

@ -23,20 +23,11 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* PMW3360 settings */
#define ROTATIONAL_TRANSFORM_ANGLE 20
// If board has a debug LED, you can enable it by defining this
// #define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define POINTING_DEVICE_INVERT_Y
#define ENCODER_BUTTON_COL 1
#define ENCODER_BUTTON_ROW 0
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -1,6 +1,6 @@
{
"keyboard_name": "Trackball",
"manufacturer": "PloopyCo",
"keyboard_name": "Classic Trackball",
"manufacturer": "Ploopy",
"url": "www.ploopy.co",
"maintainer": "drashna",
"usb": {
@ -12,7 +12,6 @@
"bootmagic": {
"matrix": [0, 3]
},
"features": {
"bootmagic": true,
"extrakey": true,

View File

@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = pmw3360

View File

@ -1,27 +1,34 @@
# Ploopyco Trackball
# Ploopy Classic Trackball
![Ploopyco Trackball](https://i.redd.it/j7z0y83txps31.jpg)
![Ploopy Trackball](https://i.redd.it/j7z0y83txps31.jpg)
It's a DIY, QMK Powered Trackball!!!!
* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/)
* Hardware Supported: ATMega32u4 8MHz(3.3v)
* Keyboard Maintainer: [Ploopy](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/)
* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040
* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco)
Make example for this keyboard (after setting up your build environment):
make ploopyco/trackball/rev1:default:flash
make ploopyco/trackball/rev1_004:default:flash
make ploopyco/trackball/rev1_005:default:flash
To jump to the bootloader, hold down "Button 4" (immediate right of the trackball)
make ploopyco/trackball/rev1_007:default:flash
To jump to the bootloader, hold down "Button 4" (immediate right of the trackball)
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).
## Revisions
There are two main revisions for the PloopyCo Trackball, everything up to 1.004, and 1.005-1.006.
There are three main revisions for the Ploopy Classic Trackball:
In the 1.005 revision, button for was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5.
- Everything up to 1.004 (very rare)
- Revision 1.005 and 1.006 (commonly sold between 2020 and 2024)
- Revision 1.007 (first available in 2025)
In the 1.005 revision, button four was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5.
In the 1.007 revision, the board was switched from an ATMega32u4 architecture to the Raspberry RP2040 architecture.
The PCB should indicate which revision this is.

View File

@ -25,3 +25,9 @@
// If board has a debug LED, you can enable it by defining this
#define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -0,0 +1,2 @@
# Processor frequency
F_CPU = 8000000

View File

@ -22,3 +22,12 @@
// They are set as output and pulled high, by default
#define UNUSABLE_PINS \
{ D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 }
// If board has a debug LED, you can enable it by defining this
// #define DEBUG_LED_PIN F7
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -1,3 +1,3 @@
See the [main readme](../readme.md) for more details.
See the [main readme](../readme.md) for more details.
This is just the rev 1.005+ trackball
This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board.

View File

@ -0,0 +1,2 @@
# Processor frequency
F_CPU = 8000000

View File

@ -0,0 +1,32 @@
/* Copyright 2024 Colin Lam (Ploopy Corporation)
* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define UNUSABLE_PINS \
{ GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP27, GP29 }
/* PMW3360 Settings */
#define PMW33XX_LIFTOFF_DISTANCE 0x00
#define PMW33XX_CS_PIN GP5
#define SPI_SCK_PIN GP2
#define SPI_MISO_PIN GP0
#define SPI_MOSI_PIN GP7
#define ENCODER_A_PINS { GP26 }
#define ENCODER_B_PINS { GP28 }

View File

@ -0,0 +1,25 @@
{
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.0.0"
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"direct": [
["GP15", "GP21", "GP23", "GP17", "GP19"]
]
},
"rgblight": {
"led_count": 1,
"max_brightness": 40,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true
}
},
"ws2812": {
"pin": "GP12"
}
}

View File

@ -0,0 +1,3 @@
See the [main readme](../readme.md) for more details.
This is for the R1.007+ version of the Classic. It's easily distinguishable from the previous versions of the Classic because it has an RP2040 on the board.

View File

@ -1,6 +0,0 @@
# Processor frequency
F_CPU = 8000000
POINTING_DEVICE_DRIVER = pmw3360
DEFAULT_FOLDER = ploopyco/trackball/rev1_005

View File

@ -29,9 +29,6 @@
// If board has a debug LED, you can enable it by defining this
// #define DEBUG_LED_PIN F7
/* PMW3360 Settings */
#define POINTING_DEVICE_CS_PIN B0
#define ENCODER_BUTTON_COL 1
#define ENCODER_BUTTON_ROW 0
@ -41,6 +38,3 @@
#define ENCODER_HIGH_THRES_B 90
/* Custom encoder needs to specify just how many encoders we have */
#define NUM_ENCODERS 1
#define ENCODER_A_PINS { F4 }
#define ENCODER_B_PINS { F0 }

View File

@ -1,22 +1,22 @@
{
"keyboard_name": "PloopyCo Thumb Trackball",
"keyboard_name": "Thumb Trackball",
"manufacturer": "Ploopy",
"url": "www.ploopy.co",
"maintainer": "ploopyco",
"manufacturer": "Ploopy Corporation",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"usb": {
"vid": "0x5043",
"pid": "0x5C46",
"device_version": "0.0.1",
"max_power": 100
},
"bootmagic": {
"matrix": [0, 3]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"nkro": false,
"pointing_device": true,
"encoder": true
},

View File

@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = pmw3360

View File

@ -3,13 +3,13 @@
It's a DIY, QMK Powered Trackball...for thumb ballers!
* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/)
* Hardware Supported: ATMega32u4 8MHz(3.3v)
* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040
* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco)
Make example for this keyboard (after setting up your build environment):
make ploopyco/trackball_thumb/rev1_001:default:flash
To jump to the bootloader, hold down "Button 4" (button closest to the USB port).
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).

View File

@ -22,3 +22,9 @@
// They are set as output and pulled high, by default
#define UNUSABLE_PINS \
{ D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 }
/* PMW33XX Settings */
#define PMW33XX_CS_PIN B0
#define ENCODER_A_PINS { F0 }
#define ENCODER_B_PINS { F4 }

View File

@ -1,13 +1,14 @@
{
"usb": {
"device_version": "1.0.0"
},
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"matrix_pins": {
"direct": [
["D5", "B6", "D4", "D2", "E6", "D7"]
]
},
"ws2812": {
"pin": "B5"
},
"rgblight": {
"led_count": 3,
"max_brightness": 40,
@ -16,8 +17,5 @@
"rainbow_mood": true,
"rainbow_swirl": true
}
},
"ws2812": {
"pin": "B5"
}
}

View File

@ -1,3 +1,3 @@
This is the R1.001+ version of the Thumb. Future versions may have other features.
See the [main readme](../readme.md) for more details.
See the [main readme](../readme.md) for more details.
This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board.

View File

@ -0,0 +1,2 @@
# Processor frequency
F_CPU = 8000000

View File

@ -0,0 +1,32 @@
/* Copyright 2024 Colin Lam (Ploopy Corporation)
* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
* Copyright 2019 Sunjun Kim
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define UNUSABLE_PINS \
{ GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP18, GP20, GP22, GP24, GP25, GP27, GP29 }
/* PMW3360 Settings */
#define PMW33XX_LIFTOFF_DISTANCE 0x00
#define PMW33XX_CS_PIN GP5
#define SPI_SCK_PIN GP2
#define SPI_MISO_PIN GP0
#define SPI_MOSI_PIN GP7
#define ENCODER_A_PINS { GP28 }
#define ENCODER_B_PINS { GP26 }

View File

@ -0,0 +1,25 @@
{
"processor": "RP2040",
"bootloader": "rp2040",
"usb": {
"device_version": "1.0.0"
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"direct": [
["GP17", "GP16", "GP15", "GP21", "GP23", "GP19"]
]
},
"rgblight": {
"led_count": 1,
"max_brightness": 40,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true
}
},
"ws2812": {
"pin": "GP12"
}
}

View File

@ -0,0 +1,3 @@
See the [main readme](../readme.md) for more details.
This is for the R1.002+ version of the Thumb. It's easily distinguishable from the previous versions of the Thumb because it has an RP2040 on the board.

View File

@ -1,6 +0,0 @@
# Processor frequency
F_CPU = 8000000
POINTING_DEVICE_DRIVER = pmw3360
DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001