Releases: picoruby/prk_firmware
A Whole New PicoRuby😎
Almost one year has passed since the last release. We have been working on improving the PRK Firmware!
Breaking Change 💣
- No breaking change in this release
New Feature 🎉
- On startup, if you connect a terminal emulator to com port, you can skip starting the keyboard task by pressing
s
according to the message on the terminal- This feature is useful when your
keymap.rb
breaks and hangs up the keyboard - Note that
s
key should be sent from the other keyboard that is working fine. This means you have to have multiple keyboards (I'm sure you do)⌨⌨⌨⌨
- This feature is useful when your
Improvement 🔈
- Replace PicoRuby with a new one:
- The Ruby parser is now Prism!
- Many bugs are fixed in the virtual machine and libraries
- Stability should be improved a lot🤞
Full Changelog: 0.9.23...0.10.0
Load external libraries by `require`
require and load🧐
- It is now possible to load external libraries by
require
andload
. See wiki/require
Full Changelog: 0.9.22...0.9.23
cocot46plus works!!!!
Software (Bitbang) SPI
- PicoRuby now supports software SPI because cocot46plus takes advantage of pins other than the hardware SPI of RP2040. See the example keymap.rb in picoruby/prk_cocot46plus
Mouse 🐭🖱🖲️
Mouse class with I2C, SPI, and ADC
- Now you can configure any device such as a trackball, touchpad, and joystick as a Mouse by taking advantage of hardware peripheral features like I2C, SPI, and ADC
- Currently, a Mouse instance on the partner half of a split-type keyboard does not work. We are investigating how to implement
- Because this Mouse feature is experimental, the API design may change during the implementation to make it work on both halves
- Take a good look at wiki/Mouse
The mass storage drive is re-implemented with File class of PicoRuby
- The name of the drive is changed from
PRKFirmware
toPRK DRIVE
keymap.rb
is no longer deleted on re-installing PRK's uf2- This re-implementation basically should not affect any other keyboard behaviors
Known issue
- Although the drive's functionality is sanity, the host computer sometimes recognizes the drive name as
USB Drive
instead ofPRK DRIVE
. Send us a patch if you could fix it!
What's Changed
- rake setup && upgrade picoruby by @hasumikin in #160
- Use filesystem-fat gem by @hasumikin in #161
- I2C and Mouse by @hasumikin in #162
- Add .editorconfig by @shugo in #167
- Update Dockerfile and Rakefile for pico sdk 1.5.0 by @yujiyokoo in #164
- Sqlite3 by @hasumikin in #171
New Contributors
- @yujiyokoo made their first contribution in #164
Full Changelog: 0.9.20...0.9.21
Fix start-up bug and deprecate the one-way UART
Bug fix 💡
- The instability when start-up especially upgrading uf2 is fixed
Deprecation
- Hardware one-way UART on split-type is deprecated. Instead, software mutual UART is now the default and the only option
Keyboard#mutual_uart_at_my_own_risk=
no longer takes any effect
What's Changed
- Deprecate hardware UART by @hasumikin in #156
- Move Ruby libraries to picoruby/mrbgems by @hasumikin in #157
Full Changelog: 0.9.19...0.9.20
Working on macOS and iOS again 🍎
Bug fix🐛
- An issue that PRK isn't recognized by macOS and iOS from version 0.9.15
Improvement 🔈
- Sounder pitch might become correct than before but the author experiences somehow unstable behavior until now. Please ping us your opinion from an actual usage
What's Changed
- Update package database on Docker by @buty4649 in #145
- Fix build process by @hasumikin in #151
- Get rid of cdc_task() by @hasumikin in #146
- Take out Joystick report by @yswallow in #152
- Fix Sounder pitch issue by @yswallow in #153
- Fix: invalid key input when modifier press by @hasumikin in #154
New Contributors
Full Changelog: 0.9.18...0.9.19
RGB Matrix, Sounder and Music Macro Language🌈🎸🎼
RGB Matrix🌈
See wiki/RGB Matrix.
Sounder🎸 & Music Macro Language🎼
See wiki/Sounder and wiki/Music Macro Languagel
Keyboard#inject_switch
You can arbitrarily inject a switch position of the matrix as if it was tapped.
See wiki/Keyboard#inject_switch.
[Experimental] BIOS mode🛠️
See wiki/BIOS mode.
Many thanks to @yswallow !!!!
Consumer key, Rotaty encoder & Debug print
Consumer key 🔈🔇🔊
Keyboard#send_key🎛️
It now accepts multiple keycodes.
Good for combining with rotary encoders. Check an example on wiki/Rotary encoder.
PRK_DESCRIPTION📝
Version number, built date, and revision hash are shown on the serial console at boot time.
PicoRuby version 3.1🔥
The programming processing system, PicoRuby, upgraded from 3.0 to 3.1.
This shouldn't affect any external behavior regarding keyboard (hopefully🤞).
One beneficial thing to users is that the functionality of exceptions improved.
Let's say you mistakenly write kbd = Keyb_oard.new
, not kbd = Keyboard.new
, an error message will show on the serial console:
In such a situation, your keyboard doesn't work as a keyboard but the PRKFirmware storage drive keeps alive. Until version 0.9.16, the drive was unexpectedly unmounted and you might have difficulty rewriting your keymap.rb.
Again, we strongly recommend using a serial console when your keymap.rb doesn't work. See wiki/Debug print
Bug fix🐛
- An issue related to "Startup time reduced⌨💨" issues/120
- An issue of RGB issue/122
- Improve serial console print that used to be often tangled
Big thanks to @yswallow and @techmech-keeb
[Experimental] Startup time reduced💨
Improvements
- The startup time has been significantly reduced😎
Because this is an experimental improvement, we really hope all guys try this version and report to us if there's a problem of any kind🙏
🕹Joystick and more👾
Joystick
- See wiki/Joystick
Improvements
- Changeable default layer name. See wiki/Layers-and-mode-key#Changing-default-layer. Thanks to @harukasan
- Suppress RGB random flicker on startup. Thanks to @techmech-keeb