Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
3araht committed Aug 12, 2020
1 parent e2d4cd1 commit a4021d8
Show file tree
Hide file tree
Showing 8 changed files with 806 additions and 0 deletions.
257 changes: 257 additions & 0 deletions keyboards/3araht/giabalanai/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
/*
Copyright 2020 3araht
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

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER 3araht
#define PRODUCT giabalanai

/* key matrix size */
#define MATRIX_ROWS 12
#define MATRIX_COLS 10

/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
// #define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6 }
// #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B4, B5 }
#define MATRIX_ROW_PINS { B5, B4, E6, D7, C6, D4 }
#define MATRIX_COL_PINS { B1, F7, F6, F5, F4, B3, B2, B6, D0, D1 }
#define MATRIX_ROW_PINS_RIGHT { D1, D0, D4, C6, D7, E6 }
// F1 is an unused dummy pin to match the # of COLs used. B5 will be used for Audio.
// B7, C7 are unused dummy pin to match the # of COLs used. B6, B4 will be used for Encoder.
// #define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6, B4, F1 }
#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, C7, B7, F1 }
// #define UNUSED_PINS

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
#define SOFT_SERIAL_PIN D2
#define SELECT_SOFT_SERIAL_SPEED 1
/*Sets the protocol speed when using serial communication*/
//Speeds:
//0: about 189kbps (Experimental only)
//1: about 137kbps (default)
//2: about 75kbps
//3: about 39kbps
//4: about 26kbps
//5: about 20kbps

// Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve.
#define MASTER_RIGHT


//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING

/* ws2812 RGB LED */
#define RGB_DI_PIN D3

#ifdef RGBLIGHT_ENABLE

#define RGBLED_NUM 123
// Do not define "RGBLED_SPLIT" since the # of LEDs on both sides are not equal.
// Instead, LED data is tranferred from right side to the left via TRRS cable.

#define RGBLIGHT_LIMIT_VAL 100
// #define RGBLIGHT_LAYERS

#ifndef HSV_BLACK
#define HSV_BLACK 0, 0, 0 // Define 'black' color, more like 'LED off' (H, S, V)
#endif

/* All the animations have to be disabled so as not to overwrite the LED setting when keys are pressed. */
// #ifndef AUDIO_ENABLE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 15
// #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 60
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #endif

// These two effects consume 1334 bytes.
// #define RGBLIGHT_EFFECT_TWINKLE
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT


// RGBLIGHT LED MAP
// Right 1st row (12 LEDs)
// ENCODER
// Right 2nd .. 5th row(13, 12, 13, 12 LEDs)
// Left 1st .. 5th row (12 LEDs x 5 rows)

#define RGBLIGHT_LED_MAP { \
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \
97, \
84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \
85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, \
110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, \
111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, \
\
11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \
35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \
59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \
}

// #define RGBLIGHT_LED_MAP {
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
// 12,
// 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13,
// 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
// 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38,
// 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
//
// 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
// 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
// 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
// 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
// 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122
// }


#endif

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5

/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST

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

/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE

/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO

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

/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0

/* Audio */
#ifdef AUDIO_ENABLE
#define B5_AUDIO // use EX1 = PB5 = PIN9 as Audio output
// #define DAC_SAMPLE_MAX 32768U
#define DAC_SAMPLE_MAX 65535U
// #define AUDIO_CLICKY
#define NO_MUSIC_MODE
// #define STARTUP_SONG SONG(FANTASIE_IMPROMPTU)
// #define STARTUP_SONG SONG(NOCTURNE_OP_9_NO_1)
// #define STARTUP_SONG SONG(USSR_ANTHEM)
// #define STARTUP_SONG SONG(CAMPANELLA)

#endif

/*
* MIDI options
*/

/* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1

/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC

/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
#define MIDI_ADVANCED
#define MIDI_TONE_KEYCODE_OCTAVES 5

/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1

/*
* Encoder options
*/
#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { C7 } // dummy
#define ENCODERS_PAD_B { B7 } // dummy
#define ENCODERS_PAD_A_RIGHT { B4 }
#define ENCODERS_PAD_B_RIGHT { B6 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
#endif // ENCODER_ENABLE
24 changes: 24 additions & 0 deletions keyboards/3araht/giabalanai/giabalanai.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/* Copyright 2020 3araht
*
* 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/>.
*/

#include "giabalanai.h"
#include "encoder.h"

#ifdef ENCODER_ENABLE
void encoder_update_kb(int8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
}
#endif //ENCODER_ENABLE
59 changes: 59 additions & 0 deletions keyboards/3araht/giabalanai/giabalanai.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/* Copyright 2020 3araht
*
* 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

#include "quantum.h"

/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \
l00, l01, l02, l03, l04, l05, \
l10, l11, l12, l13, l14, l15, \
l20, l21, l22, l23, l24, l25, \
l30, l31, l32, l33, l34, l35, \
l40, l41, l42, l43, l44, l45, \
\
l06, l07, l08, l09, l0a, l0b, \
l16, l17, l18, l19, l1a, l1b, \
l26, l27, l28, l29, l2a, l2b, \
l36, l37, l38, l39, l3a, l3b, \
l46, l47, l48, l49, l4a, l4b, \
\
r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, r0a, r0b, renc, \
r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r1a, r1b, r1c, \
r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r2a, r2b, r2c \
) { \
{ l00, l10, l20, l30, l40, l0b, l1b, l2b, l3b, l4b }, \
{ l01, l11, l21, l31, l41, l0a, l1a, l2a, l3a, l4a }, \
{ l02, l12, l22, l32, l42, l09, l19, l29, l39, l49 }, \
{ l03, l13, l23, l33, l43, l08, l18, l28, l38, l48 }, \
{ l04, l14, l24, l34, l44, l07, l17, l27, l37, l47 }, \
{ l05, l15, l25, l35, l45, l06, l16, l26, l36, l46 }, \
\
{ r00, r01, r02, r03, r04, r05, r06, KC_NO, KC_NO, KC_NO }, \
{ r10, r11, r12, r13, r14, r15, r16, KC_NO, KC_NO, KC_NO }, \
{ r20, r21, r22, r23, r24, r25, r26, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, renc, r0b, r0a, r09, r08, r07, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, r1c, r1b, r1a, r19, r18, r17, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, r2c, r2b, r2a, r29, r28, r27, KC_NO, KC_NO, KC_NO } \
}
19 changes: 19 additions & 0 deletions keyboards/3araht/giabalanai/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"keyboard_name": "giabalanai",
"url": "",
"maintainer": "3araht",
"width": 3,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{"label": "k00", "x": 0, "y": 0},
{"label": "k01", "x": 1, "y": 0},
{"label": "k02", "x": 2, "y": 0},

{"label": "k10", "x": 0, "y": 1, "w": 1.5},
{"label": "k12", "x": 1.5, "y": 1, "w": 1.5}
]
}
}
}
Loading

0 comments on commit a4021d8

Please sign in to comment.