Alternative firmware for the minipad
This firmware unlike the official doesn't bind keys 1 to 1, it uses key sequences for typing.
- unlimited keys via sequences,
- rapid trigger,
- configuration via serial.
Download a release or build:
cargo build --release
cd target/thumbv6m-none-eabi/release
elf2uf2-rs owopad
And flash:
picotool load owopad.uf2
picotool reboot
By default there are no defined keybinds
There is a utility for configuration: OwOtility
All returned numbers are in little endian
Save current binds and key configuration to flash
Puts the keypad into BOOTSEL mode
Sends back whatever you tell it to
Sends last adc readings as [u16; 3]
Sends last calculated key depth as [u16; 3]
Sends firmware constants [NODE_COUNT, SWITCH_TRAVEL, AUTOCALIBRATION_DEADZONE]
as [u16; 3]
Sends last main loop time as u64
Clears all keybinds
Resets key configuration
Sends key configuration as [KeyConfig; 3] where KeyConfig:
struct KeyConfig {
rt_up: u16,
rt_down: u16,
min: u16,
max: u16,
}
Sends the table of nodes which is the tree representing keybinds as [Node; 1024] where Node:
struct Node {
children: [u16; 3],
key: Option<Keyboard>, // usb hid scancode
}
Sets config property k
of key of id i
(zero-indexed) to v
Sets sequence seq
(keys, e.g. LRM
for a seqence of: left key, right key, middle key) to correspond to key k
. Besides the obvious characters k
can be:
F<1..=12>
for function keys,_RIGHT
,_LEFT
,_UP
,_DOWN
for arrows,- self explanatory:
_ENTER
,_ESC
,_TAB
,_BACKSP
,_CAPS
,_PS
,_INS
,_HOME
,_PGUP
,_DEL
,_END
,_PGDOWN
,_LCTRL
,_LSHIFT
,_LALT
,_RCTRL
,_RSHIFT
,_RALT
.