Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Kinesis Triple Pedal Support #35

Open
afonsoguerra opened this issue May 20, 2021 · 7 comments
Open

Adding Kinesis Triple Pedal Support #35

afonsoguerra opened this issue May 20, 2021 · 7 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@afonsoguerra
Copy link

I am a current user of the KB600 + foot pedal. Foot pedal helps me avoid typing chords, so it includes layer switch, shift and control.

I would be very interested in teaming up to implement support for this. I can see in Issue #9 that the foot pedal connector comes out with the standard plug / original USB cable and is well labelled there.

In an ideal world, I would love some help to modify the PCB so that:

  • It includes a plug to re-use the original cable
  • exposes pins so one can craft a small microUSB cable (or other option) for the Teensy
  • takes the pins from the foot pedal switch (currently 4 = ground+1 per switch) and aggregates them with diodes so that only two pins of the teensy are needed.
  • connect those two pins to the teensy so they can be used as normal keys within QMK.

Notes:

  • I don't have a KB500 to see how the inside/plug is setup
  • I don't necessarily need the three switches, but at least one would help a lot.
  • A foot pedal is very easy to build using an easily available electric piano pedal (<10 bucks online) a 6.3mm female plug + RJ11 plug.
  • I am planning to use a Teensy 4.1, so can happily use the extra pins and avoid disrupting the current pinout.

Ideas and feedback welcomed.

@stapelberg stapelberg added enhancement New feature or request help wanted Extra attention is needed labels May 20, 2021
@stapelberg
Copy link
Contributor

  • I don't have a KB500 to see how the inside/plug is setup

AFAICT, the USB cable is unchanged between KB500 and KB600.

@afonsoguerra
Copy link
Author

I have decided to try to source some boards and attempt to get this working in practice. Hopefully once I get this sorted it will be easy for someone with more experience than me to change the PCB to implement it there.

@afonsoguerra
Copy link
Author

The board is working great, and I finally sourced some plugs for the original cable (that were sold out in digikey).
Now, as a start, I would like to just try to get this to work for me. The easiest way is for me to connect the pedal hard wired into a keyboard key. Can you help me find the Teensy 4.0 pins that are connected to the "keypad" key on the keyboard?

@stapelberg
Copy link
Contributor

Can you help me find the Teensy 4.0 pins that are connected to the "keypad" key on the keyboard?

Take a look at #16, that should contain everything you need to get started :)

@hellmind
Copy link

@afonsoguerra
Were you able to get your pedal working? I'd like to connect mine. Right now, I'm using it with the original controller for the Kinesis Advantage 2, simulating the num lock key.

@afonsoguerra
Copy link
Author

Due to lack of time I abandoned the original idea. I got it working instead by modifying a dumbpad macropad to have the plug for the triple pedal (phone cable).

If you don't need it to be programmable and always want the same key it should be easy to solder to the kint board.

I find that for the kint with qmk, there are other good ways to switch layers, like autoshift and one shot modifiers, that means I don't need the pedals that much on the kinesis. They are a godsend for repetitive tasks though.

@nateprice7
Copy link

In case it helps anyone I got the triple foot pedal working recently by soldering the wires for pedal 1, 2, and 3 to pins 35, 34, and 33 respectively on a teensy 4.1. I then wired the common to a ground pin(probably could have connected it to pin 36, but didn't try) and made the following changes to the qmk_repo to build the keymap.

diff --git a/keyboards/kinesis/kint41/info.json b/keyboards/kinesis/kint41/info.json
index eec726cf51..07ab52d955 100644
--- a/keyboards/kinesis/kint41/info.json
+++ b/keyboards/kinesis/kint41/info.json
@@ -21,8 +21,8 @@
         "debounce_type": "sym_eager_pk"
     },
     "matrix_pins": {
-        "cols": ["LINE_PIN18", "LINE_PIN14", "LINE_PIN15", "LINE_PIN20", "LINE_PIN22", "LINE_PIN19", "LINE_PIN6"],
-        "rows": ["LINE_PIN8", "LINE_PIN9", "LINE_PIN10", "LINE_PIN11", "LINE_PIN7", "LINE_PIN16", "LINE_PIN5", "LINE_PIN3", "LINE_PIN4", "LINE_PIN1", "LINE_PIN0", "LINE_PIN2", "LINE_PIN17", "LINE_PIN23", "LINE_PIN21"]
+        "cols": ["LINE_PIN18", "LINE_PIN14", "LINE_PIN15", "LINE_PIN20", "LINE_PIN22", "LINE_PIN19", "LINE_PIN6", "LINE_PIN35", "LINE_PIN34", "LINE_PIN33"],
+        "rows": ["LINE_PIN8", "LINE_PIN9", "LINE_PIN10", "LINE_PIN11", "LINE_PIN7", "LINE_PIN16", "LINE_PIN5", "LINE_PIN3", "LINE_PIN4", "LINE_PIN1", "LINE_PIN0", "LINE_PIN2", "LINE_PIN17", "LINE_PIN23", "LINE_PIN21", "LINE_PIN36"]
     },
     "diode_direction": "COL2ROW",
     "indicators": {
@@ -121,7 +121,10 @@
                 {"matrix": [2, 5], "x": 6.25, "y": 8},
                 {"matrix": [6, 6], "x": 8.25, "y": 8},
                 {"matrix": [7, 5], "x": 9.25, "y": 7, "h": 2},
-                {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2}
+                {"matrix": [6, 5], "x": 10.25, "y": 7, "h": 2},
+                {"matrix": [15, 7], "x": 16, "y": 0, "h": 0.85},
+                {"matrix": [15, 8], "x": 17, "y": 0, "h": 0.85},
+                {"matrix": [15, 9], "x": 18, "y": 0, "h": 0.85}
             ]
         }
     }

diff --git a/keyboards/kinesis/keymaps/default/keymap.c b/keyboards/kinesis/keymaps/default/keymap.c
index b60b7ddf3b..d9307197e0 100644
--- a/keyboards/kinesis/keymaps/default/keymap.c
+++ b/keyboards/kinesis/keymaps/default/keymap.c
@@ -30,6 +30,9 @@
 *                                 | BkSp | Del  |------|         |------|Return| Space|
 *                                 |      |      | End  |         | PgDn |      |      |
 *                                 `--------------------'         `--------------------'
+*                                                ,-------------------.
+*                                                | Esc | Esc  |  Esc |
+*                                                `-------------------'
 */

 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -43,7 +46,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
               KC_GRV,   KC_INS,   KC_LEFT,  KC_RGHT,                                                                                       KC_UP,    KC_DOWN,  KC_LBRC,  KC_RBRC,
                                                       KC_LCTL,  KC_LALT,                                               KC_RGUI,  KC_RCTL,
                                                                 KC_HOME,                                               KC_PGUP,
-                                            KC_BSPC,  KC_DEL,   KC_END,                                                KC_PGDN,  KC_ENTER, KC_SPC
+                                            KC_BSPC,  KC_DEL,   KC_END,                                                KC_PGDN,  KC_ENTER, KC_SPC,
+                                            KC_ESC,KC_ESC,KC_ESC
   )

 };

I'm really new to QMK so there are probably better ways to do this, but it has been working for me and may be a good starting point for someone else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants