mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-27 11:06:37 +06:00
b72a1aa3fe
* Keyboard: revamp frosty-flake leds
This commit transitions bpiphany/frosty_flake to led_update_{kb,user}
and rewrites the AVR bit twiddling logic to use the standard QMK GPIO
API.
* Keyboard: rewrite frosty_flake's matrix reader to be a lite custom matrix
This commit replaces frosty_flake's custom matrix and debounce logic
with a "lite" custom matrix. In addition to being somewhat clearer, this
allows a consumer of the flake board to choose their own debouncing
algorithm. The one closest to the implementation originally in use is
sym_g, but this opens us up to supporting eager_pk and eager_pr.
The original matrix code was 18 columns for 8 rows, but using a single
row read and unpacking the bits into individual columns. To simplify,
I've changed the key layout to be 8C 18R instead of 18C 8R: this lets us
use a single read directly into the matrix _and_ drop down to a uint8_t
instead of a uint32_t for matrix_row_t.
Since we're no longer implementing our own debouncing and row unpacking,
we save ~400 bytes on the final firmware image.
Fully tested against a CM Storm QFR hosting the flake -- this commit
message was written using the new matrix code.
Firmware Sizes (assuming stock configuration as of 42d6270f2
)
Matrix+Debounce Size (bytes)
--------------- ------------
original 17740
new + sym_g 17284
new + eager_pr 18106
new + eager_pk 18204
I expect that there are some scanning speed benefits as well.
* Keyboard: update frosty_flake's UNUSED_PINS
* Keyboard: Remove meaningless weak redefinitions from frosty
These are not necessary (and all of them already live somewhere in
Quantum).
37 lines
1.3 KiB
Makefile
37 lines
1.3 KiB
Makefile
# MCU name
|
|
MCU = atmega32u2
|
|
|
|
# Bootloader selection
|
|
# Teensy halfkay
|
|
# Pro Micro caterina
|
|
# Atmel DFU atmel-dfu
|
|
# LUFA DFU lufa-dfu
|
|
# QMK DFU qmk-dfu
|
|
# ATmega32A bootloadHID
|
|
# ATmega328P USBasp
|
|
BOOTLOADER = atmel-dfu
|
|
|
|
# Build Options
|
|
# change yes to no to disable
|
|
#
|
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
|
CONSOLE_ENABLE = no # Console for debug
|
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
NKRO_ENABLE = no # USB Nkey Rollover
|
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
|
MIDI_ENABLE = no # MIDI controls
|
|
UNICODE_ENABLE = no # Unicode
|
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
AUDIO_ENABLE = no # Audio output on port C6
|
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
|
|
|
CUSTOM_MATRIX = lite
|
|
SRC += matrix.c
|
|
|
|
LAYOUTS = tkl_ansi
|