Skip to content

Instantly share code, notes, and snippets.

@AeliusSaionji
Created February 12, 2020 05:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AeliusSaionji/e1232d943d860254ee1f3d2617519f47 to your computer and use it in GitHub Desktop.
Save AeliusSaionji/e1232d943d860254ee1f3d2617519f47 to your computer and use it in GitHub Desktop.
--- keyboards/ergodox_ez/config.h 2020-02-11 00:59:19.189990347 -0500
+++ keyboards/ergodox_ez_rhalf/config.h 2020-02-11 23:46:48.212405452 -0500
@@ -16,6 +16,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define DIODE_DIRECTION COL2ROW
#ifndef ERGODOX_EZ_CONFIG_H
#define ERGODOX_EZ_CONFIG_H
@@ -30,17 +31,19 @@
#define DESCRIPTION QMK keyboard firmware for Ergodox EZ
/* key matrix size */
-#define MATRIX_ROWS 14
-#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2)
+#define MATRIX_ROWS 7
#define MATRIX_COLS 6
+#define MATRIX_ROW_PINS { B0, B1, B2, B3, D2, D3, C6 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7 }
+
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 60
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
-#define DEBOUNCE 30
+#define DEBOUNCE 5
#define TAPPING_TOGGLE 1
@@ -112,10 +115,10 @@
// RGB backlight
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 24
#define DRIVER_2_LED_TOTAL 24
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
#define RGB_MATRIX_LED_PROCESS_LIMIT 5
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
--- keyboards/ergodox_ez/ergodox_ez.c 2020-02-11 00:59:19.189990347 -0500
+++ keyboards/ergodox_ez_rhalf/ergodox_ez_rhalf.c 2020-02-11 02:49:42.758858190 -0500
@@ -70,46 +70,11 @@
_delay_ms(50);
ergodox_right_led_3_on();
_delay_ms(50);
-#ifdef LEFT_LEDS
- ergodox_left_led_1_on();
- _delay_ms(50);
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
- ergodox_left_led_2_on();
- _delay_ms(50);
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
- ergodox_left_led_3_on();
- _delay_ms(50);
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
-#endif
ergodox_right_led_1_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_3_off();
-#ifdef LEFT_LEDS
- _delay_ms(50);
- ergodox_left_led_1_off();
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
- _delay_ms(50);
- ergodox_left_led_2_off();
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
- _delay_ms(50);
- ergodox_left_led_3_off();
- if (!mcp23018_status) {
- mcp23018_status = ergodox_left_leds_update();
- }
-#endif
-
//ergodox_led_all_on();
//_delay_ms(333);
ergodox_led_all_off();
@@ -163,63 +128,6 @@
return mcp23018_status;
}
-#ifdef LEFT_LEDS
-uint8_t ergodox_left_leds_update(void) {
- if (mcp23018_status) { // if there was an error
- return mcp23018_status;
- }
-#define LEFT_LED_1_SHIFT 7 // in MCP23018 port B
-#define LEFT_LED_2_SHIFT 6 // in MCP23018 port B
-#define LEFT_LED_3_SHIFT 7 // in MCP23018 port A
-
- // set logical value (doesn't matter on inputs)
- // - unused : hi-Z : 1
- // - input : hi-Z : 1
- // - driving : hi-Z : 1
- mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT);
- if (mcp23018_status) goto out;
- mcp23018_status = i2c_write(OLATA, ERGODOX_EZ_I2C_TIMEOUT);
- if (mcp23018_status) goto out;
- mcp23018_status = i2c_write(0b11111111
- & ~(ergodox_left_led_3<<LEFT_LED_3_SHIFT),
- ERGODOX_EZ_I2C_TIMEOUT);
- if (mcp23018_status) goto out;
- mcp23018_status = i2c_write(0b11111111
- & ~(ergodox_left_led_2<<LEFT_LED_2_SHIFT)
- & ~(ergodox_left_led_1<<LEFT_LED_1_SHIFT),
- ERGODOX_EZ_I2C_TIMEOUT);
- if (mcp23018_status) goto out;
-
- out:
- i2c_stop();
- return mcp23018_status;
-}
-#endif
-
-
-#ifdef SWAP_HANDS_ENABLE
-__attribute__ ((weak))
-// swap-hands action needs a matrix to define the swap
-const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
- /* Left hand, matrix positions */
- {{0,13}, {1,13}, {2,13}, {3,13}, {4,13}, {5,13}},
- {{0,12}, {1,12}, {2,12}, {3,12}, {4,12}, {5,12}},
- {{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}},
- {{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}},
- {{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
- {{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
- {{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
- /* Right hand, matrix positions */
- {{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
- {{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
- {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
- {{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
- {{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
- {{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
- {{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
-};
-#endif
-
#ifdef RGB_MATRIX_ENABLE
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* driver
@@ -253,31 +161,6 @@
{0, C2_11, C1_11, C3_11}, // LED23
{0, C5_11, C4_11, C6_11}, // LED24
- {1, C3_1, C2_1, C4_1}, // LED1 on left
- {1, C6_1, C5_1, C7_1}, // LED2
- {1, C4_2, C3_2, C5_2}, // LED3
- {1, C7_2, C6_2, C8_2}, // LED4
- {1, C2_3, C1_3, C3_3}, // LED5
- {1, C5_3, C4_3, C6_3}, // LED6
- {1, C8_3, C7_3, C9_3}, // LED7
- {1, C2_4, C1_4, C3_4}, // LED8
- {1, C6_4, C5_4, C7_4}, // LED9
- {1, C2_5, C1_5, C3_5}, // LED10
- {1, C7_5, C6_5, C8_5}, // LED11
- {1, C2_6, C1_6, C3_6}, // LED12
- {1, C5_6, C4_6, C6_6}, // LED13
- {1, C8_6, C7_6, C9_6}, // LED14
- {1, C2_7, C1_7, C3_7}, // LED15
- {1, C5_7, C4_7, C6_7}, // LED16
- {1, C2_8, C1_8, C3_8}, // LED17
- {1, C5_8, C4_8, C6_8}, // LED18
-
- {1, C3_9, C2_9, C4_9}, // LED19
- {1, C6_9, C5_9, C7_9}, // LED20
- {1, C4_10, C3_10, C5_10}, // LED21
- {1, C7_10, C6_10, C8_10}, // LED22
- {1, C2_11, C1_11, C3_11}, // LED23
- {1, C5_11, C4_11, C6_11} // LED24
};
--- keyboards/ergodox_ez/ergodox_ez.h 2020-02-11 00:59:19.189990347 -0500
+++ keyboards/ergodox_ez_rhalf/ergodox_ez_rhalf.h 2020-02-11 03:01:55.662601004 -0500
@@ -51,19 +51,6 @@
inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); }
inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); }
-#ifdef LEFT_LEDS
-bool ergodox_left_led_1;
-bool ergodox_left_led_2;
-bool ergodox_left_led_3;
-
-inline void ergodox_left_led_1_on(void) { ergodox_left_led_1 = 1; }
-inline void ergodox_left_led_2_on(void) { ergodox_left_led_2 = 1; }
-inline void ergodox_left_led_3_on(void) { ergodox_left_led_3 = 1; }
-
-inline void ergodox_left_led_1_off(void) { ergodox_left_led_1 = 0; }
-inline void ergodox_left_led_2_off(void) { ergodox_left_led_2 = 0; }
-inline void ergodox_left_led_3_off(void) { ergodox_left_led_3 = 0; }
-#endif // LEFT_LEDS
inline void ergodox_led_all_on(void)
{
@@ -71,11 +58,6 @@
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
-#ifdef LEFT_LEDS
- ergodox_left_led_1_on();
- ergodox_left_led_2_on();
- ergodox_left_led_3_on();
-#endif // LEFT_LEDS
}
inline void ergodox_led_all_off(void)
@@ -84,11 +66,6 @@
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
-#ifdef LEFT_LEDS
- ergodox_left_led_1_off();
- ergodox_left_led_2_off();
- ergodox_left_led_3_off();
-#endif // LEFT_LEDS
}
inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; }
@@ -127,20 +104,10 @@
extern keyboard_config_t keyboard_config;
/*
- * LEFT HAND: LINES 115-122
- * RIGHT HAND: LINES 124-131
+ * RIGHT HAND
*/
#define LAYOUT_ergodox( \
\
- k00,k01,k02,k03,k04,k05,k06, \
- k10,k11,k12,k13,k14,k15,k16, \
- k20,k21,k22,k23,k24,k25, \
- k30,k31,k32,k33,k34,k35,k36, \
- k40,k41,k42,k43,k44, \
- k55,k56, \
- k54, \
- k53,k52,k51, \
- \
k07,k08,k09,k0A,k0B,k0C,k0D, \
k17,k18,k19,k1A,k1B,k1C,k1D, \
k28,k29,k2A,k2B,k2C,k2D, \
@@ -152,38 +119,20 @@
\
/* matrix positions */ \
{ \
- { k00, k10, k20, k30, k40, KC_NO }, \
- { k01, k11, k21, k31, k41, k51 }, \
- { k02, k12, k22, k32, k42, k52 }, \
- { k03, k13, k23, k33, k43, k53 }, \
- { k04, k14, k24, k34, k44, k54 }, \
- { k05, k15, k25, k35, KC_NO, k55 }, \
- { k06, k16, KC_NO, k36, KC_NO, k56 }, \
- \
- { k07, k17, KC_NO, k37,KC_NO, k57 }, \
+ { k07, k17, KC_NO, k37,KC_NO, k57 }, \
{ k08, k18, k28, k38,KC_NO, k58 }, \
- { k09, k19, k29, k39, k49, k59 }, \
- { k0A, k1A, k2A, k3A, k4A, k5A }, \
- { k0B, k1B, k2B, k3B, k4B, k5B }, \
- { k0C, k1C, k2C, k3C, k4C, k5C }, \
- { k0D, k1D, k2D, k3D, k4D, KC_NO } \
+ { k09, k19, k29, k39, k49, k59 }, \
+ { k0A, k1A, k2A, k3A, k4A, k5A }, \
+ { k0B, k1B, k2B, k3B, k4B, k5B }, \
+ { k0C, k1C, k2C, k3C, k4C, k5C }, \
+ { k0D, k1D, k2D, k3D, k4D, KC_NO } \
}
/*
- * LEFT HAND: LINES 158-165
- * RIGHT HAND: LINES 167-174
+ * RIGHT HAND
*/
#define LAYOUT_ergodox_80( \
\
- k00,k01,k02,k03,k04,k05,k06, \
- k10,k11,k12,k13,k14,k15,k16, \
- k20,k21,k22,k23,k24,k25, \
- k30,k31,k32,k33,k34,k35,k36, \
- k40,k41,k42,k43,k44, \
- k55,k56, \
- k45,k46,k54, \
- k53,k52,k51, \
- \
k07,k08,k09,k0A,k0B,k0C,k0D, \
k17,k18,k19,k1A,k1B,k1C,k1D, \
k28,k29,k2A,k2B,k2C,k2D, \
@@ -195,44 +144,28 @@
\
/* matrix positions */ \
{ \
- { k00, k10, k20, k30, k40, KC_NO }, \
- { k01, k11, k21, k31, k41, k51 }, \
- { k02, k12, k22, k32, k42, k52 }, \
- { k03, k13, k23, k33, k43, k53 }, \
- { k04, k14, k24, k34, k44, k54 }, \
- { k05, k15, k25, k35, k45, k55 }, \
- { k06, k16, KC_NO, k36, k46, k56 }, \
- \
- { k07, k17, KC_NO, k37, k47, k57 }, \
+ { k07, k17, KC_NO, k37, k47, k57 }, \
{ k08, k18, k28, k38, k48, k58 }, \
{ k09, k19, k29, k39, k49, k59 }, \
{ k0A, k1A, k2A, k3A, k4A, k5A }, \
{ k0B, k1B, k2B, k3B, k4B, k5B }, \
{ k0C, k1C, k2C, k3C, k4C, k5C }, \
- { k0D, k1D, k2D, k3D, k4D, KC_NO } \
+ { k0D, k1D, k2D, k3D, k4D, KC_NO } \
}
-/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
-#define LAYOUT_ergodox_pretty( \
- L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
- L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
- L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
- L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
- L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
- L55,L56, R50,R51, \
- L54, R52, \
- L53,L52,L51, R55,R54,R53 ) \
- \
+/* ---------- RIGHT HAND ---------- */
+#define LAYOUT_ergodox_pretty( \
+ R00,R01,R02,R03,R04,R05,R06, \
+ R10,R11,R12,R13,R14,R15,R16, \
+ R21,R22,R23,R24,R25,R26, \
+ R30,R31,R32,R33,R34,R35,R36, \
+ R42,R43,R44,R45,R46, \
+ R50,R51, \
+ R52, \
+ R55,R54,R53 ) \
+ \
/* matrix positions */ \
{ \
- { L00, L10, L20, L30, L40, KC_NO }, \
- { L01, L11, L21, L31, L41, L51 }, \
- { L02, L12, L22, L32, L42, L52 }, \
- { L03, L13, L23, L33, L43, L53 }, \
- { L04, L14, L24, L34, L44, L54 }, \
- { L05, L15, L25, L35, KC_NO, L55 }, \
- { L06, L16, KC_NO, L36, KC_NO, L56 }, \
- \
{ R00, R10, KC_NO, R30,KC_NO, R50 }, \
{ R01, R11, R21, R31,KC_NO, R51 }, \
{ R02, R12, R22, R32, R42, R52 }, \
@@ -242,27 +175,19 @@
{ R06, R16, R26, R36, R46, KC_NO } \
}
-/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
-#define LAYOUT_ergodox_pretty_80( \
- L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
- L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
- L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
- L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
- L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
- L55,L56, R50,R51, \
- L45,L46,L54, R52,R40,R41, \
- L53,L52,L51, R55,R54,R53 ) \
+/* ---------- RIGHT HAND ---------- */
+#define LAYOUT_ergodox_pretty_80( \
+ R00,R01,R02,R03,R04,R05,R06, \
+ R10,R11,R12,R13,R14,R15,R16, \
+ R21,R22,R23,R24,R25,R26, \
+ R30,R31,R32,R33,R34,R35,R36, \
+ R42,R43,R44,R45,R46, \
+ R50,R51, \
+ R52,R40,R41, \
+ R55,R54,R53 ) \
\
/* matrix positions */ \
{ \
- { L00, L10, L20, L30, L40, KC_NO }, \
- { L01, L11, L21, L31, L41, L51 }, \
- { L02, L12, L22, L32, L42, L52 }, \
- { L03, L13, L23, L33, L43, L53 }, \
- { L04, L14, L24, L34, L44, L54 }, \
- { L05, L15, L25, L35, L45, L55 }, \
- { L06, L16, KC_NO, L36, L46, L56 }, \
- \
{ R00, R10, KC_NO, R30, R40, R50 }, \
{ R01, R11, R21, R31, R41, R51 }, \
{ R02, R12, R22, R32, R42, R52 }, \
--- keyboards/ergodox_ez/rules.mk 2020-02-11 00:59:19.193323680 -0500
+++ keyboards/ergodox_ez_rhalf/rules.mk 2020-02-11 23:36:45.806733705 -0500
@@ -24,21 +24,15 @@
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
-CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE = yes # Unicode
-SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE = no
RGBLIGHT_ENABLE = yes
-RGBLIGHT_CUSTOM_DRIVER = yes
+RGBLIGHT_CUSTOM_DRIVER = no
RGB_MATRIX_ENABLE = no # enable later
DEBOUNCE_TYPE = eager_pr
# project specific files
-SRC += matrix.c \
- led_i2c.c
QUANTUM_LIB_SRC += i2c_master.c
-
-LAYOUTS = ergodox
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment