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.

179 lines
5.8 KiB

  1. /*
  2. Copyright 2023 3araht
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #pragma once
  15. #define SELECT_SOFT_SERIAL_SPEED 1
  16. /*Sets the protocol speed when using serial communication*/
  17. //Speeds:
  18. //0: about 189kbps (Experimental only)
  19. //1: about 137kbps (default)
  20. //2: about 75kbps
  21. //3: about 39kbps
  22. //4: about 26kbps
  23. //5: about 20kbps
  24. // Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve.
  25. #define MASTER_RIGHT
  26. // for "Generic" Promicro to be detected correctly as lefthand side (slave)
  27. #define SPLIT_USB_DETECT
  28. #ifdef RGBLIGHT_ENABLE
  29. # define RGBLED_NUM 123
  30. # define RGBLIGHT_LAYERS
  31. // By default, LEDs of the buttons which are pressed turn on.
  32. // # define RGBLIGHT_EFFECT_TWINKLE
  33. // # define RGBLIGHT_EFFECT_KNIGHT
  34. #endif
  35. #ifdef RGB_MATRIX_ENABLE
  36. /* ws2812 RGB MATRIX */
  37. # define RGB_MATRIX_LED_COUNT 123
  38. # define RGB_MATRIX_KEYPRESSES // reacts to keypresses
  39. // for all fingers used at once.
  40. # define LED_HITS_TO_REMEMBER 10
  41. # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
  42. // the above brighness setting has no effect on rgb_matrix_set_color().
  43. // Use darker colors instead.
  44. /* RGB darker COLORS */
  45. # define RGB_DARKWHITE 0x66, 0x66, 0x66
  46. # define RGB_DARKRED 0x66, 0x0, 0x0
  47. # define RGB_DARKCORAL 0x66, 0x31, 0x1E
  48. # define RGB_DARKORANGE 0x66, 0x33, 0x0
  49. # define RGB_DARKGOLDENROD 0x56, 0x42, 0xD
  50. # define RGB_DARKGOLD 0x66, 0x56, 0x0
  51. # define RGB_DARKYELLOW 0x66, 0x66, 0x0
  52. # define RGB_DARKCHARTREUSE 0x33, 0x66, 0x0
  53. # define RGB_DARKGREEN 0x0, 0x66, 0x0
  54. # define RGB_DARKSPRINGGREEN 0x0, 0x66, 0x33
  55. # define RGB_DARKTURQUOISE 0x1C, 0x2C, 0x2A
  56. # define RGB_DARKTEAL 0x0, 0x33, 0x33
  57. # define RGB_DARKCYAN 0x0, 0x66, 0x66
  58. # define RGB_DARKAZURE 0x3D, 0x62, 0x66
  59. # define RGB_DARKBLUE 0x0, 0x0, 0x66
  60. # define RGB_DARKPURPLE 0x30, 0x0, 0x66
  61. # define RGB_DARKMAGENTA 0x66, 0x0, 0x66
  62. # define RGB_DARKPINK 0x66, 0x33, 0x4C
  63. // https://docs.qmk.fm/#/feature_rgb_matrix
  64. // Enable suspend mode.
  65. // # define RGB_DISABLE_WHEN_USB_SUSPENDED true
  66. # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
  67. // #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
  68. // #define ENABLE_RGB_MATRIX_BREATHING
  69. // #define ENABLE_RGB_MATRIX_BAND_SAT
  70. // #define ENABLE_RGB_MATRIX_BAND_VAL
  71. // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
  72. // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
  73. // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
  74. // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
  75. // #define ENABLE_RGB_MATRIX_CYCLE_ALL
  76. // #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
  77. // #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
  78. # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
  79. // #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
  80. // #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
  81. // #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
  82. // #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
  83. // #define ENABLE_RGB_MATRIX_DUAL_BEACON
  84. // # define ENABLE_RGB_MATRIX_RAINBOW_BEACON
  85. // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
  86. // #define ENABLE_RGB_MATRIX_RAINDROPS
  87. // #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
  88. # define ENABLE_RGB_MATRIX_HUE_BREATHING
  89. // #define ENABLE_RGB_MATRIX_HUE_PENDULUM
  90. // #define ENABLE_RGB_MATRIX_HUE_WAVE
  91. // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
  92. // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
  93. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
  94. # define ENABLE_RGB_MATRIX_SOLID_REACTIVE
  95. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
  96. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
  97. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
  98. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
  99. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
  100. // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
  101. // #define ENABLE_RGB_MATRIX_SPLASH
  102. # define ENABLE_RGB_MATRIX_MULTISPLASH
  103. // #define ENABLE_RGB_MATRIX_SOLID_SPLASH
  104. // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
  105. #endif // RGB_MATRIX_ENABLE
  106. /*
  107. * Feature disable options
  108. * These options are also useful to firmware size reduction.
  109. */
  110. /* disable debug print */
  111. //#define NO_DEBUG
  112. /* disable print */
  113. //#define NO_PRINT
  114. /* disable action features */
  115. //#define NO_ACTION_LAYER
  116. //#define NO_ACTION_TAPPING
  117. //#define NO_ACTION_ONESHOT
  118. /* Audio */
  119. #ifdef AUDIO_ENABLE
  120. # define AUDIO_PIN B5 // use EX1 = PB5 = PIN9 as Audio output
  121. // #define DAC_SAMPLE_MAX 32768U
  122. # define DAC_SAMPLE_MAX 65535U
  123. // #define AUDIO_CLICKY
  124. # define NO_MUSIC_MODE
  125. // #define STARTUP_SONG SONG(FANTASIE_IMPROMPTU)
  126. // #define STARTUP_SONG SONG(NOCTURNE_OP_9_NO_1)
  127. // #define STARTUP_SONG SONG(USSR_ANTHEM)
  128. // #define STARTUP_SONG SONG(CAMPANELLA)
  129. #endif
  130. /*
  131. * MIDI options
  132. */
  133. /* enable basic MIDI features:
  134. - MIDI notes can be sent when in Music mode is on
  135. */
  136. //#define MIDI_BASIC
  137. /* enable advanced MIDI features:
  138. - MIDI notes can be added to the keymap
  139. - Octave shift and transpose
  140. - Virtual sustain, portamento, and modulation wheel
  141. - etc.
  142. */
  143. #ifdef MIDI_ENABLE
  144. # define MIDI_ADVANCED
  145. // Initial velocity value (avoid using 127 since it is used as a special number in some sound sources.)
  146. # define MIDI_INITIAL_VELOCITY 117
  147. #endif // MIDI_ENABLE
  148. #define TAP_CODE_DELAY 10
  149. /* 2021/01/22 added to shrink firmware size */
  150. // NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods...
  151. // #define NO_ACTION_TAPPING
  152. // NO_ACTION_ONESHOT -388 bytes
  153. #define NO_ACTION_ONESHOT