logo

qmk_firmware

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

knobx1.h (1700B)


  1. // (c) 2025 Binepad (@binpad)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "quantum.h"
  5. // PCB has a 1x2 matrix. Set the ROW0 to ground for faster direct pin access.
  6. #define ROW0_PIN B8
  7. #define IND1_LED A6
  8. #define IND2_LED A5
  9. #define IND3_LED A4
  10. #define IND4_LED A3
  11. // clang-format off
  12. enum x1_keycodes {
  13. X1_LAYER_SELECTOR_UP = QK_USER,
  14. X1_LAYER_SELECTOR_DOWN
  15. };
  16. // clang-format on
  17. #define X1_LYRU X1_LAYER_SELECTOR_UP
  18. #define X1_LYRD X1_LAYER_SELECTOR_DOWN
  19. // clang-format off
  20. static inline void x1_led_1(bool on) { gpio_write_pin(IND1_LED, on); }
  21. static inline void x1_led_2(bool on) { gpio_write_pin(IND2_LED, on); }
  22. static inline void x1_led_3(bool on) { gpio_write_pin(IND3_LED, on); }
  23. static inline void x1_led_4(bool on) { gpio_write_pin(IND4_LED, on); }
  24. static inline void x1_led_1_on(void) { gpio_write_pin_high(IND1_LED); }
  25. static inline void x1_led_2_on(void) { gpio_write_pin_high(IND2_LED); }
  26. static inline void x1_led_3_on(void) { gpio_write_pin_high(IND3_LED); }
  27. static inline void x1_led_4_on(void) { gpio_write_pin_high(IND4_LED); }
  28. static inline void x1_led_1_off(void) { gpio_write_pin_low(IND1_LED); }
  29. static inline void x1_led_2_off(void) { gpio_write_pin_low(IND2_LED); }
  30. static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); }
  31. static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); }
  32. // clang-format on
  33. static inline void x1_layer_led(uint8_t lyr) {
  34. gpio_write_pin(IND1_LED, lyr >= 0);
  35. gpio_write_pin(IND2_LED, lyr >= 1);
  36. gpio_write_pin(IND3_LED, lyr >= 2);
  37. gpio_write_pin(IND4_LED, lyr >= 3);
  38. }
  39. bool process_x1_layer_up(keyrecord_t *record);
  40. bool process_x1_layer_down(keyrecord_t *record);