logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

readme.md (3381B)


  1. # Planck
  2. 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](http://qmk.fm/planck/)
  3. * Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
  4. * Hardware Supported: Planck PCB rev7
  5. * Hardware Availability: [Drop](https://drop.com/buy/planck-mechanical-keyboard?mode=guest_open)
  6. Make example for this keyboard (after setting up your build environment):
  7. make planck/rev7:default
  8. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
  9. ## Encoders
  10. 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.
  11. If an encoder has a switch built-in, it's connected to the key at that location with index number:
  12. ```
  13. ,-----------------------------------------------------------------------------------.
  14. | 0 | | | | | | | | | | | 4 |
  15. |------+------+------+------+------+------+------+------+------+------+------+------|
  16. | 1 | | | | | | | | | | | 5 |
  17. |------+------+------+------+------+------+------+------+------+------+------+------|
  18. | 2 | | | | | | | | | | | 6 |
  19. |------+------+------+------+------+------+------+------+------+------+------+------|
  20. | 3 | | | | | | | | | | 7 |
  21. `-----------------------------------------------------------------------------------'
  22. ```
  23. Planck rev7 supports `ENCODER_ENABLE` and `ENCODER_MAP_ENABLE`. If both `ENCODER_MAP_ENABLE` and `ENCODER_ENABLE` are defined, `ENCODER_MAP_ENABLE` takes precedence. 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.
  24. ### With ENCODER_ENABLE
  25. Define it as follows in `rules.mk`:
  26. ```
  27. ENCODER_ENABLE = yes
  28. ```
  29. Zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(uint8_t index, bool clockwise)` function.
  30. ### With ENCODER_MAP_ENABLE
  31. Define it as follows in `rules.mk`:
  32. ```
  33. ENCODER_ENABLE = yes
  34. ENCODER_MAP_ENABLE = yes
  35. ```
  36. If you enable `ENCODER_MAP_ENABLE`, define `const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS]` and configure your keycodes. If you enable `ENCODER_MAP_ENABLE`, `encoder_update_user` is not used directly.
  37. Additionally, you can use the following `config.h` options:
  38. ```c
  39. #define ENCODER_MAP_KEY_DELAY 10
  40. #define ENCODER_RESOLUTION 4
  41. ```
  42. ## Some Planck-specific config.h options:
  43. ```c
  44. // sets the length (in seconds) of the watchdog timer, which will reset the keyboard due to hang/crash in the code
  45. #define PLANCK_WATCHDOG_TIMEOUT 1.0
  46. // disables the watchdog timer - you may want to disable the watchdog timer if you use longer macros
  47. #define PLANCK_WATCHDOG_DISABLE
  48. // Sets the time to wait for the rotary encoder pin state to stabilize while scanning (Default is 20(us))
  49. #define PLANCK_ENCODER_SETTLE_PIN_STATE_DELAY 20
  50. ```