keychron_qmk_firmware/keyboards/planck/rev7
Jack Humbert 42cd55e08d
Planck Matrix Fixes (#21196)
* fix non-default keymap compiling, initial matrix state, watchdog options

* fix: allow planck/rev7 to be used with ENCODER_ENABLE = no

* chore: update function name on all cases.

* remove old midi tone option

Co-authored-by: Ryan <fauxpark@gmail.com>

* fixes abhixec's planck keymap

* add audio enable condition to abhixec's planck keymap

* add audio enable condition to all muse includes

* Revert "add audio enable condition to all muse includes"

This reverts commit 9779e908970dbf7cf81b1a3f968ef2e85ae2b76f.

* Revert "add audio enable condition to abhixec's planck keymap"

This reverts commit 24c742a5e8ddd55c45ce9f1917b0cb237d4bf721.

* Revert "fixes abhixec's planck keymap"

This reverts commit 4bb085d1ff00febc92ff6211da4fb776c6379fad.

---------

Co-authored-by: Peter.Falken <luis@bitjester.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-06-20 20:32:32 -04:00
..
keymaps/default Planck Matrix Fixes (#21196) 2023-06-20 20:32:32 -04:00
chconf.h
config.h
halconf.h
info.json
matrix.c Planck Matrix Fixes (#21196) 2023-06-20 20:32:32 -04:00
mcuconf.h
readme.md Planck Matrix Fixes (#21196) 2023-06-20 20:32:32 -04:00
rev7.c
rules.mk

Planck

A compact 40% (12x4) ortholinear keyboard kit designed by OLKB and sold by Drop. A complete hardware rework of the rev6 Planck PCB, with support for up to 8 rotary encoders. More info on qmk.fm

  • Keyboard Maintainer: Jack Humbert
  • Hardware Supported: Planck PCB rev7
  • Hardware Availability: Drop

Make example for this keyboard (after setting up your build environment):

make planck/rev7:default

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Encoders

Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time, and are zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the encoder_update_user(uint8_t index, bool clockwise) function:

,-----------------------------------------------------------------------------------.
|   0  |      |      |      |      |      |      |      |      |      |      |   4  |
|------+------+------+------+------+------+------+------+------+------+------+------|
|   1  |      |      |      |      |      |      |      |      |      |      |   5  |
|------+------+------+------+------+------+------+------+------+------+------+------|
|   2  |      |      |      |      |      |      |      |      |      |      |   6  |
|------+------+------+------+------+------+------+------+------+------+------+------|
|   3  |      |      |      |      |             |      |      |      |      |   7  |
`-----------------------------------------------------------------------------------'

If an encoder has a switch built-in, it's connected to the key at that location. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity. The encoder map feature is not currently supported.

Some Planck-specific config.h options:

// sets the length (in seconds) of the watchdog timer, which will reset the keyboard due to hang/crash in the code
#define PLANCK_WATCHDOG_TIMEOUT 1.0
// disables the watchdog timer - you may want to disable the watchdog timer if you use longer macros
#define PLANCK_WATCHDOG_DISABLE
// the resolution of the encoders used in the encoder matrix
#define PLANCK_ENCODER_RESOLUTION 4