diff --git a/keyboards/minidox/i2c.h b/keyboards/minidox/i2c.h index 08ce4b00..c15b6bc5 100644 --- a/keyboards/minidox/i2c.h +++ b/keyboards/minidox/i2c.h @@ -16,7 +16,7 @@ #define SLAVE_BUFFER_SIZE 0x10 // i2c SCL clock frequency -#define SCL_CLOCK 100000L +#define SCL_CLOCK 400000L extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; @@ -28,4 +28,22 @@ uint8_t i2c_master_read(int); void i2c_reset_state(void); void i2c_slave_init(uint8_t address); + +static inline unsigned char i2c_start_read(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_READ); +} + +static inline unsigned char i2c_start_write(unsigned char addr) { + return i2c_master_start((addr << 1) | I2C_WRITE); +} + +// from SSD1306 scrips +extern unsigned char i2c_rep_start(unsigned char addr); +extern void i2c_start_wait(unsigned char addr); +extern unsigned char i2c_readAck(void); +extern unsigned char i2c_readNak(void); +extern unsigned char i2c_read(unsigned char ack); + +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + #endif diff --git a/keyboards/minidox/keymaps/that_canadian/config.h b/keyboards/minidox/keymaps/that_canadian/config.h index 7a8193e0..aad7ed1e 100644 --- a/keyboards/minidox/keymaps/that_canadian/config.h +++ b/keyboards/minidox/keymaps/that_canadian/config.h @@ -25,6 +25,8 @@ along with this program. If not, see . #define USE_SERIAL +#define EE_HANDS + /* ws2812 RGB LED */ #define RGB_DI_PIN D7 #define RGBLIGHT_TIMER diff --git a/keyboards/minidox/keymaps/that_canadian/keymap.c b/keyboards/minidox/keymaps/that_canadian/keymap.c index da990534..bc4e66fd 100644 --- a/keyboards/minidox/keymaps/that_canadian/keymap.c +++ b/keyboards/minidox/keymaps/that_canadian/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Z | X | C | V | B | | N | M | , | . | / | * `----------------------------------' `----------------------------------' * ,--------------------. ,------,-------------. - * | Ctrl | LOWER| | | | RAISE| Shift| + * | Shift| LOWER| | | | RAISE| Ctrl | * `-------------| Space| |BckSpc|------+------. * | | | | * `------' `------' @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT) \ + OSM(MOD_LSFT), LOWER, KC_SPC, KC_BSPC, RAISE, KC_LCTL \ ), /* Raise diff --git a/keyboards/minidox/matrix.c b/keyboards/minidox/matrix.c index 13896900..81dfb144 100644 --- a/keyboards/minidox/matrix.c +++ b/keyboards/minidox/matrix.c @@ -226,9 +226,7 @@ uint8_t matrix_scan(void) TXLED0; error_count = 0; } - matrix_scan_quantum(); - return ret; } diff --git a/keyboards/minidox/rev1/config.h b/keyboards/minidox/rev1/config.h index a858a5b9..9799c419 100644 --- a/keyboards/minidox/rev1/config.h +++ b/keyboards/minidox/rev1/config.h @@ -30,7 +30,7 @@ along with this program. If not, see . #define USE_SERIAL -// #define EE_HANDS +//#define EE_HANDS #define I2C_MASTER_LEFT //#define I2C_MASTER_RIGHT diff --git a/keyboards/minidox/split_util.c b/keyboards/minidox/split_util.c index 46192179..39639c3b 100644 --- a/keyboards/minidox/split_util.c +++ b/keyboards/minidox/split_util.c @@ -21,7 +21,8 @@ static void setup_handedness(void) { #ifdef EE_HANDS isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); #else - #ifdef I2C_MASTER_RIGHT + // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c + #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) isLeftHand = !has_usb(); #else isLeftHand = has_usb(); @@ -32,6 +33,9 @@ static void setup_handedness(void) { static void keyboard_master_setup(void) { #ifdef USE_I2C i2c_master_init(); +#ifdef SSD1306OLED + matrix_master_OLED_init (); +#endif #else serial_master_init(); #endif diff --git a/keyboards/minidox/split_util.h b/keyboards/minidox/split_util.h index 6b896679..3ae76c20 100644 --- a/keyboards/minidox/split_util.h +++ b/keyboards/minidox/split_util.h @@ -19,4 +19,6 @@ void split_keyboard_setup(void); bool has_usb(void); void keyboard_slave_loop(void); +void matrix_master_OLED_init (void); + #endif