Releases: picoruby/prk_firmware
VIA! VIA!! VIA!!!
Software BOOTSEL reset, Debounce and 4KB limitation lifted
Software rebooting into BOOTSEL mode 😍
- Now you can reboot RP2040 into BOOTSEL mode by pressing a key where you planted! See wiki/BOOTSEL mode of RP2040
Debounce 🤹
- Introduces debounce feature. See wiki/Debounce for details
4KB limitation lifted 🤸
- The limitation of the maximum size of keymap.rb is lifted. Now it's 10KB (used to be 4KB)
Bug fix (again) 🤞
Bug fix 🐛
Duplex matrix 😎
The duplex matrix, a long-awaited feature, is finally out!
Now we encourage you to make a duplex matrix or even a round-robin matrix keyboard with Seeed XIAO RP2040.
Check details of the API here: wiki/Keyscan-matrix#duplex-and-round-robin-matrix
Thanks for your support @swanmatch
Keyboard#define_composite_key
Now you can define a composite key that reports multiple keycodes at once.
Let's say there is a five-keys pad. You can make the most useful programming tool like this:
kbd.add_layer :default, %i(KC_SPACE CUT COPY PASTE KC_ENTER)
kbd.define_composite_key :CUT, %i(KC_LCTL KC_X)
kbd.define_composite_key :COPY, %i(KC_LCTL KC_C)
kbd.define_composite_key :PASTE, %i(KC_LCTL KC_V)
You can also write the equivalent keymap in a single line:
kbd.add_layer :default, [ :KC_SPACE, [:KC_LCTL, :KC_X], [:KC_LCTL, :KC_C], [:KC_LCTL, :KC_V], :KC_ENTER ]
If you prefer to make an array of symbols with %i
syntax, the former should seem elegant.
If you don't mind typing more colons, commas, and nested brackets, the latter would be intuitive.
Furthermore, Ruby generously allows you to use an inconsistent but labor-saving code:
kbd.add_layer :default, [ :KC_SPACE, %i(KC_LCTL KC_X), %i(KC_LCTL KC_C), %i(KC_LCTL KC_V), :KC_ENTER ]
Thanks for the discussion @yhara
Direct scan👏
Supports direct scan
-
Some keyboards support direct scan. e.g. https://www.sho-k.co.uk/tech/1246.html
Now you can configure it as follow:kbd.set_scan_mode = :direct kbd.init_pins( [], [ 8, 27, 28, 29, 9, 26 ] )
or
kbd.init_direct_pins( [ 8, 27, 28, 29, 9, 26 ] )
Thanks to @takkanm
🎛🎛🎛RotaryEncoder🎛🎛🎛🎛
RotaryEncoder enhancement
- Multiple encoders can be configured on a unit🎛
:RGB_xxx
keycodes work with encoders🌈- The accuracy of rotation made a big improvement😎
- Thanks to @Taro-Hayashi
Bugfix
- Fixed some tiny bugs
keymap.rb with CRLF line terminators now works
Thanks for the bug report @policium
Keycodes for RGB and Mutual UART
Big improvements
- RGB feature
- Keycodes like
:RGB_TOG
(to toggle the LED between on and off, for example) are added- See more details on wiki/RGB-feature
- You can set default values of an RGB instance in keymap.rb. eg)
rgb = RGB.new; rgb.speed
to change the speed of blinking- See also wiki/RGB-feature#in-your-keymaprb
- On a split type keyboard like CRKBD, LEDs of left and right will be synchronized when you enable "Mutual UART" (see below)
- Keycodes like
- Mutual UART communication on a split type keyboard on TRS (not TRRS) cable
- This experimental feature realizes
- Synchronized RGB blinking on both halves (anchor half and partner half)
- Keycodes like
:RGB_TOG
work also on the "partner half"
- See wiki/Mutual-UART-communication
- This experimental feature realizes
- If you feel this release is unstable, use 0.9.5.1 instead then report an issue!
Hotfix: MAX_SYMBOLS_COUNT
- Fix a fatal error due to
overflow MAX_SYMBOLS_COUNT
. Thanks to @geeknees