From ad40d7ca96efb3428e005caf5f4abc466ef992a7 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 22 Mar 2021 16:01:00 +0900 Subject: [PATCH 01/30] [Keyboard] add bajjak keyboard --- keyboards/bajjak/bajjak.c | 398 +++++++++++++++++++++ keyboards/bajjak/bajjak.h | 178 +++++++++ keyboards/bajjak/config.h | 160 +++++++++ keyboards/bajjak/info.json | 33 ++ keyboards/bajjak/keymaps/default/keymap.c | 218 +++++++++++ keyboards/bajjak/keymaps/default/readme.md | 27 ++ keyboards/bajjak/led_i2c.c | 55 +++ keyboards/bajjak/matrix.c | 256 +++++++++++++ keyboards/bajjak/post_config.h | 40 +++ keyboards/bajjak/readme.md | 55 +++ keyboards/bajjak/rules.mk | 52 +++ 11 files changed, 1472 insertions(+) create mode 100644 keyboards/bajjak/bajjak.c create mode 100644 keyboards/bajjak/bajjak.h create mode 100644 keyboards/bajjak/config.h create mode 100644 keyboards/bajjak/info.json create mode 100644 keyboards/bajjak/keymaps/default/keymap.c create mode 100644 keyboards/bajjak/keymaps/default/readme.md create mode 100644 keyboards/bajjak/led_i2c.c create mode 100644 keyboards/bajjak/matrix.c create mode 100644 keyboards/bajjak/post_config.h create mode 100644 keyboards/bajjak/readme.md create mode 100644 keyboards/bajjak/rules.mk diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c new file mode 100644 index 000000000000..73857055d8ca --- /dev/null +++ b/keyboards/bajjak/bajjak.c @@ -0,0 +1,398 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) +Copyright 2021 Gary Kong (@garykong) + +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 . +*/ + +#include "bajjak.h" + +extern inline void ergodox_board_led_on(void); +extern inline void ergodox_right_led_1_on(void); +extern inline void ergodox_right_led_2_on(void); +extern inline void ergodox_right_led_3_on(void); +extern inline void ergodox_right_led_on(uint8_t led); + +extern inline void ergodox_board_led_off(void); +extern inline void ergodox_right_led_1_off(void); +extern inline void ergodox_right_led_2_off(void); +extern inline void ergodox_right_led_3_off(void); +extern inline void ergodox_right_led_off(uint8_t led); + +extern inline void ergodox_led_all_on(void); +extern inline void ergodox_led_all_off(void); + +extern inline void ergodox_right_led_1_set(uint8_t n); +extern inline void ergodox_right_led_2_set(uint8_t n); +extern inline void ergodox_right_led_3_set(uint8_t n); +extern inline void ergodox_right_led_set(uint8_t led, uint8_t n); + +extern inline void ergodox_led_all_set(uint8_t n); + +keyboard_config_t keyboard_config; + +bool i2c_initialized = 0; +i2c_status_t mcp23018_status = 0x20; + +void matrix_init_kb(void) { + // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") + TCCR1A = 0b10101001; // set and configure fast PWM + TCCR1B = 0b00001001; // set and configure fast PWM + + // (tied to Vcc for hardware convenience) + DDRB &= ~(1<<4); // set B(4) as input + PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + + // unused pins - D4, D5, E6 + // set as input with internal pull-up enabled + DDRD &= ~(1<<5 | 1<<4); + DDRE &= ~(1<<6); + PORTD |= (1<<5 | 1<<4); + PORTE |= (1<<6); + + keyboard_config.raw = eeconfig_read_kb(); + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); +#ifdef RGB_MATRIX_ENABLE + if (keyboard_config.rgb_matrix_enable) { + rgb_matrix_set_flags(LED_FLAG_ALL); + } else { + rgb_matrix_set_flags(LED_FLAG_NONE); + } +#endif + + ergodox_blink_all_leds(); + + matrix_init_user(); +} + +void ergodox_blink_all_leds(void) +{ + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_DEFAULT); + ergodox_right_led_1_on(); + _delay_ms(50); + ergodox_right_led_2_on(); + _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(); + } +#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(); + } +#endif + + //ergodox_led_all_on(); + //_delay_ms(333); + ergodox_led_all_off(); +} + +uint8_t init_mcp23018(void) { + mcp23018_status = 0x20; + + // I2C subsystem + + // uint8_t sreg_prev; + // sreg_prev=SREG; + // cli(); + + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + _delay_ms(1000); + } + // i2c_init(); // on pins D(1,0) + // _delay_ms(1000); + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + i2c_stop(); + + // set pull-up + // - unused : on : 1 + // - input : on : 1 + // - driving : off : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b01111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + +out: + i2c_stop(); + +#ifdef LEFT_LEDS + if (!mcp23018_status) mcp23018_status = ergodox_left_leds_update(); +#endif // LEFT_LEDS + + // SREG=sreg_prev; + + 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 A +#define LEFT_LED_2_SHIFT 7 // in MCP23018 port B + + // 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_1<event.pressed) { + keyboard_config.led_level++; + if (keyboard_config.led_level > 4) { + keyboard_config.led_level = 0; + } + ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + eeconfig_update_kb(keyboard_config.raw); + layer_state_set_kb(layer_state); + } + break; +#ifdef RGB_MATRIX_ENABLE + case TOGGLE_LAYER_COLOR: + if (record->event.pressed) { + keyboard_config.disable_layer_led ^= 1; + if (keyboard_config.disable_layer_led) + rgb_matrix_set_color_all(0, 0, 0); + eeconfig_update_kb(keyboard_config.raw); + } + break; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + keyboard_config.rgb_matrix_enable = false; + rgb_matrix_set_color_all(0, 0, 0); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + keyboard_config.rgb_matrix_enable = true; + } + break; + } + eeconfig_update_kb(keyboard_config.raw); + } + return false; +#endif + } + return process_record_user(keycode, record); +} +#endif + +void eeconfig_init_kb(void) { // EEPROM is getting reset! + keyboard_config.raw = 0; + keyboard_config.led_level = 4; + keyboard_config.rgb_matrix_enable = true; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h new file mode 100644 index 000000000000..49c3bd98f065 --- /dev/null +++ b/keyboards/bajjak/bajjak.h @@ -0,0 +1,178 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) +Copyright 2021 Gary Kong (@garykong) + +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 . +*/ + +#pragma once + +#include "quantum.h" +#include +#include +#include "i2c_master.h" + +#if defined(KEYBOARD_ergodox_ez_glow) +# include "glow.h" +#elif defined(KEYBOARD_ergodox_ez_shine) +# include "shine.h" +#endif + +// I2C aliases and register addresses (see "mcp23018.md") +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) +#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) +#define IODIRA 0x00 // i/o direction register +#define IODIRB 0x01 +#define GPPUA 0x0C // GPIO pull-up resistor register +#define GPPUB 0x0D +#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define GPIOB 0x13 +#define OLATA 0x14 // output latch register +#define OLATB 0x15 + +extern i2c_status_t mcp23018_status; +#define ERGODOX_EZ_I2C_TIMEOUT 100 + +void init_ergodox(void); +void ergodox_blink_all_leds(void); +uint8_t init_mcp23018(void); +uint8_t ergodox_left_leds_update(void); + +#ifndef LED_BRIGHTNESS_LO +#define LED_BRIGHTNESS_LO 15 +#endif +#ifndef LED_BRIGHTNESS_HI +#define LED_BRIGHTNESS_HI 255 +#endif + + +inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } + +inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<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_1_off(void) { ergodox_left_led_1 = 0; } +inline void ergodox_left_led_2_off(void) { ergodox_left_led_2 = 0; } +#endif // LEFT_LEDS + +inline void ergodox_led_all_on(void) { + ergodox_board_led_on(); + 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(); +#endif // LEFT_LEDS +} + +inline void ergodox_led_all_off(void) +{ + ergodox_board_led_off(); + 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(); +#endif // LEFT_LEDS +} + +inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } +inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void ergodox_right_led_set(uint8_t led, uint8_t n) { + (led == 1) ? (OCR1A = n) : + (led == 2) ? (OCR1B = n) : + (OCR1C = n); +} + +inline void ergodox_led_all_set(uint8_t n) { + ergodox_right_led_1_set(n); + ergodox_right_led_2_set(n); + ergodox_right_led_3_set(n); +} + +enum ergodox_ez_keycodes { + LED_LEVEL = SAFE_RANGE, + TOGGLE_LAYER_COLOR, + EZ_SAFE_RANGE, +}; + +#ifndef WEBUSB_ENABLE +# define WEBUSB_PAIR KC_NO +#endif + +typedef union { + uint32_t raw; + struct { + uint8_t led_level :3; + bool disable_layer_led :1; + bool rgb_matrix_enable :1; + }; +} keyboard_config_t; + +extern keyboard_config_t keyboard_config; + +/* + * LEFT HAND: LINES 115-122 + * RIGHT HAND: LINES 124-131 + */ +#define LAYOUT_6x7( \ + 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, L26, R20, 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, L45, R41, R42, R43, R44, R45, R46, \ + L50, L51, L52, L53, L54, R52, R53, R54, R55, R56, \ + L65, L66, R60, R61, \ + L64, R62, \ + L63, L62, L61, R65, R64, R63 \ + ) \ + /* matrix positions */ \ + { \ + { L00, L10, L20, L30, L40, L50, KC_NO }, \ + { L01, L11, L21, L31, L41, L51, L61 }, \ + { L02, L12, L22, L32, L42, L52, L62 }, \ + { L03, L13, L23, L33, L43, L53, L63 }, \ + { L04, L14, L24, L34, L44, L54, L64 }, \ + { L05, L15, L25, L35, L45, KC_NO, L65 }, \ + { L06, L16, L26, L36, KC_NO, KC_NO, L66 }, \ + { R00, R10, R20, R30, KC_NO, KC_NO, R60 }, \ + { R01, R11, R21, R31, R41, KC_NO, R61 }, \ + { R02, R12, R22, R32, R42, R52, R62 }, \ + { R03, R13, R23, R33, R43, R53, R63 }, \ + { R04, R14, R24, R34, R44, R54, R64 }, \ + { R05, R15, R25, R35, R45, R55, R65 },\ + { R06, R16, R26, R36, R46, R56, KC_NO } \ + } diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h new file mode 100644 index 000000000000..08bf53c10b9d --- /dev/null +++ b/keyboards/bajjak/config.h @@ -0,0 +1,160 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) +Copyright 2021 Gary Kong (@garykong) + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x1209 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define PRODUCT BAJJAK KEYBOARD + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS 7 + +#define COL_EXPANDED { true, true, true, true, true, true, true, false, false, false, false, false, false, false } +#define MATRIX_ONBOARD_ROW_PINS { 0, 0, 0, 0, 0, 0, 0, B0, B1, B2, B3, D2, D3, C6 } +#define MATRIX_ONBOARD_COL_PINS { F0, F1, F4, F5, F6, F7, D7 } +#define DIODE_DIRECTION COL2ROW +#define EXPANDER_COL_REGISTER GPIOB +#define EXPANDER_ROW_REGISTER GPIOA +#define MATRIX_EXPANDER_COL_PINS { 6, 5, 4, 3, 2, 1, 0 } +#define MATRIX_EXPANDER_ROW_PINS { 0, 1, 2, 3, 4, 5, 6 } + + +#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 TAPPING_TOGGLE 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +#ifndef LED_BRIGHTNESS_LO +#define LED_BRIGHTNESS_LO 15 +#endif +#ifndef LED_BRIGHTNESS_HI +#define LED_BRIGHTNESS_HI 255 +#endif +#define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_HI) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN C7 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 255 +#define RGBLIGHT_VAL_STEP 12 + +// Pick one of the modes +// Defaults to 15 mirror, for legacy behavior + +// #define ERGODOX_LED_15 // Addresses 15 LEDs, but same position on both halves +// #define ERGODOX_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored +// #define ERGODOX_LED_30 // Addresses all 30 LED individually + +/* fix space cadet rollover issue */ +#define DISABLE_SPACE_CADET_ROLLOVER + +#define RGBW + +#define RGBLIGHT_SLEEP + +/* + * The debounce filtering reports a key/switch change directly, + * without any extra delay. After that the debounce logic will filter + * all further changes, until the key/switch reports the same state for + * the given count of scans. + * So a perfect switch will get a short debounce period and + * a bad key will get a much longer debounce period. + * The result is an adaptive debouncing period for each switch. + * + * If you don't define it here, the matrix code will default to + * 5, which is now closer to 10ms, but still plenty according to + * manufacturer specs. + */ + + +// RGB backlight +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define DRIVER_COUNT 2 +#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 RGB_MATRIX_LED_PROCESS_LIMIT 5 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED true + +// #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF +/* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */ +/* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */ +/* #define RGBLIGHT_COLOR_LAYER_3 0x00, 0xFF, 0x00 */ +/* #define RGBLIGHT_COLOR_LAYER_4 0xFF, 0xFF, 0x00 */ +/* #define RGBLIGHT_COLOR_LAYER_5 0x00, 0xFF, 0xFF */ +/* #define RGBLIGHT_COLOR_LAYER_6 0xFF, 0x00, 0xFF */ +/* #define RGBLIGHT_COLOR_LAYER_7 0xFF, 0xFF, 0xFF */ + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json new file mode 100644 index 000000000000..2be1bafccc2c --- /dev/null +++ b/keyboards/bajjak/info.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "bajjak", + "width": 17, + "height": 8, + + "layouts": { + "LAYOUT_6x7": { + "layout": [ + {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, + {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, + + {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25}, + {"x":9.5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, + + {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, + {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, + + {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":3.75}, + {"x":9.5, "y":3.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, + + {"x":0, "y":4.375, "w":1.5}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":3}, {"x":4.5, "y":4.125}, {"x":5.5, "y":4.25}, + {"x":10.5, "y":4.25}, {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375, "w":1.5}, + + {"x":0.5, "y":5.375}, {"x":1.5, "y":5.375}, {"x":2.5, "y":5.125}, {"x":3.5, "y":5}, {"x":4.5, "y":5.125}, + {"x":11.5, "y":5.125}, {"x":12.5, "y":5}, {"x":13.5, "y":5.125}, {"x":14.5, "y":5.375}, {"x":15.5, "y":5.375}, + + {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, + {"x":7, "y":7}, {"x":9, "y":7}, + {"x":5, "y":7, "h":2}, {"x":6, "y":7, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7, "h":2}, {"x":11, "y":7, "h":2} + ] + } + } +} diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c new file mode 100644 index 000000000000..a94609bb51f5 --- /dev/null +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -0,0 +1,218 @@ +#include QMK_KEYBOARD_H +#include "version.h" + +enum layers { + BASE, // default layer + SYMB, // symbols + MDIA, // media keys +}; + +enum custom_keycodes { +#ifdef ORYX_CONFIGURATOR + VRSN = EZ_SAFE_RANGE, +#else + VRSN = SAFE_RANGE, +#endif + RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Eject | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Caps | A | S | D | F | G | L2 | | L1 | H | J | K | L | ; | ' | + * |--------+------+------+------+------+------+------' `------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+------' `-----+------+------+------+------+-------' + * | CTRL |iGUI\'"|ALT \ | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |BackSp| Del |------| |------| Enter |Space | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + * + */ +[BASE] = LAYOUT_6x7( +// Left hand Right hand + 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_EJCT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, TG(MDIA), TG(SYMB), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + 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_LCTRL, GUI_T(KC_GRV), ALT_T(KC_BSLS), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), + CTL_T(KC_ESC), KC_LALT, KC_RGUI, CTL_T(KC_RALT), + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC +), +/* Keymap 1: Sybol layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Eject | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |NUMLCK| = | \ | * |PSCREEN | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ! | @ | { | } | | | | | | | 7 | 8 | 9 | - | SLCK | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Caps | # | $ | ( | ) | ` | | | | | 4 | 5 | 6 | + | PAUSE | + * |--------+------+------+------+------+------+------' `------+------+------+------+------+------+--------| + * | LShift | % | ^ | [ | ] | ~ | | | 1 | 2 | 3 |Enter | RShift | + * `--------+------+------+------+------+------' `-----+------+------+------+------+-------' + * | CTRL |GUI\'"|ALT \ | Left | Right| | Up | Down | . | 0 | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |BackSp| Del |------| |------| Enter |Space | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + * + */ +[SYMB] = LAYOUT_6x7( +// Left hand Right hand + 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_EJCT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, KC_PSCR, + KC_TAB, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, _______, KC_P7 , KC_P8 , KC_P9, KC_MINS, KC_SLCK, + KC_CAPS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, _______, KC_P4 , KC_P5 , KC_P6, KC_PLUS, KC_PAUS, + KC_LSFT, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_P1 , KC_P2 , KC_P3, KC_PENT, KC_RSFT, + KC_LCTRL, KC_LGUI, ALT_T(KC_INSERT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_PDOT, KC_P0, _______, + CTL_T(KC_ESC), KC_LALT, KC_RGUI, CTL_T(KC_RALT), + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | SLEEP |BR_Up |BR_Dn | | | | | | Prev | Play | Next | Mute |Vol_Up|Vol_Dn| Eject | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | | Lclk | MsUp | Rclk |MsWhUp| | | | | | | | | | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Caps | |MsLeft|MsDown|MsRght|MsWhDw| | | | | | | | | | + * |--------+------+------+------+------+------+------' `------+------+------+------+------+------+--------| + * | LShift | |MsWhL | |MsWhR | | | | | | | | | + * `--------+------+------+------+------+------' `-----+------+------+------+------+-------' + * | CTRL |GUI\'"|ALT \ | Left | Right| | Up | Down | | | RESET | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |BackSp| Del |------| |------| Enter |Space | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + * + */ +[MDIA] = LAYOUT_6x7( +// Left hand Right hand + KC_SLEP, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_EJCT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______, + KC_LCTRL, KC_LGUI, ALT_T(KC_INSERT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, _______, _______, RESET, + CTL_T(KC_ESC), KC_LALT, KC_RGUI, CTL_T(KC_RALT), + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC +), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case VRSN: + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + return false; + #ifdef RGBLIGHT_ENABLE + case RGB_SLD: + rgblight_mode(1); + return false; + #endif + } + } + return true; +} + +// Runs just one time when the keyboard initializes. +void keyboard_post_init_user(void) { +#ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); +#endif +}; + +// Runs whenever there is a layer state change. +layer_state_t layer_state_set_user(layer_state_t state) { + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + uint8_t layer = get_highest_layer(state); + switch (layer) { + case 0: + #ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); + #endif + break; + case 1: + ergodox_right_led_1_on(); + #ifdef RGBLIGHT_COLOR_LAYER_1 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); + #endif + break; + case 2: + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_2 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); + #endif + break; + case 3: + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_3 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); + #endif + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_4 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); + #endif + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_5 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); + #endif + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_6 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); + #endif + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_7 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); + #endif + break; + default: + break; + } + + return state; +}; diff --git a/keyboards/bajjak/keymaps/default/readme.md b/keyboards/bajjak/keymaps/default/readme.md new file mode 100644 index 000000000000..e4ab4eef0944 --- /dev/null +++ b/keyboards/bajjak/keymaps/default/readme.md @@ -0,0 +1,27 @@ +# BAJJAK +## Changelog + +* March 2021: + * This keymap is for a 6x7 array keyboard based on Ergodox EZ. + * __Not compatible with Ergodox EZ.__ + +# Full-Text of Ergodox EZ +> # ErgoDox EZ Default Configuration +> +> ## Changelog +> +> * March 2021: +> * This keymap is for keyboards in a 6x7 array based on Ergodox EZ. +> * Not compatible with Ergodox EZ. +> * Dec 2016: +> * Added LED keys +> * Refreshed layout graphic, comes from http://configure.ergodox-ez.com now. +> * Sep 22, 2016: +> * Created a new key in layer 1 (bottom-corner key) that resets the EEPROM. +> * Feb 2, 2016 (V1.1): +> * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you > tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press > and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening > the Start menu on Windows). +> +> This is what we ship with out of the factory. :) The image says it all: +> +> ![Default](https://i.imgur.com/Be53jH7.png) +> diff --git a/keyboards/bajjak/led_i2c.c b/keyboards/bajjak/led_i2c.c new file mode 100644 index 000000000000..5d207c71aae6 --- /dev/null +++ b/keyboards/bajjak/led_i2c.c @@ -0,0 +1,55 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + +#ifdef RGBLIGHT_ENABLE + +# include "bajjak.h" + +void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { + i2c_init(); + i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT); + int i = 0; +# if defined(ERGODOX_LED_30) + // prevent right-half code from trying to bitbang all 30 + // so with 30 LEDs, we count from 29 to 15 here, and the + // other half does 0 to 14. + uint8_t half_led_num = RGBLED_NUM / 2; + for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i) +# elif defined(ERGODOX_LED_15_MIRROR) + for (i = 0; i < led_num; ++i) +# else // ERGDOX_LED_15 non-mirrored + for (i = led_num - 1; i >= 0; --i) +# endif + { + uint8_t *data = (uint8_t *)(led + i); + i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); + i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); + i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); +#ifdef RGBW + i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); +#endif + } + i2c_stop(); + + ws2812_setleds(led, led_num); +} + + +#endif // RGBLIGHT_ENABLE diff --git a/keyboards/bajjak/matrix.c b/keyboards/bajjak/matrix.c new file mode 100644 index 000000000000..15a60c50f3fd --- /dev/null +++ b/keyboards/bajjak/matrix.c @@ -0,0 +1,256 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) +Copyright 2021 Gary Kong (@garykong) + +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 . +*/ + + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "debounce.h" +#include "bajjak.h" + + +/* + * This constant define not debouncing time in msecs, assuming eager_pr. + * + * On Ergodox matrix scan rate is relatively low, because of slow I2C. + * Now it's only 317 scans/second, or about 3.15 msec/scan. + * According to Cherry specs, debouncing time is 5 msec. + * + * However, some switches seem to have higher debouncing requirements, or + * something else might be wrong. (Also, the scan speed has improved since + * that comment was written.) + */ + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t mcp23018_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_raw_matrix_row(uint8_t index) { + matrix_row_t temp = read_cols(index); + if (raw_matrix[index] != temp) { + raw_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (mcp23018_status) { // if there was an error + if (++mcp23018_reset_loop == 0) { + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + ergodox_blink_all_leds(); +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_init(); // re-init driver on reconnect +#endif + } + } + } + +#ifdef LEFT_LEDS + mcp23018_status = ergodox_left_leds_update(); +#endif // LEFT_LEDS + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + changed |= store_raw_matrix_row(left_index); + changed |= store_raw_matrix_row(right_index); + + unselect_rows(); + } + + return changed; +} + +/* Column pin configuration + * + * Teensy + * col: 0 1 2 3 4 5 + * pin: F0 F1 F4 F5 F6 F7 + * + * MCP23018 + * col: 0 1 2 3 4 5 + * pin: B5 B4 B3 B2 B1 B0 + */ +static void init_cols(void) { + // init on mcp23018 + // not needed, already done as part of init_mcp23018() + + // init on teensy + setPinInputHigh(F0); + setPinInputHigh(F1); + setPinInputHigh(F4); + setPinInputHigh(F5); + setPinInputHigh(F6); + setPinInputHigh(F7); + setPinInputHigh(D7); +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < 7) { + if (mcp23018_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + // reading GPIOB (column port) since in mcp23018's sequential mode + // it is addressed directly after writing to GPIOA in select_row() + mcp23018_status = i2c_start(I2C_ADDR_READ, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_read_nack(ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status < 0) goto out; + data = ~((uint8_t)mcp23018_status); + mcp23018_status = I2C_STATUS_SUCCESS; + out: + i2c_stop(); + return data; + } + } else { + /* read from teensy + * bitmask is 0b11110011, but we want those all + * in the lower six bits. + * we'll return 1s for the top two, but that's harmless. + */ + + return ~( (PINF & 0x03) | ((PINF & 0xF0) >> 2) | ((PIND & 0x80) >> 1) ); + } +} + +/* Row pin configuration + * + * Teensy + * row: 7 8 9 10 11 12 13 + * pin: B0 B1 B2 B3 D2 D3 C6 + * + * MCP23018 + * row: 0 1 2 3 4 5 6 + * pin: A0 A1 A2 A3 A4 A5 A6 + */ +static void unselect_rows(void) { + // no need to unselect on mcp23018, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect on teensy + setPinInput(B0); + setPinInput(B1); + setPinInput(B2); + setPinInput(B3); + setPinInput(D2); + setPinInput(D3); + setPinInput(C6); +} + +static void select_row(uint8_t row) { + if (row < 7) { + // select on mcp23018 + if (!mcp23018_status) { + // set active row low : 0 + // set other rows hi-Z : 1 + mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPIOA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0xFF & ~(1 << row), ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + out: + i2c_stop(); + } + } else { + // select on teensy + // Output low(DDR:1, PORT:0) to select + switch (row) { + case 7: + setPinOutput(B0); + writePinLow(B0); + break; + case 8: + setPinOutput(B1); + writePinLow(B1); + break; + case 9: + setPinOutput(B2); + writePinLow(B2); + break; + case 10: + setPinOutput(B3); + writePinLow(B3); + break; + case 11: + setPinOutput(D2); + writePinLow(D2); + break; + case 12: + setPinOutput(D3); + writePinLow(D3); + break; + case 13: + setPinOutput(C6); + writePinLow(C6); + break; + } + } +} + +// DO NOT REMOVE +// Needed for proper wake/sleep +void matrix_power_up(void) { + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } + +} diff --git a/keyboards/bajjak/post_config.h b/keyboards/bajjak/post_config.h new file mode 100644 index 000000000000..0d4fe5c6832b --- /dev/null +++ b/keyboards/bajjak/post_config.h @@ -0,0 +1,40 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk +Copyright 2015 ZSA Technology Labs Inc (@zsa) +Copyright 2020 Christopher Courtney (@drashna) + +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 . +*/ + +#pragma once + +#if !defined(ERGODOX_LED_15) && !defined(ERGODOX_LED_30) +// if no value is defined, assume previous behavior +// # define ERGODOX_LED_15 +// # define ERGODOX_LED_30 +# define ERGODOX_LED_15_MIRROR +#endif + +#if (defined(ERGODOX_LED_30) + defined(ERGODOX_LED_15) + defined(ERGODOX_LED_15_MIRROR)) != 1 +# error "You must only define one of the ERGODOX_LED options." +#endif + +#ifdef ERGODOX_LED_30 +// If using 30 LEDs, then define that many +# define RGBLED_NUM 30 // Number of LEDs +#else +// If not, then only define 15 +# define RGBLED_NUM 15 // Number of LEDs +#endif diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md new file mode 100644 index 000000000000..9c3b96e71030 --- /dev/null +++ b/keyboards/bajjak/readme.md @@ -0,0 +1,55 @@ +# BAJJAK +* This keyboard is a 6x7 array keyboard based on ergodox ez. +* __Not compatible with Ergodox EZ.__ + +# Full-Text of Ergodox EZ +> # ErgoDox EZ +> +> ![ErgoDox EZ](http://www.coolthings.com/wp-content/uploads/2017/05/ergodox-ez-2.jpg) +> +> The ErgoDox EZ is a mass produced version of the original ErgoDox keyboard, with optional support for > RGB Light (Shine) or RGB Matrix (Glow). +> +> * Keyboard Maintainer: [ZSA Technology Labs Inc](https://github.com/zsa), Firmware maintained by > [drashna](https://github.com/drashna) +> * Hardware Supported: Original ErgoDox, ErgoDox EZ +> * Hardware Availability: [ErgoDox EZ](https://ergodox-ez.com/), [ErgoDox.io](https://ergodox.io) +> +> Make example for this keyboard (after setting up your build environment): +> +> make ergodox_ez:default:flash +> +> For the ErgoDox EZ Shine, and Glow, use one of the following: +> +> make ergodox_ez/shine:default:flash +> make ergodox_ez/glow:default:flash +> +> See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make > instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? > Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +> +> ## Oryx Configuation +> +> If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, this enables a number of the built > in options from the Oryx Configurator. +> +> ### Indicator LEDs +> +> You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right > of the keyboard. These settings are saved in eeprom (persistant memory). +> +> Alternatively, you can set the brightness by calling the following functions: +> +> ```c +> void ergodox_led_all_set(uint8_t level); +> void ergodox_right_led_1_set(uint8_t level); +> void ergodox_right_led_2_set(uint8_t level); +> void ergodox_right_led_3_set(uint8_t level); +> ``` +> +> These settings are not persistent, so you'd need to reset it every time the board starts. +> +> These are on a 0-255 scale +> +> ### RGB Matrix Features +> +> If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make > sure that you enable these options by adding `#define ORYX_CONFIGURATOR` to your keymap's `config.h`. +> +> This changes the `RGB_TOG` keycode so that it will toggle the lights on and off, in a way that will > allow the Smart LEDs to continue to work, even with the rest of the LEDs turned off. +> +> Additionally, a new keycode has been added to toggle the Smart LEDs. Use `TOGGLE_LAYER_COLOR`, if you > aren't already. +> diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk new file mode 100644 index 000000000000..ea31d546c8f3 --- /dev/null +++ b/keyboards/bajjak/rules.mk @@ -0,0 +1,52 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = halfkay + +# If you have Left LEDs (see +# https://geekhack.org/index.php?topic=22780.msg873819#msg873819 for +# details), include the following define: +OPT_DEFS += -DLEFT_LEDS + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +CUSTOM_MATRIX = lite # 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 + +RGB_MATRIX_ENABLE = no # enable later +RGB_MATRIX_DRIVER = IS31FL3731 +DEBOUNCE_TYPE = eager_pr + +# project specific files +SRC += matrix.c \ + led_i2c.c +QUANTUM_LIB_SRC += i2c_master.c + +# LAYOUTS = ergodox + +# Disable unsupported hardware +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no + +# Ergodox EZ Shine +# RGBLIGHT_ENABLE = yes +# Ergodox EZ Glow +# RGB_MATRIX_ENABLE = yes From 67fc5c9bfaedf2a040de538c77707b39480a2570 Mon Sep 17 00:00:00 2001 From: garykong Date: Tue, 30 Mar 2021 13:45:23 +0900 Subject: [PATCH 02/30] [keymap] add keymap 5x6 --- keyboards/bajjak/keymaps/5x6/keymap.c | 212 ++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 keyboards/bajjak/keymaps/5x6/keymap.c diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c new file mode 100644 index 000000000000..1fd125788f3f --- /dev/null +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -0,0 +1,212 @@ +#include QMK_KEYBOARD_H +#include "version.h" + +enum layers { + BASE, // default layer + SYMB, // symbols + MDIA, // media keys +}; + +enum custom_keycodes { +#ifdef ORYX_CONFIGURATOR + VRSN = EZ_SAFE_RANGE, +#else + VRSN = SAFE_RANGE, +#endif + RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ------------------------------------------- ------------------------------------------- + * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G | | H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | + * ------------------------------------------- ------------------------------------------- + * | CTRL |GUI\` |ALT \ | Left |Right | | Up | Down | [ | ] | L1 | + * ---------------------------------- ---------------------------------- + * ------------- --------------- + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ------|------|------| |------+--------+------ + * | | | Home | | PgUp | | | + * |Back | Del |------| |------| Enter |Space | + * |Space | | End | | PgDn | | | + * -------------------- ---------------------- + * + */ +[BASE] = LAYOUT_6x7( +// Left hand Right hand + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + 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_LCTRL, GUI_T(KC_GRV), ALT_T(KC_BSLS), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, DF(SYMB), + CTL_T(KC_ESC), KC_LALT, KC_RGUI, CTL_T(KC_HAEN), + KC_HOME, KC_PGUP, + KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENT, KC_SPC +), +/* Keymap 1: Sybol layer + * + * ------------------------------------------- ------------------------------------------- + * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | ! | @ | { | } | | |NUMLCK| 7 | 8 | 9 | - | / | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | # | $ | ( | ) | | | | 4 | 5 | 6 | + | * | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | LShift | % | ^ | [ | ] | | | L2 | 1 | 2 | 3 | = | RShift | + * ------------------------------------------- ------------------------------------------- + * | CTRL |GUI\~`|ALT \ | Left | Right| | Up | Down | . | 0 | | + * ---------------------------------- ---------------------------------- + * ------------- --------------- + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ------|------|------| |------+--------+------ + * | | | Home | | PgUp | | | + * |BackSp| Del |------| |------| Enter |Space | + * | | | End | | PgDn | | | + * -------------------- ---------------------- + * + */ +[SYMB] = LAYOUT_6x7( +// Left hand Right hand + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_P7 , KC_P8 , KC_P9, KC_MINS, KC_PSLS, + XXXXXXX, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P4 , KC_P5 , KC_P6, KC_PLUS, KC_PAST, + _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, XXXXXXX, DF(MDIA), KC_P1 , KC_P2 , KC_P3, KC_PEQL, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PDOT, KC_P0, DF(BASE), + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ +), +/* Keymap 2: Media and mouse keys + * + * ------------------------------------------- ------------------------------------------- + * | SLEEP |BR_Up |BR_Dn | | |Eject | | Prev | Play | Next | Mute |Vol_Up| Vol_Dn | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk |MsWhUp| | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | RESET | |MsLeft|MsDown|MsRght|MsWhDw| | | | | | | | + * |--------+------+------+------+------+------| |------|------+------+------+------+--------| + * | LShift | |MsWhL | |MsWhR | | | | | | | | RShift | + * ------------------------------------------- ------------------------------------------- + * | CTRL |GUI\~`|ALT \ | Left | Right| | Up | Down | | | L0 | +* ---------------------------------- ----------------------------------- + * ------------- --------------- + * |Ctrl/ESC|LALT| | RGUI |Ctrl/Alt| + * ------|------|------| |------+--------+------ + * | | | Home | | PgUp | | | + * |BackSp| Del |------| |------| Enter |Space | + * | | | End | | PgDn | | | + * -------------------- ---------------------- + * + */ +[MDIA] = LAYOUT_6x7( +// Left hand Right hand + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_SLEP, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, + XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RESET, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_WH_L, XXXXXXX, KC_WH_R, XXXXXXX, DF(SYMB), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, DF(BASE), + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ +), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case VRSN: + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + return false; + #ifdef RGBLIGHT_ENABLE + case RGB_SLD: + rgblight_mode(1); + return false; + #endif + } + } + return true; +} + +// Runs just one time when the keyboard initializes. +void keyboard_post_init_user(void) { +#ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); +#endif +}; + +// Runs whenever there is a layer state change. +layer_state_t layer_state_set_user(layer_state_t state) { + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + uint8_t layer = get_highest_layer(state); + switch (layer) { + case 0: + #ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); + #endif + break; + case 1: + ergodox_right_led_1_on(); + #ifdef RGBLIGHT_COLOR_LAYER_1 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); + #endif + break; + case 2: + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_2 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); + #endif + break; + case 3: + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_3 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); + #endif + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_4 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); + #endif + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_5 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); + #endif + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_6 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); + #endif + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_7 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); + #endif + break; + default: + break; + } + + return state; +}; From a7ccae051d1957b9923fc53e257a3c5cc9ffa932 Mon Sep 17 00:00:00 2001 From: garykong Date: Tue, 30 Mar 2021 13:59:33 +0900 Subject: [PATCH 03/30] fix layouts in info.json --- keyboards/bajjak/info.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json index 2be1bafccc2c..467e5be05351 100644 --- a/keyboards/bajjak/info.json +++ b/keyboards/bajjak/info.json @@ -6,27 +6,27 @@ "layouts": { "LAYOUT_6x7": { "layout": [ - {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, - {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, + {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, + {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, - {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25}, - {"x":9.5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, + {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25}, + {"x":9.5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, - {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, - {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, + {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, + {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, - {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":3.75}, - {"x":9.5, "y":3.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, + {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":3.25}, + {"x":9.5, "y":3.25}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, - {"x":0, "y":4.375, "w":1.5}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":3}, {"x":4.5, "y":4.125}, {"x":5.5, "y":4.25}, - {"x":10.5, "y":4.25}, {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375, "w":1.5}, + {"x":0, "y":4.375, "w":1.5}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, {"x":5.5, "y":4.25}, + {"x":10.5, "y":4.25}, {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375, "w":1.5}, - {"x":0.5, "y":5.375}, {"x":1.5, "y":5.375}, {"x":2.5, "y":5.125}, {"x":3.5, "y":5}, {"x":4.5, "y":5.125}, - {"x":11.5, "y":5.125}, {"x":12.5, "y":5}, {"x":13.5, "y":5.125}, {"x":14.5, "y":5.375}, {"x":15.5, "y":5.375}, + {"x":0, "y":5.375, "w":1.5}, {"x":1.5, "y":5.375}, {"x":2.5, "y":5.125}, {"x":3.5, "y":5}, {"x":4.5, "y":5.125}, + {"x":11.5, "y":5.125}, {"x":12.5, "y":5}, {"x":13.5, "y":5.125}, {"x":14.5, "y":5.375}, {"x":15.5, "y":5.375, "w":1.5}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":7, "y":7}, {"x":9, "y":7}, - {"x":5, "y":7, "h":2}, {"x":6, "y":7, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7, "h":2}, {"x":11, "y":7, "h":2} + {"x":5, "y":7, "h":2}, {"x":6, "y":7, "h":2}, {"x":7, "y":8}, {"x":9, "y":8}, {"x":10, "y":7, "h":2}, {"x":11, "y":7, "h":2} ] } } From 5aa20f5ce195bac5006b80e58e8a7c78147983e8 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Tue, 6 Apr 2021 11:39:59 +0900 Subject: [PATCH 04/30] [keymap] Add GPL2 + license in keymap.c --- keyboards/bajjak/keymaps/5x6/keymap.c | 16 ++++++++++++++++ keyboards/bajjak/keymaps/default/keymap.c | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c index 1fd125788f3f..9c95c4fb8f53 100644 --- a/keyboards/bajjak/keymaps/5x6/keymap.c +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Gary Kong + * + * 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 . + */ + #include QMK_KEYBOARD_H #include "version.h" diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c index a94609bb51f5..f3d0443931bd 100644 --- a/keyboards/bajjak/keymaps/default/keymap.c +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Gary Kong + * + * 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 . + */ + #include QMK_KEYBOARD_H #include "version.h" From f23415e6702eff0ea215aaf97a46e90637f31988 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Tue, 6 Apr 2021 11:54:43 +0900 Subject: [PATCH 05/30] [keyboard] Renamed the function from ergodox to bajjak --- keyboards/bajjak/bajjak.c | 110 ++++++++++----------- keyboards/bajjak/bajjak.h | 94 +++++++++--------- keyboards/bajjak/config.h | 6 +- keyboards/bajjak/keymaps/5x6/keymap.c | 30 +++--- keyboards/bajjak/keymaps/default/keymap.c | 30 +++--- keyboards/bajjak/keymaps/default/readme.md | 4 +- keyboards/bajjak/led_i2c.c | 14 +-- keyboards/bajjak/matrix.c | 16 +-- keyboards/bajjak/post_config.h | 14 +-- keyboards/bajjak/readme.md | 2 +- keyboards/bajjak/rules.mk | 6 +- 11 files changed, 159 insertions(+), 167 deletions(-) diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c index 73857055d8ca..eab38197867e 100644 --- a/keyboards/bajjak/bajjak.c +++ b/keyboards/bajjak/bajjak.c @@ -21,27 +21,27 @@ along with this program. If not, see . #include "bajjak.h" -extern inline void ergodox_board_led_on(void); -extern inline void ergodox_right_led_1_on(void); -extern inline void ergodox_right_led_2_on(void); -extern inline void ergodox_right_led_3_on(void); -extern inline void ergodox_right_led_on(uint8_t led); +extern inline void BAJJAK_board_led_on(void); +extern inline void BAJJAK_right_led_1_on(void); +extern inline void BAJJAK_right_led_2_on(void); +extern inline void BAJJAK_right_led_3_on(void); +extern inline void BAJJAK_right_led_on(uint8_t led); -extern inline void ergodox_board_led_off(void); -extern inline void ergodox_right_led_1_off(void); -extern inline void ergodox_right_led_2_off(void); -extern inline void ergodox_right_led_3_off(void); -extern inline void ergodox_right_led_off(uint8_t led); +extern inline void BAJJAK_board_led_off(void); +extern inline void BAJJAK_right_led_1_off(void); +extern inline void BAJJAK_right_led_2_off(void); +extern inline void BAJJAK_right_led_3_off(void); +extern inline void BAJJAK_right_led_off(uint8_t led); -extern inline void ergodox_led_all_on(void); -extern inline void ergodox_led_all_off(void); +extern inline void BAJJAK_led_all_on(void); +extern inline void BAJJAK_led_all_off(void); -extern inline void ergodox_right_led_1_set(uint8_t n); -extern inline void ergodox_right_led_2_set(uint8_t n); -extern inline void ergodox_right_led_3_set(uint8_t n); -extern inline void ergodox_right_led_set(uint8_t led, uint8_t n); +extern inline void BAJJAK_right_led_1_set(uint8_t n); +extern inline void BAJJAK_right_led_2_set(uint8_t n); +extern inline void BAJJAK_right_led_3_set(uint8_t n); +extern inline void BAJJAK_right_led_set(uint8_t led, uint8_t n); -extern inline void ergodox_led_all_set(uint8_t n); +extern inline void BAJJAK_led_all_set(uint8_t n); keyboard_config_t keyboard_config; @@ -65,7 +65,7 @@ void matrix_init_kb(void) { PORTE |= (1<<6); keyboard_config.raw = eeconfig_read_kb(); - ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + BAJJAK_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); #ifdef RGB_MATRIX_ENABLE if (keyboard_config.rgb_matrix_enable) { rgb_matrix_set_flags(LED_FLAG_ALL); @@ -74,54 +74,54 @@ void matrix_init_kb(void) { } #endif - ergodox_blink_all_leds(); + BAJJAK_blink_all_leds(); matrix_init_user(); } -void ergodox_blink_all_leds(void) +void BAJJAK_blink_all_leds(void) { - ergodox_led_all_off(); - ergodox_led_all_set(LED_BRIGHTNESS_DEFAULT); - ergodox_right_led_1_on(); + BAJJAK_led_all_off(); + BAJJAK_led_all_set(LED_BRIGHTNESS_DEFAULT); + BAJJAK_right_led_1_on(); _delay_ms(50); - ergodox_right_led_2_on(); + BAJJAK_right_led_2_on(); _delay_ms(50); - ergodox_right_led_3_on(); + BAJJAK_right_led_3_on(); _delay_ms(50); #ifdef LEFT_LEDS - ergodox_left_led_1_on(); + BAJJAK_left_led_1_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = BAJJAK_left_leds_update(); } - ergodox_left_led_2_on(); + BAJJAK_left_led_2_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = BAJJAK_left_leds_update(); } #endif - ergodox_right_led_1_off(); + BAJJAK_right_led_1_off(); _delay_ms(50); - ergodox_right_led_2_off(); + BAJJAK_right_led_2_off(); _delay_ms(50); - ergodox_right_led_3_off(); + BAJJAK_right_led_3_off(); #ifdef LEFT_LEDS _delay_ms(50); - ergodox_left_led_1_off(); + BAJJAK_left_led_1_off(); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = BAJJAK_left_leds_update(); } _delay_ms(50); - ergodox_left_led_2_off(); + BAJJAK_left_led_2_off(); if (!mcp23018_status) { - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = BAJJAK_left_leds_update(); } #endif - //ergodox_led_all_on(); + //BAJJAK_led_all_on(); //_delay_ms(333); - ergodox_led_all_off(); + BAJJAK_led_all_off(); } uint8_t init_mcp23018(void) { @@ -145,26 +145,26 @@ uint8_t init_mcp23018(void) { // - unused : input : 1 // - input : input : 1 // - driving : output : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(IODIRA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_WRITE, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; i2c_stop(); // set pull-up // - unused : on : 1 // - input : on : 1 // - driving : off : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPPUA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b01111111, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_WRITE, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b01111111, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; out: i2c_stop(); #ifdef LEFT_LEDS - if (!mcp23018_status) mcp23018_status = ergodox_left_leds_update(); + if (!mcp23018_status) mcp23018_status = BAJJAK_left_leds_update(); #endif // LEFT_LEDS // SREG=sreg_prev; @@ -173,7 +173,7 @@ uint8_t init_mcp23018(void) { } #ifdef LEFT_LEDS -uint8_t ergodox_left_leds_update(void) { +uint8_t BAJJAK_left_leds_update(void) { if (mcp23018_status) { // if there was an error return mcp23018_status; } @@ -184,17 +184,17 @@ uint8_t ergodox_left_leds_update(void) { // - unused : hi-Z : 1 // - input : hi-Z : 1 // - driving : hi-Z : 1 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); + mcp23018_status = i2c_start(I2C_ADDR_WRITE, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(OLATA, ERGODOX_EZ_I2C_TIMEOUT); + mcp23018_status = i2c_write(OLATA, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; mcp23018_status = i2c_write(0b11111111 - & ~(ergodox_left_led_1< 4) { keyboard_config.led_level = 0; } - ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + BAJJAK_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); eeconfig_update_kb(keyboard_config.raw); layer_state_set_kb(layer_state); } diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index 49c3bd98f065..6dcbceb13fb9 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -26,12 +26,6 @@ along with this program. If not, see . #include #include "i2c_master.h" -#if defined(KEYBOARD_ergodox_ez_glow) -# include "glow.h" -#elif defined(KEYBOARD_ergodox_ez_shine) -# include "shine.h" -#endif - // I2C aliases and register addresses (see "mcp23018.md") #define I2C_ADDR 0b0100000 #define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) @@ -46,12 +40,12 @@ along with this program. If not, see . #define OLATB 0x15 extern i2c_status_t mcp23018_status; -#define ERGODOX_EZ_I2C_TIMEOUT 100 +#define BAJJAK_EZ_I2C_TIMEOUT 100 -void init_ergodox(void); -void ergodox_blink_all_leds(void); +void init_BAJJAK(void); +void BAJJAK_blink_all_leds(void); uint8_t init_mcp23018(void); -uint8_t ergodox_left_leds_update(void); +uint8_t BAJJAK_left_leds_update(void); #ifndef LED_BRIGHTNESS_LO #define LED_BRIGHTNESS_LO 15 @@ -61,69 +55,69 @@ uint8_t ergodox_left_leds_update(void); #endif -inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } -inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } -inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } -inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } -inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } +inline void BAJJAK_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void BAJJAK_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void BAJJAK_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void BAJJAK_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void BAJJAK_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } -inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } -inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } -inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<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)); } +inline void BAJJAK_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void BAJJAK_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void BAJJAK_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } +inline void BAJJAK_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void BAJJAK_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; +bool BAJJAK_left_led_1; +bool BAJJAK_left_led_2; +bool BAJJAK_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 BAJJAK_left_led_1_on(void) { BAJJAK_left_led_1 = 1; } +inline void BAJJAK_left_led_2_on(void) { BAJJAK_left_led_2 = 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 BAJJAK_left_led_1_off(void) { BAJJAK_left_led_1 = 0; } +inline void BAJJAK_left_led_2_off(void) { BAJJAK_left_led_2 = 0; } #endif // LEFT_LEDS -inline void ergodox_led_all_on(void) { - ergodox_board_led_on(); - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); +inline void BAJJAK_led_all_on(void) { + BAJJAK_board_led_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_2_on(); + BAJJAK_right_led_3_on(); #ifdef LEFT_LEDS - ergodox_left_led_1_on(); - ergodox_left_led_2_on(); + BAJJAK_left_led_1_on(); + BAJJAK_left_led_2_on(); #endif // LEFT_LEDS } -inline void ergodox_led_all_off(void) +inline void BAJJAK_led_all_off(void) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); + BAJJAK_board_led_off(); + BAJJAK_right_led_1_off(); + BAJJAK_right_led_2_off(); + BAJJAK_right_led_3_off(); #ifdef LEFT_LEDS - ergodox_left_led_1_off(); - ergodox_left_led_2_off(); + BAJJAK_left_led_1_off(); + BAJJAK_left_led_2_off(); #endif // LEFT_LEDS } -inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } -inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } -inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } -inline void ergodox_right_led_set(uint8_t led, uint8_t n) { +inline void BAJJAK_right_led_1_set(uint8_t n) { OCR1A = n; } +inline void BAJJAK_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void BAJJAK_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void BAJJAK_right_led_set(uint8_t led, uint8_t n) { (led == 1) ? (OCR1A = n) : (led == 2) ? (OCR1B = n) : (OCR1C = n); } -inline void ergodox_led_all_set(uint8_t n) { - ergodox_right_led_1_set(n); - ergodox_right_led_2_set(n); - ergodox_right_led_3_set(n); +inline void BAJJAK_led_all_set(uint8_t n) { + BAJJAK_right_led_1_set(n); + BAJJAK_right_led_2_set(n); + BAJJAK_right_led_3_set(n); } -enum ergodox_ez_keycodes { +enum BAJJAK_ez_keycodes { LED_LEVEL = SAFE_RANGE, TOGGLE_LAYER_COLOR, EZ_SAFE_RANGE, diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h index 08bf53c10b9d..1daf79859e52 100644 --- a/keyboards/bajjak/config.h +++ b/keyboards/bajjak/config.h @@ -92,9 +92,9 @@ along with this program. If not, see . // Pick one of the modes // Defaults to 15 mirror, for legacy behavior -// #define ERGODOX_LED_15 // Addresses 15 LEDs, but same position on both halves -// #define ERGODOX_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored -// #define ERGODOX_LED_30 // Addresses all 30 LED individually +// #define BAJJAK_LED_15 // Addresses 15 LEDs, but same position on both halves +// #define BAJJAK_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored +// #define BAJJAK_LED_30 // Addresses all 30 LED individually /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c index 9c95c4fb8f53..2808ca9a7180 100644 --- a/keyboards/bajjak/keymaps/5x6/keymap.c +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -162,9 +162,9 @@ void keyboard_post_init_user(void) { // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); + BAJJAK_right_led_1_off(); + BAJJAK_right_led_2_off(); + BAJJAK_right_led_3_off(); uint8_t layer = get_highest_layer(state); switch (layer) { @@ -174,48 +174,48 @@ layer_state_t layer_state_set_user(layer_state_t state) { #endif break; case 1: - ergodox_right_led_1_on(); + BAJJAK_right_led_1_on(); #ifdef RGBLIGHT_COLOR_LAYER_1 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); #endif break; case 2: - ergodox_right_led_2_on(); + BAJJAK_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_2 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); #endif break; case 3: - ergodox_right_led_3_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_3 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); #endif break; case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_4 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); #endif break; case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_5 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); #endif break; case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_2_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_6 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); #endif break; case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_2_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_7 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); #endif diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c index f3d0443931bd..7b7c48c9fcc2 100644 --- a/keyboards/bajjak/keymaps/default/keymap.c +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -168,9 +168,9 @@ void keyboard_post_init_user(void) { // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); + BAJJAK_right_led_1_off(); + BAJJAK_right_led_2_off(); + BAJJAK_right_led_3_off(); uint8_t layer = get_highest_layer(state); switch (layer) { @@ -180,48 +180,48 @@ layer_state_t layer_state_set_user(layer_state_t state) { #endif break; case 1: - ergodox_right_led_1_on(); + BAJJAK_right_led_1_on(); #ifdef RGBLIGHT_COLOR_LAYER_1 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); #endif break; case 2: - ergodox_right_led_2_on(); + BAJJAK_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_2 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); #endif break; case 3: - ergodox_right_led_3_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_3 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); #endif break; case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_4 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); #endif break; case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_5 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); #endif break; case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_2_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_6 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); #endif break; case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); + BAJJAK_right_led_1_on(); + BAJJAK_right_led_2_on(); + BAJJAK_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_7 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); #endif diff --git a/keyboards/bajjak/keymaps/default/readme.md b/keyboards/bajjak/keymaps/default/readme.md index e4ab4eef0944..b51705d3707d 100644 --- a/keyboards/bajjak/keymaps/default/readme.md +++ b/keyboards/bajjak/keymaps/default/readme.md @@ -2,8 +2,8 @@ ## Changelog * March 2021: - * This keymap is for a 6x7 array keyboard based on Ergodox EZ. - * __Not compatible with Ergodox EZ.__ + * This keymap is for a 6x7 array keyboard based on bajjak EZ. + * __Not compatible with bajjak EZ.__ # Full-Text of Ergodox EZ > # ErgoDox EZ Default Configuration diff --git a/keyboards/bajjak/led_i2c.c b/keyboards/bajjak/led_i2c.c index 5d207c71aae6..b56446625e6c 100644 --- a/keyboards/bajjak/led_i2c.c +++ b/keyboards/bajjak/led_i2c.c @@ -24,26 +24,26 @@ along with this program. If not, see . void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { i2c_init(); - i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT); + i2c_start(0x84, BAJJAK_EZ_I2C_TIMEOUT); int i = 0; -# if defined(ERGODOX_LED_30) +# if defined(BAJJAK_LED_30) // prevent right-half code from trying to bitbang all 30 // so with 30 LEDs, we count from 29 to 15 here, and the // other half does 0 to 14. uint8_t half_led_num = RGBLED_NUM / 2; for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i) -# elif defined(ERGODOX_LED_15_MIRROR) +# elif defined(BAJJAK_LED_15_MIRROR) for (i = 0; i < led_num; ++i) # else // ERGDOX_LED_15 non-mirrored for (i = led_num - 1; i >= 0; --i) # endif { uint8_t *data = (uint8_t *)(led + i); - i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); - i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); - i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); + i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); + i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); + i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); #ifdef RGBW - i2c_write(*data++, ERGODOX_EZ_I2C_TIMEOUT); + i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); #endif } i2c_stop(); diff --git a/keyboards/bajjak/matrix.c b/keyboards/bajjak/matrix.c index 15a60c50f3fd..1bda542df4c8 100644 --- a/keyboards/bajjak/matrix.c +++ b/keyboards/bajjak/matrix.c @@ -39,7 +39,7 @@ along with this program. If not, see . /* * This constant define not debouncing time in msecs, assuming eager_pr. * - * On Ergodox matrix scan rate is relatively low, because of slow I2C. + * On BAJJAK matrix scan rate is relatively low, because of slow I2C. * Now it's only 317 scans/second, or about 3.15 msec/scan. * According to Cherry specs, debouncing time is 5 msec. * @@ -88,7 +88,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { print("left side not responding\n"); } else { print("left side attached\n"); - ergodox_blink_all_leds(); + BAJJAK_blink_all_leds(); #ifdef RGB_MATRIX_ENABLE rgb_matrix_init(); // re-init driver on reconnect #endif @@ -97,7 +97,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { } #ifdef LEFT_LEDS - mcp23018_status = ergodox_left_leds_update(); + mcp23018_status = BAJJAK_left_leds_update(); #endif // LEFT_LEDS bool changed = false; for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { @@ -148,8 +148,8 @@ static matrix_row_t read_cols(uint8_t row) { uint8_t data = 0; // reading GPIOB (column port) since in mcp23018's sequential mode // it is addressed directly after writing to GPIOA in select_row() - mcp23018_status = i2c_start(I2C_ADDR_READ, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_read_nack(ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status < 0) goto out; + mcp23018_status = i2c_start(I2C_ADDR_READ, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_read_nack(BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status < 0) goto out; data = ~((uint8_t)mcp23018_status); mcp23018_status = I2C_STATUS_SUCCESS; out: @@ -198,9 +198,9 @@ static void select_row(uint8_t row) { if (!mcp23018_status) { // set active row low : 0 // set other rows hi-Z : 1 - mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPIOA, ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0xFF & ~(1 << row), ERGODOX_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_WRITE, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPIOA, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0xFF & ~(1 << row), BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; out: i2c_stop(); } diff --git a/keyboards/bajjak/post_config.h b/keyboards/bajjak/post_config.h index 0d4fe5c6832b..f76e17cf00c7 100644 --- a/keyboards/bajjak/post_config.h +++ b/keyboards/bajjak/post_config.h @@ -20,18 +20,18 @@ along with this program. If not, see . #pragma once -#if !defined(ERGODOX_LED_15) && !defined(ERGODOX_LED_30) +#if !defined(BAJJAK_LED_15) && !defined(BAJJAK_LED_30) // if no value is defined, assume previous behavior -// # define ERGODOX_LED_15 -// # define ERGODOX_LED_30 -# define ERGODOX_LED_15_MIRROR +// # define BAJJAK_LED_15 +// # define BAJJAK_LED_30 +# define BAJJAK_LED_15_MIRROR #endif -#if (defined(ERGODOX_LED_30) + defined(ERGODOX_LED_15) + defined(ERGODOX_LED_15_MIRROR)) != 1 -# error "You must only define one of the ERGODOX_LED options." +#if (defined(BAJJAK_LED_30) + defined(BAJJAK_LED_15) + defined(BAJJAK_LED_15_MIRROR)) != 1 +# error "You must only define one of the BAJJAK_LED options." #endif -#ifdef ERGODOX_LED_30 +#ifdef BAJJAK_LED_30 // If using 30 LEDs, then define that many # define RGBLED_NUM 30 // Number of LEDs #else diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md index 9c3b96e71030..3f1044d3a7e7 100644 --- a/keyboards/bajjak/readme.md +++ b/keyboards/bajjak/readme.md @@ -1,5 +1,5 @@ # BAJJAK -* This keyboard is a 6x7 array keyboard based on ergodox ez. +* This keyboard is a 6x7 array keyboard based on Ergodox EZ. * __Not compatible with Ergodox EZ.__ # Full-Text of Ergodox EZ diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index ea31d546c8f3..d4d8105dd0f2 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -24,7 +24,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -CUSTOM_MATRIX = lite # Custom matrix file for the ErgoDox EZ +CUSTOM_MATRIX = lite # Custom matrix file for the BAJJAK 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 @@ -40,13 +40,11 @@ SRC += matrix.c \ led_i2c.c QUANTUM_LIB_SRC += i2c_master.c -# LAYOUTS = ergodox +# LAYOUTS = bajjak # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no -# Ergodox EZ Shine # RGBLIGHT_ENABLE = yes -# Ergodox EZ Glow # RGB_MATRIX_ENABLE = yes From a5a4bcd44b3f9b1dc89d396ebc19330e582048e1 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Wed, 21 Apr 2021 15:37:54 +0900 Subject: [PATCH 06/30] Remove RGB LED --- keyboards/bajjak/bajjak.c | 171 ---------------------- keyboards/bajjak/bajjak.h | 1 - keyboards/bajjak/config.h | 41 ------ keyboards/bajjak/keymaps/5x6/keymap.c | 41 ------ keyboards/bajjak/keymaps/default/keymap.c | 41 ------ keyboards/bajjak/led_i2c.c | 55 ------- keyboards/bajjak/matrix.c | 3 - keyboards/bajjak/post_config.h | 40 ----- keyboards/bajjak/rules.mk | 8 +- 9 files changed, 1 insertion(+), 400 deletions(-) delete mode 100644 keyboards/bajjak/led_i2c.c delete mode 100644 keyboards/bajjak/post_config.h diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c index eab38197867e..ac17c08c7bef 100644 --- a/keyboards/bajjak/bajjak.c +++ b/keyboards/bajjak/bajjak.c @@ -66,14 +66,6 @@ void matrix_init_kb(void) { keyboard_config.raw = eeconfig_read_kb(); BAJJAK_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); -#ifdef RGB_MATRIX_ENABLE - if (keyboard_config.rgb_matrix_enable) { - rgb_matrix_set_flags(LED_FLAG_ALL); - } else { - rgb_matrix_set_flags(LED_FLAG_NONE); - } -#endif - BAJJAK_blink_all_leds(); matrix_init_user(); @@ -227,172 +219,9 @@ const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { }; #endif -#ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { -/* driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {0, C3_1, C2_1, C4_1}, // LED1 on right - {0, C6_1, C5_1, C7_1}, // LED2 - {0, C4_2, C3_2, C5_2}, // LED3 - {0, C7_2, C6_2, C8_2}, // LED4 - {0, C2_3, C1_3, C3_3}, // LED5 - {0, C5_3, C4_3, C6_3}, // LED6 - {0, C8_3, C7_3, C9_3}, // LED7 - {0, C2_4, C1_4, C3_4}, // LED8 - {0, C6_4, C5_4, C7_4}, // LED9 - {0, C2_5, C1_5, C3_5}, // LED10 - {0, C7_5, C6_5, C8_5}, // LED11 - {0, C2_6, C1_6, C3_6}, // LED12 - {0, C5_6, C4_6, C6_6}, // LED13 - {0, C8_6, C7_6, C9_6}, // LED14 - {0, C2_7, C1_7, C3_7}, // LED15 - {0, C5_7, C4_7, C6_7}, // LED16 - {0, C2_8, C1_8, C3_8}, // LED17 - {0, C5_8, C4_8, C6_8}, // LED18 - - {0, C3_9, C2_9, C4_9}, // LED19 - {0, C6_9, C5_9, C7_9}, // LED20 - {0, C4_10, C3_10, C5_10}, // LED21 - {0, C7_10, C6_10, C8_10}, // LED22 - {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 -}; - - -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 28, 33, 38, 43, 47, NO_LED }, - { 27, 32, 37, 42, 46, NO_LED }, - { 26, 31, 36, 41, 45, NO_LED }, - { 25, 30, 35, 40, 44, NO_LED }, - { 24, 29, 34, 39, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 0, 5, 10, 15, NO_LED, NO_LED }, - { 1, 6, 11, 16, 20, NO_LED }, - { 2, 7, 12, 17, 21, NO_LED }, - { 3, 8, 13, 18, 22, NO_LED }, - { 4, 9, 14, 19, 23, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 }, - { 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 }, - { 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 }, - { 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 }, - { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 }, - { 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 }, - { 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 }, - { 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 } -}, { - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1 -} }; - -void suspend_power_down_kb(void) { - rgb_matrix_set_color_all(0, 0, 0); - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - - void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -#ifdef ORYX_CONFIGURATOR -void keyboard_post_init_kb(void) { - rgb_matrix_enable_noeeprom(); - keyboard_post_init_user(); -} -#endif -#endif - -#ifdef ORYX_CONFIGURATOR -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LED_LEVEL: - if (record->event.pressed) { - keyboard_config.led_level++; - if (keyboard_config.led_level > 4) { - keyboard_config.led_level = 0; - } - BAJJAK_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); - eeconfig_update_kb(keyboard_config.raw); - layer_state_set_kb(layer_state); - } - break; -#ifdef RGB_MATRIX_ENABLE - case TOGGLE_LAYER_COLOR: - if (record->event.pressed) { - keyboard_config.disable_layer_led ^= 1; - if (keyboard_config.disable_layer_led) - rgb_matrix_set_color_all(0, 0, 0); - eeconfig_update_kb(keyboard_config.raw); - } - break; - case RGB_TOG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - keyboard_config.rgb_matrix_enable = false; - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - keyboard_config.rgb_matrix_enable = true; - } - break; - } - eeconfig_update_kb(keyboard_config.raw); - } - return false; -#endif - } - return process_record_user(keycode, record); -} -#endif - void eeconfig_init_kb(void) { // EEPROM is getting reset! keyboard_config.raw = 0; keyboard_config.led_level = 4; - keyboard_config.rgb_matrix_enable = true; eeconfig_update_kb(keyboard_config.raw); eeconfig_init_user(); } diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index 6dcbceb13fb9..37274cdb5fa3 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -132,7 +132,6 @@ typedef union { struct { uint8_t led_level :3; bool disable_layer_led :1; - bool rgb_matrix_enable :1; }; } keyboard_config_t; diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h index 1daf79859e52..b67bd6159f91 100644 --- a/keyboards/bajjak/config.h +++ b/keyboards/bajjak/config.h @@ -82,27 +82,9 @@ along with this program. If not, see . #endif #define LED_BRIGHTNESS_DEFAULT (LED_BRIGHTNESS_HI) -/* ws2812 RGB LED */ -#define RGB_DI_PIN C7 -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 255 -#define RGBLIGHT_VAL_STEP 12 - -// Pick one of the modes -// Defaults to 15 mirror, for legacy behavior - -// #define BAJJAK_LED_15 // Addresses 15 LEDs, but same position on both halves -// #define BAJJAK_LED_15_MIRROR // Addresses 15 LEDs, but are mirrored -// #define BAJJAK_LED_30 // Addresses all 30 LED individually - /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER -#define RGBW - -#define RGBLIGHT_SLEEP - /* * The debounce filtering reports a key/switch change directly, * without any extra delay. After that the debounce logic will filter @@ -117,29 +99,6 @@ along with this program. If not, see . * manufacturer specs. */ - -// RGB backlight -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 -#define DRIVER_COUNT 2 -#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 RGB_MATRIX_LED_PROCESS_LIMIT 5 -#define RGB_MATRIX_LED_FLUSH_LIMIT 26 - -#define RGB_DISABLE_WHEN_USB_SUSPENDED true - -// #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF -/* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */ -/* #define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 */ -/* #define RGBLIGHT_COLOR_LAYER_3 0x00, 0xFF, 0x00 */ -/* #define RGBLIGHT_COLOR_LAYER_4 0xFF, 0xFF, 0x00 */ -/* #define RGBLIGHT_COLOR_LAYER_5 0x00, 0xFF, 0xFF */ -/* #define RGBLIGHT_COLOR_LAYER_6 0xFF, 0x00, 0xFF */ -/* #define RGBLIGHT_COLOR_LAYER_7 0xFF, 0xFF, 0xFF */ - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c index 2808ca9a7180..c8a7186ae0af 100644 --- a/keyboards/bajjak/keymaps/5x6/keymap.c +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -24,12 +24,7 @@ enum layers { }; enum custom_keycodes { -#ifdef ORYX_CONFIGURATOR - VRSN = EZ_SAFE_RANGE, -#else VRSN = SAFE_RANGE, -#endif - RGB_SLD }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -143,23 +138,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case VRSN: SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); return false; - #ifdef RGBLIGHT_ENABLE - case RGB_SLD: - rgblight_mode(1); - return false; - #endif } } return true; } -// Runs just one time when the keyboard initializes. -void keyboard_post_init_user(void) { -#ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); -#endif -}; - // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { BAJJAK_right_led_1_off(); @@ -169,56 +152,32 @@ layer_state_t layer_state_set_user(layer_state_t state) { uint8_t layer = get_highest_layer(state); switch (layer) { case 0: - #ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); - #endif break; case 1: BAJJAK_right_led_1_on(); - #ifdef RGBLIGHT_COLOR_LAYER_1 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); - #endif break; case 2: BAJJAK_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_2 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); - #endif break; case 3: BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_3 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); - #endif break; case 4: BAJJAK_right_led_1_on(); BAJJAK_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_4 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); - #endif break; case 5: BAJJAK_right_led_1_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_5 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); - #endif break; case 6: BAJJAK_right_led_2_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_6 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); - #endif break; case 7: BAJJAK_right_led_1_on(); BAJJAK_right_led_2_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_7 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); - #endif break; default: break; diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c index 7b7c48c9fcc2..e59f486c7d72 100644 --- a/keyboards/bajjak/keymaps/default/keymap.c +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -24,12 +24,7 @@ enum layers { }; enum custom_keycodes { -#ifdef ORYX_CONFIGURATOR - VRSN = EZ_SAFE_RANGE, -#else VRSN = SAFE_RANGE, -#endif - RGB_SLD }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -149,23 +144,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case VRSN: SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); return false; - #ifdef RGBLIGHT_ENABLE - case RGB_SLD: - rgblight_mode(1); - return false; - #endif } } return true; } -// Runs just one time when the keyboard initializes. -void keyboard_post_init_user(void) { -#ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); -#endif -}; - // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { BAJJAK_right_led_1_off(); @@ -175,56 +158,32 @@ layer_state_t layer_state_set_user(layer_state_t state) { uint8_t layer = get_highest_layer(state); switch (layer) { case 0: - #ifdef RGBLIGHT_COLOR_LAYER_0 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); - #endif break; case 1: BAJJAK_right_led_1_on(); - #ifdef RGBLIGHT_COLOR_LAYER_1 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); - #endif break; case 2: BAJJAK_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_2 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); - #endif break; case 3: BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_3 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); - #endif break; case 4: BAJJAK_right_led_1_on(); BAJJAK_right_led_2_on(); - #ifdef RGBLIGHT_COLOR_LAYER_4 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); - #endif break; case 5: BAJJAK_right_led_1_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_5 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); - #endif break; case 6: BAJJAK_right_led_2_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_6 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); - #endif break; case 7: BAJJAK_right_led_1_on(); BAJJAK_right_led_2_on(); BAJJAK_right_led_3_on(); - #ifdef RGBLIGHT_COLOR_LAYER_7 - rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); - #endif break; default: break; diff --git a/keyboards/bajjak/led_i2c.c b/keyboards/bajjak/led_i2c.c deleted file mode 100644 index b56446625e6c..000000000000 --- a/keyboards/bajjak/led_i2c.c +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2013 Oleg Kostyuk -Copyright 2015 ZSA Technology Labs Inc (@zsa) -Copyright 2020 Christopher Courtney (@drashna) - -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 . -*/ - -#ifdef RGBLIGHT_ENABLE - -# include "bajjak.h" - -void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) { - i2c_init(); - i2c_start(0x84, BAJJAK_EZ_I2C_TIMEOUT); - int i = 0; -# if defined(BAJJAK_LED_30) - // prevent right-half code from trying to bitbang all 30 - // so with 30 LEDs, we count from 29 to 15 here, and the - // other half does 0 to 14. - uint8_t half_led_num = RGBLED_NUM / 2; - for (i = half_led_num + half_led_num - 1; i >= half_led_num; --i) -# elif defined(BAJJAK_LED_15_MIRROR) - for (i = 0; i < led_num; ++i) -# else // ERGDOX_LED_15 non-mirrored - for (i = led_num - 1; i >= 0; --i) -# endif - { - uint8_t *data = (uint8_t *)(led + i); - i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); - i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); - i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); -#ifdef RGBW - i2c_write(*data++, BAJJAK_EZ_I2C_TIMEOUT); -#endif - } - i2c_stop(); - - ws2812_setleds(led, led_num); -} - - -#endif // RGBLIGHT_ENABLE diff --git a/keyboards/bajjak/matrix.c b/keyboards/bajjak/matrix.c index 1bda542df4c8..d47a51dcc7fa 100644 --- a/keyboards/bajjak/matrix.c +++ b/keyboards/bajjak/matrix.c @@ -89,9 +89,6 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { } else { print("left side attached\n"); BAJJAK_blink_all_leds(); -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_init(); // re-init driver on reconnect -#endif } } } diff --git a/keyboards/bajjak/post_config.h b/keyboards/bajjak/post_config.h deleted file mode 100644 index f76e17cf00c7..000000000000 --- a/keyboards/bajjak/post_config.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2013 Oleg Kostyuk -Copyright 2015 ZSA Technology Labs Inc (@zsa) -Copyright 2020 Christopher Courtney (@drashna) - -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 . -*/ - -#pragma once - -#if !defined(BAJJAK_LED_15) && !defined(BAJJAK_LED_30) -// if no value is defined, assume previous behavior -// # define BAJJAK_LED_15 -// # define BAJJAK_LED_30 -# define BAJJAK_LED_15_MIRROR -#endif - -#if (defined(BAJJAK_LED_30) + defined(BAJJAK_LED_15) + defined(BAJJAK_LED_15_MIRROR)) != 1 -# error "You must only define one of the BAJJAK_LED options." -#endif - -#ifdef BAJJAK_LED_30 -// If using 30 LEDs, then define that many -# define RGBLED_NUM 30 // Number of LEDs -#else -// If not, then only define 15 -# define RGBLED_NUM 15 // Number of LEDs -#endif diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index d4d8105dd0f2..a68217088082 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -31,13 +31,10 @@ SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no API_SYSEX_ENABLE = no -RGB_MATRIX_ENABLE = no # enable later -RGB_MATRIX_DRIVER = IS31FL3731 DEBOUNCE_TYPE = eager_pr # project specific files -SRC += matrix.c \ - led_i2c.c +SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c # LAYOUTS = bajjak @@ -45,6 +42,3 @@ QUANTUM_LIB_SRC += i2c_master.c # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no - -# RGBLIGHT_ENABLE = yes -# RGB_MATRIX_ENABLE = yes From 3fc8c84ba567e80aaa07d68b18a71a3944b59ba8 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Fri, 14 May 2021 12:16:32 +0900 Subject: [PATCH 07/30] Update keyboards/bajjak/rules.mk Co-authored-by: Drashna Jaelre --- keyboards/bajjak/rules.mk | 7 ------- 1 file changed, 7 deletions(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index a68217088082..fd802c5f0739 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay # If you have Left LEDs (see From 2cbdd404de601a257f1b30c20a7b142cfa92c4ad Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 5 Jul 2021 09:08:51 +0900 Subject: [PATCH 08/30] Update keyboards/bajjak/rules.mk Co-authored-by: Ryan --- keyboards/bajjak/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index fd802c5f0739..31ed85c378ef 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -22,7 +22,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: ht UNICODE_ENABLE = yes # Unicode SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no -API_SYSEX_ENABLE = no DEBOUNCE_TYPE = eager_pr From 7af33f0ef912a6d5967d66e9d05c62c7664ee2ba Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 5 Jul 2021 09:13:38 +0900 Subject: [PATCH 09/30] Update keyboard product name Co-authored-by: Ryan --- keyboards/bajjak/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h index b67bd6159f91..e185c9ca2e1c 100644 --- a/keyboards/bajjak/config.h +++ b/keyboards/bajjak/config.h @@ -27,7 +27,7 @@ along with this program. If not, see . #define VENDOR_ID 0x1209 #define PRODUCT_ID 0x0002 #define DEVICE_VER 0x0001 -#define PRODUCT BAJJAK KEYBOARD +#define PRODUCT BAJJAK /* key matrix size */ #define MATRIX_ROWS 14 From 83f077cc68110b063d1b15fd30f27937807de894 Mon Sep 17 00:00:00 2001 From: garykong Date: Tue, 6 Jul 2021 17:42:56 +0900 Subject: [PATCH 10/30] Update readme.md --- keyboards/bajjak/readme.md | 57 ++------------------------------------ 1 file changed, 2 insertions(+), 55 deletions(-) diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md index 3f1044d3a7e7..b04d48072cc8 100644 --- a/keyboards/bajjak/readme.md +++ b/keyboards/bajjak/readme.md @@ -1,55 +1,2 @@ -# BAJJAK -* This keyboard is a 6x7 array keyboard based on Ergodox EZ. -* __Not compatible with Ergodox EZ.__ - -# Full-Text of Ergodox EZ -> # ErgoDox EZ -> -> ![ErgoDox EZ](http://www.coolthings.com/wp-content/uploads/2017/05/ergodox-ez-2.jpg) -> -> The ErgoDox EZ is a mass produced version of the original ErgoDox keyboard, with optional support for > RGB Light (Shine) or RGB Matrix (Glow). -> -> * Keyboard Maintainer: [ZSA Technology Labs Inc](https://github.com/zsa), Firmware maintained by > [drashna](https://github.com/drashna) -> * Hardware Supported: Original ErgoDox, ErgoDox EZ -> * Hardware Availability: [ErgoDox EZ](https://ergodox-ez.com/), [ErgoDox.io](https://ergodox.io) -> -> Make example for this keyboard (after setting up your build environment): -> -> make ergodox_ez:default:flash -> -> For the ErgoDox EZ Shine, and Glow, use one of the following: -> -> make ergodox_ez/shine:default:flash -> make ergodox_ez/glow:default:flash -> -> See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make > instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? > Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -> -> ## Oryx Configuation -> -> If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, this enables a number of the built > in options from the Oryx Configurator. -> -> ### Indicator LEDs -> -> You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right > of the keyboard. These settings are saved in eeprom (persistant memory). -> -> Alternatively, you can set the brightness by calling the following functions: -> -> ```c -> void ergodox_led_all_set(uint8_t level); -> void ergodox_right_led_1_set(uint8_t level); -> void ergodox_right_led_2_set(uint8_t level); -> void ergodox_right_led_3_set(uint8_t level); -> ``` -> -> These settings are not persistent, so you'd need to reset it every time the board starts. -> -> These are on a 0-255 scale -> -> ### RGB Matrix Features -> -> If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make > sure that you enable these options by adding `#define ORYX_CONFIGURATOR` to your keymap's `config.h`. -> -> This changes the `RGB_TOG` keycode so that it will toggle the lights on and off, in a way that will > allow the Smart LEDs to continue to work, even with the rest of the LEDs turned off. -> -> Additionally, a new keycode has been added to toggle the Smart LEDs. Use `TOGGLE_LAYER_COLOR`, if you > aren't already. -> +# BAJJAK KEYBOARD +* This keyboard is a 6x7 array keyboard. From 2152f2e0e47cf6143bd9c36d51727a08c77fc515 Mon Sep 17 00:00:00 2001 From: garykong Date: Tue, 6 Jul 2021 18:15:29 +0900 Subject: [PATCH 11/30] Change function names to lowercase --- keyboards/bajjak/bajjak.c | 84 +++++++++++------------ keyboards/bajjak/bajjak.h | 84 +++++++++++------------ keyboards/bajjak/keymaps/5x6/keymap.c | 30 ++++---- keyboards/bajjak/keymaps/default/keymap.c | 30 ++++---- keyboards/bajjak/matrix.c | 4 +- 5 files changed, 116 insertions(+), 116 deletions(-) diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c index ac17c08c7bef..69e8522ee0f6 100644 --- a/keyboards/bajjak/bajjak.c +++ b/keyboards/bajjak/bajjak.c @@ -21,27 +21,27 @@ along with this program. If not, see . #include "bajjak.h" -extern inline void BAJJAK_board_led_on(void); -extern inline void BAJJAK_right_led_1_on(void); -extern inline void BAJJAK_right_led_2_on(void); -extern inline void BAJJAK_right_led_3_on(void); -extern inline void BAJJAK_right_led_on(uint8_t led); +extern inline void bajjak_board_led_on(void); +extern inline void bajjak_right_led_1_on(void); +extern inline void bajjak_right_led_2_on(void); +extern inline void bajjak_right_led_3_on(void); +extern inline void bajjak_right_led_on(uint8_t led); -extern inline void BAJJAK_board_led_off(void); -extern inline void BAJJAK_right_led_1_off(void); -extern inline void BAJJAK_right_led_2_off(void); -extern inline void BAJJAK_right_led_3_off(void); -extern inline void BAJJAK_right_led_off(uint8_t led); +extern inline void bajjak_board_led_off(void); +extern inline void bajjak_right_led_1_off(void); +extern inline void bajjak_right_led_2_off(void); +extern inline void bajjak_right_led_3_off(void); +extern inline void bajjak_right_led_off(uint8_t led); -extern inline void BAJJAK_led_all_on(void); -extern inline void BAJJAK_led_all_off(void); +extern inline void bajjak_led_all_on(void); +extern inline void bajjak_led_all_off(void); -extern inline void BAJJAK_right_led_1_set(uint8_t n); -extern inline void BAJJAK_right_led_2_set(uint8_t n); -extern inline void BAJJAK_right_led_3_set(uint8_t n); -extern inline void BAJJAK_right_led_set(uint8_t led, uint8_t n); +extern inline void bajjak_right_led_1_set(uint8_t n); +extern inline void bajjak_right_led_2_set(uint8_t n); +extern inline void bajjak_right_led_3_set(uint8_t n); +extern inline void bajjak_right_led_set(uint8_t led, uint8_t n); -extern inline void BAJJAK_led_all_set(uint8_t n); +extern inline void bajjak_led_all_set(uint8_t n); keyboard_config_t keyboard_config; @@ -65,55 +65,55 @@ void matrix_init_kb(void) { PORTE |= (1<<6); keyboard_config.raw = eeconfig_read_kb(); - BAJJAK_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); - BAJJAK_blink_all_leds(); + bajjak_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 ); + bajjak_blink_all_leds(); matrix_init_user(); } -void BAJJAK_blink_all_leds(void) +void bajjak_blink_all_leds(void) { - BAJJAK_led_all_off(); - BAJJAK_led_all_set(LED_BRIGHTNESS_DEFAULT); - BAJJAK_right_led_1_on(); + bajjak_led_all_off(); + bajjak_led_all_set(LED_BRIGHTNESS_DEFAULT); + bajjak_right_led_1_on(); _delay_ms(50); - BAJJAK_right_led_2_on(); + bajjak_right_led_2_on(); _delay_ms(50); - BAJJAK_right_led_3_on(); + bajjak_right_led_3_on(); _delay_ms(50); #ifdef LEFT_LEDS - BAJJAK_left_led_1_on(); + bajjak_left_led_1_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = BAJJAK_left_leds_update(); + mcp23018_status = bajjak_left_leds_update(); } - BAJJAK_left_led_2_on(); + bajjak_left_led_2_on(); _delay_ms(50); if (!mcp23018_status) { - mcp23018_status = BAJJAK_left_leds_update(); + mcp23018_status = bajjak_left_leds_update(); } #endif - BAJJAK_right_led_1_off(); + bajjak_right_led_1_off(); _delay_ms(50); - BAJJAK_right_led_2_off(); + bajjak_right_led_2_off(); _delay_ms(50); - BAJJAK_right_led_3_off(); + bajjak_right_led_3_off(); #ifdef LEFT_LEDS _delay_ms(50); - BAJJAK_left_led_1_off(); + bajjak_left_led_1_off(); if (!mcp23018_status) { - mcp23018_status = BAJJAK_left_leds_update(); + mcp23018_status = bajjak_left_leds_update(); } _delay_ms(50); - BAJJAK_left_led_2_off(); + bajjak_left_led_2_off(); if (!mcp23018_status) { - mcp23018_status = BAJJAK_left_leds_update(); + mcp23018_status = bajjak_left_leds_update(); } #endif - //BAJJAK_led_all_on(); + //bajjak_led_all_on(); //_delay_ms(333); - BAJJAK_led_all_off(); + bajjak_led_all_off(); } uint8_t init_mcp23018(void) { @@ -156,7 +156,7 @@ uint8_t init_mcp23018(void) { i2c_stop(); #ifdef LEFT_LEDS - if (!mcp23018_status) mcp23018_status = BAJJAK_left_leds_update(); + if (!mcp23018_status) mcp23018_status = bajjak_left_leds_update(); #endif // LEFT_LEDS // SREG=sreg_prev; @@ -165,7 +165,7 @@ uint8_t init_mcp23018(void) { } #ifdef LEFT_LEDS -uint8_t BAJJAK_left_leds_update(void) { +uint8_t bajjak_left_leds_update(void) { if (mcp23018_status) { // if there was an error return mcp23018_status; } @@ -181,11 +181,11 @@ uint8_t BAJJAK_left_leds_update(void) { mcp23018_status = i2c_write(OLATA, BAJJAK_EZ_I2C_TIMEOUT); if (mcp23018_status) goto out; mcp23018_status = i2c_write(0b11111111 - & ~(BAJJAK_left_led_1<. extern i2c_status_t mcp23018_status; #define BAJJAK_EZ_I2C_TIMEOUT 100 -void init_BAJJAK(void); -void BAJJAK_blink_all_leds(void); +void init_bajjak(void); +void bajjak_blink_all_leds(void); uint8_t init_mcp23018(void); -uint8_t BAJJAK_left_leds_update(void); +uint8_t bajjak_left_leds_update(void); #ifndef LED_BRIGHTNESS_LO #define LED_BRIGHTNESS_LO 15 @@ -55,66 +55,66 @@ uint8_t BAJJAK_left_leds_update(void); #endif -inline void BAJJAK_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } -inline void BAJJAK_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } -inline void BAJJAK_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } -inline void BAJJAK_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } -inline void BAJJAK_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } +inline void bajjak_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void bajjak_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void bajjak_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void bajjak_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void bajjak_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } -inline void BAJJAK_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } -inline void BAJJAK_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } -inline void BAJJAK_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } -inline void BAJJAK_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } -inline void BAJJAK_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } +inline void bajjak_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void bajjak_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void bajjak_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } +inline void bajjak_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void bajjak_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } #ifdef LEFT_LEDS -bool BAJJAK_left_led_1; -bool BAJJAK_left_led_2; -bool BAJJAK_left_led_3; +bool bajjak_left_led_1; +bool bajjak_left_led_2; +bool bajjak_left_led_3; -inline void BAJJAK_left_led_1_on(void) { BAJJAK_left_led_1 = 1; } -inline void BAJJAK_left_led_2_on(void) { BAJJAK_left_led_2 = 1; } +inline void bajjak_left_led_1_on(void) { bajjak_left_led_1 = 1; } +inline void bajjak_left_led_2_on(void) { bajjak_left_led_2 = 1; } -inline void BAJJAK_left_led_1_off(void) { BAJJAK_left_led_1 = 0; } -inline void BAJJAK_left_led_2_off(void) { BAJJAK_left_led_2 = 0; } +inline void bajjak_left_led_1_off(void) { bajjak_left_led_1 = 0; } +inline void bajjak_left_led_2_off(void) { bajjak_left_led_2 = 0; } #endif // LEFT_LEDS -inline void BAJJAK_led_all_on(void) { - BAJJAK_board_led_on(); - BAJJAK_right_led_1_on(); - BAJJAK_right_led_2_on(); - BAJJAK_right_led_3_on(); +inline void bajjak_led_all_on(void) { + bajjak_board_led_on(); + bajjak_right_led_1_on(); + bajjak_right_led_2_on(); + bajjak_right_led_3_on(); #ifdef LEFT_LEDS - BAJJAK_left_led_1_on(); - BAJJAK_left_led_2_on(); + bajjak_left_led_1_on(); + bajjak_left_led_2_on(); #endif // LEFT_LEDS } -inline void BAJJAK_led_all_off(void) +inline void bajjak_led_all_off(void) { - BAJJAK_board_led_off(); - BAJJAK_right_led_1_off(); - BAJJAK_right_led_2_off(); - BAJJAK_right_led_3_off(); + bajjak_board_led_off(); + bajjak_right_led_1_off(); + bajjak_right_led_2_off(); + bajjak_right_led_3_off(); #ifdef LEFT_LEDS - BAJJAK_left_led_1_off(); - BAJJAK_left_led_2_off(); + bajjak_left_led_1_off(); + bajjak_left_led_2_off(); #endif // LEFT_LEDS } -inline void BAJJAK_right_led_1_set(uint8_t n) { OCR1A = n; } -inline void BAJJAK_right_led_2_set(uint8_t n) { OCR1B = n; } -inline void BAJJAK_right_led_3_set(uint8_t n) { OCR1C = n; } -inline void BAJJAK_right_led_set(uint8_t led, uint8_t n) { +inline void bajjak_right_led_1_set(uint8_t n) { OCR1A = n; } +inline void bajjak_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void bajjak_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void bajjak_right_led_set(uint8_t led, uint8_t n) { (led == 1) ? (OCR1A = n) : (led == 2) ? (OCR1B = n) : (OCR1C = n); } -inline void BAJJAK_led_all_set(uint8_t n) { - BAJJAK_right_led_1_set(n); - BAJJAK_right_led_2_set(n); - BAJJAK_right_led_3_set(n); +inline void bajjak_led_all_set(uint8_t n) { + bajjak_right_led_1_set(n); + bajjak_right_led_2_set(n); + bajjak_right_led_3_set(n); } enum BAJJAK_ez_keycodes { diff --git a/keyboards/bajjak/keymaps/5x6/keymap.c b/keyboards/bajjak/keymaps/5x6/keymap.c index c8a7186ae0af..e97d0360b704 100644 --- a/keyboards/bajjak/keymaps/5x6/keymap.c +++ b/keyboards/bajjak/keymaps/5x6/keymap.c @@ -145,39 +145,39 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - BAJJAK_right_led_1_off(); - BAJJAK_right_led_2_off(); - BAJJAK_right_led_3_off(); + bajjak_right_led_1_off(); + bajjak_right_led_2_off(); + bajjak_right_led_3_off(); uint8_t layer = get_highest_layer(state); switch (layer) { case 0: break; case 1: - BAJJAK_right_led_1_on(); + bajjak_right_led_1_on(); break; case 2: - BAJJAK_right_led_2_on(); + bajjak_right_led_2_on(); break; case 3: - BAJJAK_right_led_3_on(); + bajjak_right_led_3_on(); break; case 4: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_2_on(); + bajjak_right_led_1_on(); + bajjak_right_led_2_on(); break; case 5: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_1_on(); + bajjak_right_led_3_on(); break; case 6: - BAJJAK_right_led_2_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_2_on(); + bajjak_right_led_3_on(); break; case 7: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_2_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_1_on(); + bajjak_right_led_2_on(); + bajjak_right_led_3_on(); break; default: break; diff --git a/keyboards/bajjak/keymaps/default/keymap.c b/keyboards/bajjak/keymaps/default/keymap.c index e59f486c7d72..4c7926130715 100644 --- a/keyboards/bajjak/keymaps/default/keymap.c +++ b/keyboards/bajjak/keymaps/default/keymap.c @@ -151,39 +151,39 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Runs whenever there is a layer state change. layer_state_t layer_state_set_user(layer_state_t state) { - BAJJAK_right_led_1_off(); - BAJJAK_right_led_2_off(); - BAJJAK_right_led_3_off(); + bajjak_right_led_1_off(); + bajjak_right_led_2_off(); + bajjak_right_led_3_off(); uint8_t layer = get_highest_layer(state); switch (layer) { case 0: break; case 1: - BAJJAK_right_led_1_on(); + bajjak_right_led_1_on(); break; case 2: - BAJJAK_right_led_2_on(); + bajjak_right_led_2_on(); break; case 3: - BAJJAK_right_led_3_on(); + bajjak_right_led_3_on(); break; case 4: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_2_on(); + bajjak_right_led_1_on(); + bajjak_right_led_2_on(); break; case 5: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_1_on(); + bajjak_right_led_3_on(); break; case 6: - BAJJAK_right_led_2_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_2_on(); + bajjak_right_led_3_on(); break; case 7: - BAJJAK_right_led_1_on(); - BAJJAK_right_led_2_on(); - BAJJAK_right_led_3_on(); + bajjak_right_led_1_on(); + bajjak_right_led_2_on(); + bajjak_right_led_3_on(); break; default: break; diff --git a/keyboards/bajjak/matrix.c b/keyboards/bajjak/matrix.c index d47a51dcc7fa..20fc3c8f2355 100644 --- a/keyboards/bajjak/matrix.c +++ b/keyboards/bajjak/matrix.c @@ -88,13 +88,13 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { print("left side not responding\n"); } else { print("left side attached\n"); - BAJJAK_blink_all_leds(); + bajjak_blink_all_leds(); } } } #ifdef LEFT_LEDS - mcp23018_status = BAJJAK_left_leds_update(); + mcp23018_status = bajjak_left_leds_update(); #endif // LEFT_LEDS bool changed = false; for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { From 37b24d946385a602a91283e0c649c7fa98e49487 Mon Sep 17 00:00:00 2001 From: garykong Date: Mon, 2 Aug 2021 10:32:40 +0900 Subject: [PATCH 12/30] Remove keymaps/default/readme.md --- keyboards/bajjak/keymaps/default/readme.md | 27 ---------------------- 1 file changed, 27 deletions(-) delete mode 100644 keyboards/bajjak/keymaps/default/readme.md diff --git a/keyboards/bajjak/keymaps/default/readme.md b/keyboards/bajjak/keymaps/default/readme.md deleted file mode 100644 index b51705d3707d..000000000000 --- a/keyboards/bajjak/keymaps/default/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# BAJJAK -## Changelog - -* March 2021: - * This keymap is for a 6x7 array keyboard based on bajjak EZ. - * __Not compatible with bajjak EZ.__ - -# Full-Text of Ergodox EZ -> # ErgoDox EZ Default Configuration -> -> ## Changelog -> -> * March 2021: -> * This keymap is for keyboards in a 6x7 array based on Ergodox EZ. -> * Not compatible with Ergodox EZ. -> * Dec 2016: -> * Added LED keys -> * Refreshed layout graphic, comes from http://configure.ergodox-ez.com now. -> * Sep 22, 2016: -> * Created a new key in layer 1 (bottom-corner key) that resets the EEPROM. -> * Feb 2, 2016 (V1.1): -> * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you > tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press > and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening > the Start menu on Windows). -> -> This is what we ship with out of the factory. :) The image says it all: -> -> ![Default](https://i.imgur.com/Be53jH7.png) -> From b60c0542a34e8dfe1cb3ee206603d36adcf7bc34 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 2 Aug 2021 13:45:37 +0900 Subject: [PATCH 13/30] fix white space in keyboards/bajjak/bajjak.h Co-authored-by: Ryan --- keyboards/bajjak/bajjak.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index 009594b7e9b0..5395d0adae75 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -167,5 +167,5 @@ extern keyboard_config_t keyboard_config; { R03, R13, R23, R33, R43, R53, R63 }, \ { R04, R14, R24, R34, R44, R54, R64 }, \ { R05, R15, R25, R35, R45, R55, R65 },\ - { R06, R16, R26, R36, R46, R56, KC_NO } \ + { R06, R16, R26, R36, R46, R56, KC_NO } \ } From c3dfaabaa9f6217de9129f8b78ae99fe4facee55 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 2 Aug 2021 13:46:59 +0900 Subject: [PATCH 14/30] Remove code line in keyboards/bajjak/bajjak.h Co-authored-by: Ryan --- keyboards/bajjak/bajjak.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index 5395d0adae75..c32d99a1807a 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -151,9 +151,7 @@ extern keyboard_config_t keyboard_config; L65, L66, R60, R61, \ L64, R62, \ L63, L62, L61, R65, R64, R63 \ - ) \ - /* matrix positions */ \ - { \ + ) { \ { L00, L10, L20, L30, L40, L50, KC_NO }, \ { L01, L11, L21, L31, L41, L51, L61 }, \ { L02, L12, L22, L32, L42, L52, L62 }, \ From 432c4fcc6e4a8975a1722796322bf2cdfa3747b3 Mon Sep 17 00:00:00 2001 From: garykong Date: Mon, 2 Aug 2021 13:51:45 +0900 Subject: [PATCH 15/30] Replace function name --- keyboards/bajjak/bajjak.c | 24 ++++++++++++------------ keyboards/bajjak/bajjak.h | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/keyboards/bajjak/bajjak.c b/keyboards/bajjak/bajjak.c index 69e8522ee0f6..74e2b2aa8cdb 100644 --- a/keyboards/bajjak/bajjak.c +++ b/keyboards/bajjak/bajjak.c @@ -76,35 +76,35 @@ void bajjak_blink_all_leds(void) bajjak_led_all_off(); bajjak_led_all_set(LED_BRIGHTNESS_DEFAULT); bajjak_right_led_1_on(); - _delay_ms(50); + wait_ms(50); bajjak_right_led_2_on(); - _delay_ms(50); + wait_ms(50); bajjak_right_led_3_on(); - _delay_ms(50); + wait_ms(50); #ifdef LEFT_LEDS bajjak_left_led_1_on(); - _delay_ms(50); + wait_ms(50); if (!mcp23018_status) { mcp23018_status = bajjak_left_leds_update(); } bajjak_left_led_2_on(); - _delay_ms(50); + wait_ms(50); if (!mcp23018_status) { mcp23018_status = bajjak_left_leds_update(); } #endif bajjak_right_led_1_off(); - _delay_ms(50); + wait_ms(50); bajjak_right_led_2_off(); - _delay_ms(50); + wait_ms(50); bajjak_right_led_3_off(); #ifdef LEFT_LEDS - _delay_ms(50); + wait_ms(50); bajjak_left_led_1_off(); if (!mcp23018_status) { mcp23018_status = bajjak_left_leds_update(); } - _delay_ms(50); + wait_ms(50); bajjak_left_led_2_off(); if (!mcp23018_status) { mcp23018_status = bajjak_left_leds_update(); @@ -112,7 +112,7 @@ void bajjak_blink_all_leds(void) #endif //bajjak_led_all_on(); - //_delay_ms(333); + //wait_ms(333); bajjak_led_all_off(); } @@ -128,10 +128,10 @@ uint8_t init_mcp23018(void) { if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) i2c_initialized = true; - _delay_ms(1000); + wait_ms(1000); } // i2c_init(); // on pins D(1,0) - // _delay_ms(1000); + // wait_ms(1000); // set pin direction // - unused : input : 1 diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index c32d99a1807a..f41eae1baf8c 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -55,17 +55,17 @@ uint8_t bajjak_left_leds_update(void); #endif -inline void bajjak_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } -inline void bajjak_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } -inline void bajjak_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } -inline void bajjak_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } -inline void bajjak_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } - -inline void bajjak_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } -inline void bajjak_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } -inline void bajjak_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } -inline void bajjak_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } -inline void bajjak_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } +inline void bajjak_board_led_on(void) { setPinOutput(D6); writePinHigh(D6); } +inline void bajjak_right_led_1_on(void) { setPinOutput(B5); writePinHigh(B5); } +inline void bajjak_right_led_2_on(void) { setPinOutput(B6); writePinHigh(B6); } +inline void bajjak_right_led_3_on(void) { setPinOutput(B7); writePinHigh(B7); } +inline void bajjak_right_led_on(uint8_t led) { setPinOutput(led+4); writePinHigh(led+4); } + +inline void bajjak_board_led_off(void) { setPinInput(D6); writePinLow(D6); } +inline void bajjak_right_led_1_off(void) { setPinInput(B5); writePinLow(B5); } +inline void bajjak_right_led_2_off(void) { setPinInput(B6); writePinLow(B6); } +inline void bajjak_right_led_3_off(void) { setPinInput(B7); writePinLow(B7); } +inline void bajjak_right_led_off(uint8_t led) { setPinInput(led+4); writePinLow(led+4); } #ifdef LEFT_LEDS bool bajjak_left_led_1; From 865ce21e3fb347dc4d8e732557ed760708c816dd Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 3 Jan 2022 13:53:27 -0800 Subject: [PATCH 16/30] Update keyboards/bajjak/rules.mk Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com> --- keyboards/bajjak/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 31ed85c378ef..edcf272a24ff 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -18,7 +18,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration CUSTOM_MATRIX = lite # Custom matrix file for the BAJJAK -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # Enable N-Key Rollover UNICODE_ENABLE = yes # Unicode SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard SLEEP_LED_ENABLE = no From 4148d7e3e2f42aadaa7ad22f1ee38928d56d16dd Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 3 Jan 2022 13:53:42 -0800 Subject: [PATCH 17/30] Update keyboards/bajjak/rules.mk Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com> --- keyboards/bajjak/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index edcf272a24ff..2c5888d583fc 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -12,7 +12,7 @@ OPT_DEFS += -DLEFT_LEDS # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug From 63d6ae84801182b892aa63176e96f2002d2649db Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 10 Jan 2022 14:50:07 -0800 Subject: [PATCH 18/30] Update keyboards/bajjak/rules.mk Co-authored-by: Ryan --- keyboards/bajjak/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 2c5888d583fc..c35883b5766f 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -10,7 +10,7 @@ BOOTLOADER = halfkay OPT_DEFS += -DLEFT_LEDS # Build Options -# comment out to disable the options. +# change yes to no to disable # BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys From b29e10a132e2c8b92f9aa6cbf1bae87b33fcdfb0 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 10 Jan 2022 14:50:14 -0800 Subject: [PATCH 19/30] Update keyboards/bajjak/rules.mk Co-authored-by: Ryan --- keyboards/bajjak/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index c35883b5766f..eb9d0df2b3f9 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -29,8 +29,6 @@ DEBOUNCE_TYPE = eager_pr SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c -# LAYOUTS = bajjak - # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no From b9b191af62a1d6d5695a77ec7d7047579897f9fd Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 10 Jan 2022 14:50:19 -0800 Subject: [PATCH 20/30] Update keyboards/bajjak/rules.mk Co-authored-by: Ryan --- keyboards/bajjak/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index eb9d0df2b3f9..9464b0f16d80 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -21,7 +21,6 @@ CUSTOM_MATRIX = lite # Custom matrix file for the BAJJAK NKRO_ENABLE = yes # Enable N-Key Rollover UNICODE_ENABLE = yes # Unicode SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard -SLEEP_LED_ENABLE = no DEBOUNCE_TYPE = eager_pr From 00e319efd486db4f8c324cd1df8a40e55bbb751f Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 10 Jan 2022 14:57:39 -0800 Subject: [PATCH 21/30] Update keyboards/bajjak/info.json Co-authored-by: Ryan --- keyboards/bajjak/info.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json index 467e5be05351..c2fee7d1ea95 100644 --- a/keyboards/bajjak/info.json +++ b/keyboards/bajjak/info.json @@ -1,7 +1,5 @@ { "keyboard_name": "bajjak", - "width": 17, - "height": 8, "layouts": { "LAYOUT_6x7": { From e5a4dafda9adb77181f370728e24cb7300705b39 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Tue, 14 Jun 2022 11:01:06 +0900 Subject: [PATCH 22/30] Update keyboards/bajjak/config.h Co-authored-by: Drashna Jaelre --- keyboards/bajjak/config.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h index e185c9ca2e1c..344bc9040e05 100644 --- a/keyboards/bajjak/config.h +++ b/keyboards/bajjak/config.h @@ -114,6 +114,4 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION //#define DEBUG_MATRIX_SCAN_RATE From 1a64a421c011564325645eb7718f1f3f57598446 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Tue, 14 Jun 2022 11:18:31 +0900 Subject: [PATCH 23/30] Fix DEBOUNCE_TYPE --- keyboards/bajjak/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 9464b0f16d80..93151f30c7a4 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -22,7 +22,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover UNICODE_ENABLE = yes # Unicode SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard -DEBOUNCE_TYPE = eager_pr +DEBOUNCE_TYPE = sym_eager_pr # project specific files SRC += matrix.c From d4271e3b8779dadc8583fc98303c45f64a5c4288 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Mon, 20 Jun 2022 10:31:07 +0900 Subject: [PATCH 24/30] Update readme.md --- keyboards/bajjak/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md index b04d48072cc8..2567f7f019df 100644 --- a/keyboards/bajjak/readme.md +++ b/keyboards/bajjak/readme.md @@ -1,2 +1,2 @@ -# BAJJAK KEYBOARD +# bajjak * This keyboard is a 6x7 array keyboard. From 2587d873ea93efca9360a4a9abcbf2ce43cf0210 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Thu, 21 Jul 2022 09:29:12 +0900 Subject: [PATCH 25/30] Update keyboards/bajjak/bajjak.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/bajjak.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/bajjak/bajjak.h b/keyboards/bajjak/bajjak.h index f41eae1baf8c..126df7932c5c 100644 --- a/keyboards/bajjak/bajjak.h +++ b/keyboards/bajjak/bajjak.h @@ -137,10 +137,6 @@ typedef union { extern keyboard_config_t keyboard_config; -/* - * LEFT HAND: LINES 115-122 - * RIGHT HAND: LINES 124-131 - */ #define LAYOUT_6x7( \ 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, \ From 77755c95dde4dcaee9b3fbece964f53624459234 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Thu, 21 Jul 2022 09:29:26 +0900 Subject: [PATCH 26/30] Update keyboards/bajjak/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json index c2fee7d1ea95..072ca33f5b9e 100644 --- a/keyboards/bajjak/info.json +++ b/keyboards/bajjak/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "bajjak", - + "maintainer": "garykong", "layouts": { "LAYOUT_6x7": { "layout": [ From 83f3cabdd7d075989ad691af788b33d82a30e309 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Wed, 10 Aug 2022 10:25:42 +0900 Subject: [PATCH 27/30] Update keyboards/bajjak/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/readme.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md index 2567f7f019df..f0b3be14ee96 100644 --- a/keyboards/bajjak/readme.md +++ b/keyboards/bajjak/readme.md @@ -1,2 +1,23 @@ # bajjak -* This keyboard is a 6x7 array keyboard. + +This keyboard is a 6x7 array keyboard, similar in design to the Ergodox EZ. + + * Keyboard Maintainer: [Gary Kong](https://github.com/garykong) +* Hardware Supported: bajjak keyboard (ATmega32U4) + +Make example for this keyboard (after setting up your build environment): + + make bajjak:default + +Flashing example for this keyboard: + + make bajjak:default:flash + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From aca5372c41c7f20c11f352e18ce6863903a0bcac Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Wed, 10 Aug 2022 10:25:53 +0900 Subject: [PATCH 28/30] Update keyboards/bajjak/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/rules.mk | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index 93151f30c7a4..d7c332e536ef 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -12,15 +12,23 @@ OPT_DEFS += -DLEFT_LEDS # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -CUSTOM_MATRIX = lite # Custom matrix file for the BAJJAK +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover -UNICODE_ENABLE = yes # Unicode -SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +CUSTOM_MATRIX = lite # Custom matrix file for the BAJJAK +UNICODE_ENABLE = yes # Unicode +SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard + +# Disable unsupported hardware +BACKLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no DEBOUNCE_TYPE = sym_eager_pr From e665c1431fa173dd9a57c74a0790f0be6841f811 Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Wed, 10 Aug 2022 10:26:07 +0900 Subject: [PATCH 29/30] Update keyboards/bajjak/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/rules.mk | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk index d7c332e536ef..6bbe7e3b289b 100644 --- a/keyboards/bajjak/rules.mk +++ b/keyboards/bajjak/rules.mk @@ -35,7 +35,3 @@ DEBOUNCE_TYPE = sym_eager_pr # project specific files SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c - -# Disable unsupported hardware -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no From c47b5e5032924c8ac3888cbbcbf473529581296c Mon Sep 17 00:00:00 2001 From: Gary Kong Date: Wed, 10 Aug 2022 16:25:28 +0900 Subject: [PATCH 30/30] Update keyboards/bajjak/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/bajjak/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/bajjak/readme.md b/keyboards/bajjak/readme.md index f0b3be14ee96..7e86d0243d6d 100644 --- a/keyboards/bajjak/readme.md +++ b/keyboards/bajjak/readme.md @@ -2,7 +2,7 @@ This keyboard is a 6x7 array keyboard, similar in design to the Ergodox EZ. - * Keyboard Maintainer: [Gary Kong](https://github.com/garykong) +* Keyboard Maintainer: [Gary Kong](https://github.com/garykong) * Hardware Supported: bajjak keyboard (ATmega32U4) Make example for this keyboard (after setting up your build environment):