You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.9 KiB

  1. // Copyright 2021 Ryan Skidmore (@ryanskidmore, rskeys@ryanskidmore.co.uk)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "config_common.h"
  5. /* USB Device descriptor parameter */
  6. #define VENDOR_ID 0x7273 // rs
  7. #define PRODUCT_ID 0x0064 // 100
  8. #define DEVICE_VER 0x0001 // rev 1
  9. #define MANUFACTURER ryanskidmore
  10. #define PRODUCT rsKeys100
  11. /* Key Matrix Sizes */
  12. #define MATRIX_ROWS 6
  13. #define MATRIX_COLS 24
  14. /* Rows */
  15. #define ROW_A D4
  16. #define ROW_B C6
  17. #define ROW_C D7
  18. #define ROW_D E6
  19. #define ROW_E B4
  20. #define ROW_F B5
  21. /* Columns 0 - 20 (24 with dummy columns for shift registers) */
  22. #define SHR_LATCH B2
  23. #define SHR_CLOCK B3
  24. #define SHR_DATA B1
  25. #define SHR_COLS { 0x000001, 0x000002, 0x000004, 0x000008, 0x000010, 0x000020, 0x000040, 0x000080, 0x000100, 0x000200, 0x000400, 0x000800, 0x001000, 0x002000, 0x004000, 0x008000, 0x010000, 0x020000, 0x040000, 0x080000, 0x100000, 0x200000, 0x400000, 0x800000 }
  26. /* The shift registers on the matrix PCB output a signal on each column, which passes through the
  27. * switch and a diode towards the row. The row is then connected to the AVR as an input. This means
  28. * the diode direction is COL(umn) to ROW */
  29. #define DIODE_DIRECTION COL2ROW
  30. /* RGB Data Pin */
  31. #define RGB_DI_PIN C7
  32. /* The number of RGB LEDs connected */
  33. #define DRIVER_LED_TOTAL 118
  34. /* Set the maximum brightness to 110 to avoid going over 500 mA.
  35. * At full brightness with all three indicator LEDs on, the power draw is about 450 mA. */
  36. #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 110
  37. /* Enable framebuffer effects */
  38. #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
  39. /* Enable the cycle left right animation and set it as the startup mode */
  40. #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
  41. #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
  42. /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
  43. #define DEBOUNCE 5
  44. /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
  45. #define LOCKING_SUPPORT_ENABLE
  46. /* Locking resynchronize hack */
  47. #define LOCKING_RESYNC_ENABLE
  48. /* Set the max power consumption for the keyboard, which is 500 mA. */
  49. #define USB_MAX_POWER_CONSUMPTION 500
  50. /*
  51. * Force NKRO
  52. *
  53. * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
  54. * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
  55. * makefile for this to work.)
  56. *
  57. * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
  58. * until the next keyboard reset.
  59. *
  60. * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
  61. * fully operational during normal computer usage.
  62. *
  63. * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
  64. * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
  65. * bootmagic, NKRO mode will always be enabled until it is toggled again during a
  66. * power-up.
  67. *
  68. */
  69. #define FORCE_NKRO