Skip to content

Commit 1483a2d

Browse files
committed
Add keyboard files
1 parent de4c97e commit 1483a2d

10 files changed

Lines changed: 821 additions & 0 deletions

File tree

big_led.h

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#pragma once
2+
3+
#include "quantum.h"
4+
5+
/* Optional big LED pins */
6+
#define BIG_LED_R_PIN D7
7+
#define BIG_LED_G_PIN C6
8+
#define BIG_LED_B_PIN D0
9+
10+
#define LED_ON 2
11+
#define LED_OFF 0
12+
13+
#define GPIO_STATE_LOW 0
14+
#define GPIO_STATE_HIGH 1
15+
16+
//TODO: add PWN functionality
17+
18+
void set_big_LED_r(uint8_t mode) {
19+
switch(mode) {
20+
case LED_ON:
21+
setPinOutput(BIG_LED_R_PIN);
22+
writePin(BIG_LED_R_PIN, GPIO_STATE_HIGH);
23+
break;
24+
25+
case LED_OFF:
26+
setPinOutput(BIG_LED_R_PIN);
27+
writePin(BIG_LED_R_PIN, GPIO_STATE_LOW);
28+
break;
29+
30+
default:
31+
break;
32+
}
33+
}
34+
35+
void set_big_LED_g(uint8_t mode) {
36+
switch(mode) {
37+
case LED_ON:
38+
setPinOutput(BIG_LED_G_PIN);
39+
writePin(BIG_LED_G_PIN, GPIO_STATE_HIGH);
40+
break;
41+
42+
case LED_OFF:
43+
setPinOutput(BIG_LED_G_PIN);
44+
writePin(BIG_LED_G_PIN, GPIO_STATE_LOW);
45+
break;
46+
47+
default:
48+
break;
49+
}
50+
}
51+
52+
void set_big_LED_b(uint8_t mode) {
53+
switch(mode) {
54+
case LED_ON:
55+
setPinOutput(BIG_LED_B_PIN);
56+
writePin(BIG_LED_B_PIN, GPIO_STATE_HIGH);
57+
break;
58+
59+
case LED_OFF:
60+
setPinOutput(BIG_LED_B_PIN);
61+
writePin(BIG_LED_B_PIN, GPIO_STATE_LOW);
62+
break;
63+
64+
default:
65+
break;
66+
}
67+
}

bitc_led.h

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#pragma once
2+
3+
#include "quantum.h"
4+
5+
#define LED_ON 2
6+
#define LED_DIM 1
7+
#define LED_OFF 0
8+
9+
#define GPIO_STATE_LOW 0
10+
#define GPIO_STATE_HIGH 1
11+
12+
#define PIN_LED F0
13+
14+
void set_bitc_LED(uint8_t mode) {
15+
switch(mode) {
16+
case LED_ON:
17+
setPinOutput(PIN_LED);
18+
writePin(PIN_LED, GPIO_STATE_HIGH);
19+
break;
20+
21+
case LED_DIM:
22+
setPinInput(PIN_LED);
23+
break;
24+
25+
case LED_OFF:
26+
setPinOutput(PIN_LED);
27+
writePin(PIN_LED, GPIO_STATE_LOW);
28+
break;
29+
30+
default:
31+
break;
32+
}
33+
}

config.h

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* Copyright 2018 Jack Humbert
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
#ifndef CONFIG_H
17+
#define CONFIG_H
18+
19+
#include "config_common.h"
20+
21+
/* Used to set master for remote KB if VUSB detect doesn't work. */
22+
#define KEYBOARD_MASTER
23+
24+
/* USB Device descriptor parameter */
25+
#define VENDOR_ID 0xFEED
26+
#define PRODUCT_ID 0x6060
27+
#define DEVICE_VER 0x0001
28+
#define MANUFACTURER nullbits
29+
#define PRODUCT nibble
30+
#define DESCRIPTION QMK keyboard firmware
31+
32+
/* key matrix size */
33+
#define MATRIX_ROWS 5
34+
#define MATRIX_COLS 16
35+
#define MATRIX_MUX_COLS 4
36+
37+
/* prevent stuck modifiers */
38+
#define PREVENT_STUCK_MODIFIERS
39+
40+
/*
41+
* Keyboard Matrix Assignments
42+
* The nibble uses a demultiplexer for the cols.
43+
* to free up more IOs for awesomeness!
44+
* See matrix.c for more details.
45+
*/
46+
#define MATRIX_ROW_PINS { B1, B3, B2, B6, D4 }
47+
#define MATRIX_COL_MUX_PINS { F4, F5, F6, F7 }
48+
#define MATRIX_COL_PINS { }
49+
50+
/* Optional SMT LED pins */
51+
#define RGB_DI_PIN E6
52+
#define RGBLED_NUM 10
53+
#define RGBLIGHT_LIMIT_VAL 255
54+
#define RGBLIGHT_ANIMATIONS
55+
56+
/* Optional encoder pins */
57+
#define ENCODERS_PAD_A { B5 }
58+
#define ENCODERS_PAD_B { B4 }
59+
60+
#endif

keymaps/default/keymap.c

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/* Copyright 2018 Jack Humbert
2+
* This program is free software: you can redistribute it and/or modify
3+
* it under the terms of the GNU General Public License as published by
4+
* the Free Software Foundation, either version 2 of the License, or
5+
* (at your option) any later version.
6+
*
7+
* This program is distributed in the hope that it will be useful,
8+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10+
* GNU General Public License for more details.
11+
*
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
14+
*/
15+
#include QMK_KEYBOARD_H
16+
#include "remote_kb.h"
17+
#include <avr/boot.h>
18+
19+
#define _MA 0
20+
#define _FN 1
21+
22+
enum custom_keycodes {
23+
KC_CUST,
24+
};
25+
26+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27+
[_MA] = LAYOUT(
28+
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TILD, \
29+
KC_F13, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \
30+
KC_F14, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
31+
KC_F15, 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_UP, KC_PGDN, \
32+
KC_F16, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
33+
),
34+
[_FN] = LAYOUT(
35+
RESET, 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_HOME, KC_INS, \
36+
RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
37+
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
38+
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
39+
_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT \
40+
),
41+
42+
};
43+
44+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
45+
switch(keycode) {
46+
case KC_CUST: //custom macro
47+
if (record->event.pressed) {
48+
}
49+
break;
50+
51+
case RM_1: //remote macro 1
52+
if (record->event.pressed) {
53+
}
54+
break;
55+
56+
case RM_2: //remote macro 2
57+
if (record->event.pressed) {
58+
}
59+
break;
60+
61+
case RM_3: //remote macro 3
62+
if (record->event.pressed) {
63+
}
64+
break;
65+
66+
case RM_4: //remote macro 4
67+
if (record->event.pressed) {
68+
}
69+
break;
70+
71+
}
72+
return true;
73+
}
74+
75+
bool has_usb(void) {
76+
USBCON |= (1 << OTGPADE); //enables VBUS pad
77+
_delay_us(10);
78+
return (USBSTA & (1<<VBUS)); //checks state of VBUS
79+
}
80+
81+
void matrix_init_user(void) {
82+
uart_init(SERIAL_UART_BAUD);
83+
}
84+
85+
void matrix_scan_user(void) {
86+
matrix_scan_remote_kb();
87+
}

0 commit comments

Comments
 (0)