Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add Iris Rev 4 #6660

Merged
merged 2 commits into from
Sep 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion keyboards/keebio/iris/iris.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
#include "rev1_led.h"
#elif KEYBOARD_keebio_iris_rev2
#include "rev2.h"
#else
#elif KEYBOARD_keebio_iris_rev3
#include "rev3.h"
#elif KEYBOARD_keebio_iris_rev4
#include "rev4.h"
#endif

#include "quantum.h"
Expand Down
17 changes: 17 additions & 0 deletions keyboards/keebio/iris/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}

void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
else if (index == 1) {
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
}
}
95 changes: 95 additions & 0 deletions keyboards/keebio/iris/rev4/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
/*
Copyright 2019 Danny Nguyen <danny@keeb.io>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

/* USB Device descriptor parameter */
#define VENDOR_ID 0xCB10
#define PRODUCT_ID 0x1256
#define DEVICE_VER 0x0400
#define MANUFACTURER Keebio
#define PRODUCT Iris Keyboard
#define DESCRIPTION Split 50 percent ergonomic keyboard

/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 6

// wiring of each half
#define MATRIX_ROW_PINS { B1, F0, F5, F6, F7 }
#define MATRIX_COL_PINS { F1, F4, D3, D2, B7, D4 }
#define MATRIX_ROW_PINS_RIGHT { B1, B2, D2, F1, F4 }
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
#define SPLIT_HAND_PIN D5
#define QMK_ESC_OUTPUT F1
#define QMK_ESC_INPUT B1
#define QMK_LED B0
#define QMK_SPEAKER C6

#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_PAD_A_RIGHT { F7 }
#define ENCODERS_PAD_B_RIGHT { F6 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST

/* number of backlight levels */
// #define BACKLIGHT_LEVELS 3

/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5

/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0

/* 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

#define BACKLIGHT_PIN B5
#define BACKLIGHT_LEVELS 5

/* ws2812 RGB LED */
#define RGB_DI_PIN D6
#define RGBLED_NUM 12 // Number of LEDs
#define RGBLED_SPLIT { 6, 6 }

#define DYNAMIC_KEYMAP_LAYER_COUNT 4

// EEPROM usage

// TODO: refactor with new user EEPROM code (coming soon)
#define EEPROM_MAGIC 0x451F
#define EEPROM_MAGIC_ADDR 34
// Bump this every time we change what we store
// This will automatically reset the EEPROM with defaults
// and avoid loading invalid data from the EEPROM
#define EEPROM_VERSION 0x08
#define EEPROM_VERSION_ADDR 36

// Dynamic keymap starts after EEPROM version
#define DYNAMIC_KEYMAP_EEPROM_ADDR 37
// Dynamic macro starts after dynamic keymaps (37+(4*10*6*2)) = (37+480)
#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 517
#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 507 // 1024-DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
#define DYNAMIC_KEYMAP_MACRO_COUNT 16
1 change: 1 addition & 0 deletions keyboards/keebio/iris/rev4/rev4.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "rev4.h"
33 changes: 33 additions & 0 deletions keyboards/keebio/iris/rev4/rev4.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#pragma once

#include "iris.h"
#include "quantum.h"


#ifdef USE_I2C
#include <stddef.h>
#ifdef __AVR__
#include <avr/io.h>
#include <avr/interrupt.h>
#endif
#endif

#define LAYOUT( \
LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \
LB1, LB2, LB3, LB4, LB5, LB6, RB6, RB5, RB4, RB3, RB2, RB1, \
LC1, LC2, LC3, LC4, LC5, LC6, RC6, RC5, RC4, RC3, RC2, RC1, \
LD1, LD2, LD3, LD4, LD5, LD6, LE6, RE6, RD6, RD5, RD4, RD3, RD2, RD1, \
LE3, LE4, LE5, RE5, RE4, RE3 \
) \
{ \
{ LA1, LA2, LA3, LA4, LA5, LA6 }, \
{ LB1, LB2, LB3, LB4, LB5, LB6 }, \
{ LC1, LC2, LC3, LC4, LC5, LC6 }, \
{ LD1, LD2, LD3, LD4, LD5, LD6 }, \
{ KC_NO, KC_NO, LE3, LE4, LE5, LE6 }, \
{ RA1, RA2, RA3, RA4, RA5, RA6 }, \
{ RB1, RB2, RB3, RB4, RB5, RB6 }, \
{ RC1, RC2, RC3, RC4, RC5, RC6 }, \
{ RD1, RD2, RD3, RD4, RD5, RD6 }, \
{ KC_NO, KC_NO, RE3, RE4, RE5, RE6 } \
}
3 changes: 3 additions & 0 deletions keyboards/keebio/iris/rev4/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = yes
ENCODER_ENABLE = yes
6 changes: 4 additions & 2 deletions keyboards/keebio/iris/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ F_USB = $(F_CPU)
# automatically (+60). See bootloader.mk for all options.
ifneq (, $(findstring rev3, $(KEYBOARD)))
BOOTLOADER = qmk-dfu
else ifneq (, $(findstring rev4, $(KEYBOARD)))
BOOTLOADER = qmk-dfu
else
BOOTLOADER = caterina
endif
Expand All @@ -24,8 +26,8 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
Expand Down