You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Dustin L. Howett b72a1aa3fe
Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243)
* 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).
5 years ago
.github CI: Add workflow for CLI testing (#7357) 5 years ago
.vscode 2020 February 29 Breaking Changes Update (#8064) 5 years ago
bin Add pep8-naming to our python linting 5 years ago
docs Fix the Breaking Changes doc again 5 years ago
drivers Clean up includes for glcdfont headers (#7745) 5 years ago
keyboards Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243) 5 years ago
layouts 2020 February 29 Breaking Changes Update (#8064) 5 years ago
lib 2020 February 29 Breaking Changes Update (#8064) 5 years ago
quantum Prune out pure software pwm && custom driver && remove wrapping BACKLIGHT_PIN (#8041) 5 years ago
tests clang-format changes 6 years ago
tmk_core format code according to conventions [skip ci] 5 years ago
users Clean up includes for glcdfont headers (#7745) 5 years ago
util Allow for ChibiOS 20.x (master), as well as enabling ChibiOS-Contrib HAL. (#8272) 5 years ago
.clang-format fix indent size 6 years ago
.clang_complete Vim Layout for Ergodox-EZ (mac only) (#2112) 7 years ago
.editorconfig QMK CLI and JSON keymap support (#6176) 6 years ago
.gitattributes Set eep files to binary mode 9 years ago
.gitignore 2020 February 29 Breaking Changes Update (#8064) 5 years ago
.gitmodules Track master branches for lib/chibios, lib/chibios-contrib, lib/ugfx. (#8273) 5 years ago
.travis.yml Fix unknown key 'IndentPPDirectives' on CI (#7933) 5 years ago
CODE_OF_CONDUCT.md updates the coc 6 years ago
Dockerfile Update docker util script and travis to use new base container 6 years ago
Doxyfile Generate API docs from source code comments (#2491) 7 years ago
LICENSE add an explicit lisence file for github to pickup 8 years ago
Makefile 2020 February 29 Breaking Changes Update (#8064) 5 years ago
Vagrantfile Configure Vagrant to use qmk_base_container (#6194) 6 years ago
autocomplete.sh Make arguments redo, subproject elimination (#1784) 8 years ago
book.json adds redirects for docs 8 years ago
bootloader.mk Add LUFA mass storage `BOOTLOADER` "support" (#7729) 5 years ago
build_full_test.mk Add SRC and OPT_DEFS when building tests 8 years ago
build_json.mk Add JSON keymap to prereq list of C keymap 5 years ago
build_keyboard.mk add 'objs-size' target into tmk_core/avr.mk (#5490) 6 years ago
build_layout.mk Add a mechanism for force building a particular community layout (#5027) 6 years ago
build_test.mk Split common.mk into common.mk and common_features.mk 8 years ago
common.mk Move Split Common VPATH addition (#4716) 6 years ago
common_features.mk 2020 February 29 Breaking Changes Update (#8064) 5 years ago
doxygen-todo Remove PJRC USB stack 5 years ago
license_GPLv2.md Clarify the quantum license (#1042) 8 years ago
license_GPLv3.md Clarify the quantum license (#1042) 8 years ago
license_Modified_BSD.md Clarify the quantum license (#1042) 8 years ago
message.mk Use FIRMWARE_FORMAT for "Checking file size" message (#8121) 5 years ago
nose2.cfg Setup a python test framework 6 years ago
readme.md Breaking Changes documentation fixes 5 years ago
requirements.txt Drop bs4 dependency, update docs, minor improvements 5 years ago
secrets.tar.enc update building for .hex, secrets moving 8 years ago
setup.cfg Add flake8 to our test suite and fix all errors (#7379) 6 years ago
shell.nix Fix shell.nix by pinning nixpkgs (#6213) 6 years ago
show_options.mk Fix AVR boards which were overriding backlight without setting… (#8044) 5 years ago
testlist.mk Add basic infrastrucure for building full tests 8 years ago

readme.md

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.