layout make id field optional for non-split boards
firmware matrix scanning for EFM8
keyplus-flasher when a device has a critical error, perform a full reset
keyplus-flasher throw error when trying to use matrix scanning when a
device does not support it.
keyplus-flasher switch from pyside to PyQt5 for GUI. This makes it possible
to run the Windows version with Python3 instead of Python2.7. It should
also make it easier to run on MacOS.
keyplus-flasher fix some crashes on Windows
firmware fixed media keys
firmware clean up source code tree. Standalone ports (e.g. xmega,
nRF24LU1, atmega32u4) are moved to the ports directory. And source
code inside these directories is cleaned up by moving all *.c, *.h files
to their own src directory.
now moved to the ports directory.
firmware the device name string is now stored as UTF16-LE
firmware some linker script fixes for some large flash xmega chips
firmware added alternative shared HID definition for microcontrollers that
only have a small number of endpoints. Will be useful for ATmega32u2 and EFM8,
since they only have ~4 endpoints.
firmware add nRF24LU1+ and EFM8 to travis build targets
firmware basis for efm8 support
keyplus-flasher efm8 factory bootloader support
keyplus-flasher add unicode support to yaml files
layout add support for keycodes section in the layout file for defining
custom special keycodes
layout/keycodes add support for hold key in keycodes section
layout/keycodes add more alternative names to some keycodes: trns, space, 's_l0, s_lctl, int1. Changed lang_1tolang1` etc.
layout/keycodes add alternative activation method for hold keys. Instead of
using a delay to activate the hold key, allow the hold key to be activated
when other keys are pressed.
firmware basic atmega32u4 support
firmware fixed issue that caused updates to the encryption key to
require a reset
firmware made the maximum number of supported rows configurable at compile
time, and increased the default value from 10 to 18.
firmware added place holder mouse keys implementation (non-configurable)
keyplus-flasher more error messages
keyplus-flasher fixed labels not updating properly
keyplus-flasher fixed issue requiring user to manual press program button
when updating firmware
Changes to layout and config files:
layout format is incompatible with previous versions
layout files now have options to enable/disable I²C, nRF24 and mouse
support. By default these options are now turned off. So if you used any
of these features they will need to be re-enabled in the layout file. See
the example layout files for details.
layout the keycode menu, HID keycode KC_MENU, has now been renamed to
hid_menu. The keycode menu in layout files now maps to the HID keycode
KC_APPLICATION as this is what most people expect.
python-api new python API added. It is available in the keyplus package
python-api rework all the code for parsing layout files.
python-api add commands to read the layout and settings form the device.
python-api add commands to deserialize layouts read from devices
keyplus-cli add command to erase all layouts and settings
keyplus-cli add commands to dump the raw hex of the layout and settings section
keyplus-cli is now able to update RF, layout, and ID separately.
keyplus-flasher add support for kp_boot_32u4 bootloader
firmware add new chip_id concept to firmware settings allowing the
python-api to discover what microcontroller the keyboard is using.
firmware rework flash writing commands so that is possible to update only a
portion of the layout.
firmware layout updates can now be performed without the USB device
needing to be reset
firmware-xmega now utilizes the IRQ pin in receive mode
firmware-xmega add arbitrary pin mapping to matrix scanning algorithm. It
should now be possible to use any pins as row/columns.
firmware-xmega add new matrix scanning modes: col_row, pin_gnd,
pin_vcc. The col_row mode allows the direction of diodes to be flipped.
The pin_gnd and pin_vcc modes allow for direct wiring of switches to GPIO
pin and one of either GND (pin_gnd) or VCC (pin_vcc).
firmware fixes bug where it was possible to read the encryption key from the
firmware fixes some bugs that would allow the nRF24 code to accept invalid
firmware I²C split keyboards now disable their nRF24 module if they are
not connected to a USB port. This was causing dropped packets before.
Add error detection and recovery system
Add ability for controllers to enter recover mode when it detect
corrupt or invalid settings. Recover mode disables all features except those
necessary to upload a new layout.