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.

55 lines
2.1 KiB

Write firmware for the Ferris keyboard (#9634) * Write firmware for the Ferris keyboard Took inspiration from the gergoplex and the ergodox_ez firmware for the split matrix with io_expander on the right hand. Cleaned up a lot of bit fiddling on the mcu side by taking inspiration from the `split_custom` in quantum. Still bit fiddling on the mcp side as it is particularly natural to do so with the abstractions provided by the i2c protocol. Would be good to clean that up and abstract away the wiring from the generic i2c code in a similar fashion as quantum and the mcp side behave. One improvement over the ergodox_ez and the gergoplex firmwares is that the wiring is straight forward as opposed to swapping rows and columns in two different places that end up cancelling out for some reason. At this stage, I have flashed this firmware to a board and have verified that all keys are behaving as intended by shorting pins. I still have to solder in some switches and test that everything works correctly at normal typing speeds, but I don't expect any major issues given I'm building up on previous effort, including the debouncing code from the ergodox_ez. * Remove rotation from info.json and label the keys as per default keymap * Comply with minor review feedback points * Use CUSTOM_MATRIX=lite to remove boilerplate * Update keyboards/handwired/ferris/info.json Didn't play nicely in the configurator Co-authored-by: Ryan <fauxpark@gmail.com> * Remove MIDI_ENABLE from rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Remove FAUXCLICKY_ENABLE from rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Prefer wait_ms over _delay_ms Co-authored-by: Ryan <fauxpark@gmail.com> * Remove unused include Co-authored-by: Ryan <fauxpark@gmail.com> * Remove unused include Co-authored-by: Ryan <fauxpark@gmail.com> * Remove unused include Co-authored-by: Ryan <fauxpark@gmail.com> * Remove unused includeh Co-authored-by: Ryan <fauxpark@gmail.com> * Use dprint over print and remove include for print.h * Remove all unused includes * Remove unused code * Cleanups thanks to code review * Move more personal settings from the ferris config to the default keymap config These setting happen to be unused in the default keymap at the moment, as it has only one layer with no homerow modifiers and no mouse key; but I would like to keep it there for two reasons: * It can serve as an example to people creating their own keymap * I plan to design a more usable default keymap that uses these features once this PR which adds the Ferris keyboard is merged. * Consolidate mcp logic inside matrix.c Co-authored-by: Ryan <fauxpark@gmail.com>
3 years ago
  1. /*
  2. Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
  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. // Set the mouse settings to a comfortable speed/accuracy trade-off,
  16. // assuming a screen refresh rate of 60 Htz or higher
  17. // The default is 50. This makes the mouse ~3 times faster and more accurate
  18. #define MOUSEKEY_INTERVAL 16
  19. // The default is 20. Since we made the mouse about 3 times faster with the previous setting,
  20. // give it more time to accelerate to max speed to retain precise control over short distances.
  21. #define MOUSEKEY_TIME_TO_MAX 40
  22. // The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
  23. #define MOUSEKEY_DELAY 100
  24. // It makes sense to use the same delay for the mouseweel
  25. #define MOUSEKEY_WHEEL_DELAY 100
  26. // The default is 100
  27. #define MOUSEKEY_WHEEL_INTERVAL 50
  28. // The default is 40
  29. #define MOUSEKEY_WHEEL_TIME_TO_MAX 100
  30. // Pick good defaults for enabling homerow modifiers
  31. #define TAPPING_TERM 200
  32. #define PERMISSIVE_HOLD
  33. #define QUICK_TAP_TERM 0
  34. // Underglow configuration
  35. #ifdef RGBLIGHT_ENABLE
  36. # define RGBLIGHT_EFFECT_BREATHING
  37. # define RGBLIGHT_EFFECT_RAINBOW_MOOD
  38. # define RGBLIGHT_EFFECT_RAINBOW_SWIRL
  39. # define RGBLIGHT_EFFECT_SNAKE
  40. # define RGBLIGHT_EFFECT_KNIGHT
  41. # define RGBLIGHT_EFFECT_CHRISTMAS
  42. # define RGBLIGHT_EFFECT_STATIC_GRADIENT
  43. # define RGBLIGHT_EFFECT_RGB_TEST
  44. # define RGBLIGHT_EFFECT_ALTERNATING
  45. # define RGBLIGHT_EFFECT_TWINKLE
  46. # define RGBLIGHT_HUE_STEP 8
  47. # define RGBLIGHT_SAT_STEP 8
  48. # define RGBLIGHT_VAL_STEP 8
  49. #endif