diff options
author | Balz Guenat <balz.guenat@gmail.com> | 2017-12-12 03:05:12 +0100 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-12-11 21:05:12 -0500 |
commit | eeb64437673c0f5c16f0ddf1e2a8362be81b615a (patch) | |
tree | 0c1c65a087f8b427cdf5e85ec9082ce0ba9a0dd0 /keyboards/fc980c/keymaps/actuation-point-example | |
parent | c1a6ca46a77d88da40647a54bf1e712da69bc143 (diff) | |
download | firmware-eeb64437673c0f5c16f0ddf1e2a8362be81b615a.tar.gz firmware-eeb64437673c0f5c16f0ddf1e2a8362be81b615a.tar.bz2 firmware-eeb64437673c0f5c16f0ddf1e2a8362be81b615a.zip |
actuation point adjustment for fc980c and fc660c (#2134)
* add i2c lib submodule
* add actuation point adjustment to fc980c
* add actuation point adjustment to fc660c also.
* use https for i2c submodule
* move to existing i2c lib
* properly remove old submodule
* oops, forgot some files for the fc660c
Diffstat (limited to 'keyboards/fc980c/keymaps/actuation-point-example')
3 files changed, 118 insertions, 0 deletions
diff --git a/keyboards/fc980c/keymaps/actuation-point-example/README.md b/keyboards/fc980c/keymaps/actuation-point-example/README.md new file mode 100644 index 000000000..e4e9ab98c --- /dev/null +++ b/keyboards/fc980c/keymaps/actuation-point-example/README.md @@ -0,0 +1,9 @@ +# Actuation Point adjustment example keymap + +This keymap is an example of how the actuation point adjustment functionality could be used. In `config.h`, we set `ACTUATION_DEPTH_ADJUSTMENT` to `+1`, which puts the actuation point slightly deeper, making the keys less sensitive. + +If [hid_listen](https://www.pjrc.com/teensy/hid_listen.html) is running, `CAPS_LOCK + F9` prints the current RDAC setting and `CAPS_LOCK + F10` prints the default or base setting. `CAPS_LOCK + F11` and `CAPS_LOCK + F12` can be used to adjust the actuation point dynamically. Make only small adjustments and find your ideal setting. For example, if the base setting of your keyboard is 56 but you prefer a slightly lower actuation point at 58, you should set `ACTUATION_DEPTH_ADJUSTMENT` to `+2`. + +If something goes wrong during adjustment, for example keys not actuating anymore or actuating spontaneously, don't panic. Just unplug the keyboard and plug it back in. This will revert all your dynamic changes made with `F11` and `F12`. + +If you discover you have set a too high or low value for `ACTUATION_DEPTH_ADJUSTMENT`, you will need to recompile and reflash your keyboard. diff --git a/keyboards/fc980c/keymaps/actuation-point-example/config.h b/keyboards/fc980c/keymaps/actuation-point-example/config.h new file mode 100644 index 000000000..6c9893f42 --- /dev/null +++ b/keyboards/fc980c/keymaps/actuation-point-example/config.h @@ -0,0 +1,32 @@ +/* Copyright 2017 Balz Guenat + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "config_common.h" + +// place overrides here + +// higher value means deeper actuation point, less sensitive +// be careful and only make small adjustments (steps of 1 or 2). +// too high and keys will fail to actuate. too low and keys will actuate spontaneously. +// test all keys before further adjustment. +// this should probably stay in the range +/-5. +#undef ACTUATION_DEPTH_ADJUSTMENT +#define ACTUATION_DEPTH_ADJUSTMENT +1 + +#endif diff --git a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c new file mode 100644 index 000000000..dcecd86b9 --- /dev/null +++ b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c @@ -0,0 +1,77 @@ +/* +Copyright 2017 Balz Guenat + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +#include "fc980c.h" +#include "actuation_point.h" + +enum custom_keycodes { + AP_UP = SAFE_RANGE, // Higher actuation point, more sensitive + AP_DN, // Lower actuation point, less sensitive + AP_READ_RDAC, // Prints current RDAC value to console + AP_READ_EEPROM, // Prints base RDAC value to console +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + KC_ESC, KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_F7,KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, KC_PGUP,KC_PGDN, + KC_GRV, KC_1,KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, + KC_TAB, KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + MO(1) , KC_A,KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT + ), + [1] = KEYMAP( + _______, _______,_______,_______,_______,_______,_______, _______, _______,AP_READ_RDAC,AP_READ_EEPROM,AP_DN,AP_UP, _______,_______,KC_HOME,KC_END, + _______,_______,_______,_______,_______,_______,_______,_______, _______, _______,_______,_______,_______,_______, _______,_______,_______,_______, + KC_CAPS,KC_MPRV,KC_VOLU,KC_MNXT,KC_PGUP,KC_INS,KC_HOME, LCTL(KC_LEFT),LCTL(KC_RGHT),KC_END, KC_PSCR,KC_SLCK,KC_PAUS,_______, _______,_______,_______,_______, + _______,KC_MUTE,KC_VOLD,KC_MPLY,KC_PGDN,KC_DEL,KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,_______,_______, _______, _______,_______,_______, + _______, _______,_______,_______,_______,_______,LCTL(KC_BSPC),LCTL(KC_DEL), _______,_______,_______, _______, KC_PGUP, _______,_______,_______,_______, + _______,_______,_______, _______, _______,KC_APP, _______, KC_HOME,KC_PGDN,KC_END, _______,_______ + ), +}; + +void matrix_init_user(void) { +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case AP_UP: { + actuation_point_up(); + return false; + } + case AP_DN: { + actuation_point_down(); + return false; + } + case AP_READ_RDAC: { + xprintf("RDAC: %d", read_rdac()); + return false; + } + case AP_READ_EEPROM: { + xprintf("EEPROM: %d", read_eeprom()); + return false; + } + + default: return true; + } + } else { + return true; + } +}; + +const uint16_t PROGMEM fn_actions[] = { +}; |