This is the firmware for the minipad, an RP2040-based 2-to-3-key keypad for the rhythm game osu!. This firmware is designed specifically to work with our open-source PCB, which can be found here.
Although this firmware is made for aforementioned PCB, it can be used for different kinds of (hall effect) keypad/keyboard projects due to it's support of both digital and hall effect buttons, as well as no real limitation on how many keys to use. Support for multiplexing is planned but has not started development.
- An unlimited amount of Hall Effect or Digital keys
- Rapid Trigger (explained here) with 0.01mm resolution
- Flexible, configurable travel distance of switches
- Adjustable actuation point (0.01mm resolution)
- Software-based low pass filter for analog stability
- Configurable keychar pressed upon key interaction
- Support for RGB lights, including configurable colors and effects
- Usage of multiplexers to allow for more keys to be used on the hardware
To flash this firmware on your minipad or other RP2040 board, please refer to our firmware installation guide. In there, you can find the instructions on how to initially load the firmware on the keypad, and how to update it later on.
Setting up this project is really simple. The repository is set up using PlatformIO, an IDE in form of an extension for Visual Studio Code.
You can find a download link for Visual Studio Code here. In there, search and install the extension PlatformIO.
After that is done, clone the repository with git clone https://github.com/minipadkb/minipad-firmware and open the cloned folder using Visual Studio Code. PlatformIO will perform an installation of all dependencies for this project (Arduino-Pico framework, various drivers, ...). This might take up some time, depending on your network connection.
If you are not familiar with the usage of PlatformIO, a Quick Start guide can be found here.
Note: Uploading the firmware only works if the micro controller is set into bootloader mode. This can be done using the BOOTSEL button on development boards or setting the minipad into bootloader mode via minitility. A guide on the latter can be found here.
arduino-pico by minipadkb, fork of arduino-pico by earlephilhower, distributed under LGPL v2.1
Keyboard by minipadkb, fork of Keyboard by earlephilhower, distributed under LGPL v3.0
pico-sdk by minipadkb, fork of pico-sdk by raspberry, distributed under BSD-3-Clause
Keyboard by minipadkb, fork of Keyboard by earlephilhower, distributed under LGPL v3.0