aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ivy/config.h67
-rw-r--r--keyboards/ivy/ivy.c1
-rw-r--r--keyboards/ivy/ivy.h7
-rw-r--r--keyboards/ivy/keymaps/default/keymap.c46
-rw-r--r--keyboards/ivy/keymaps/default/rules.mk22
-rw-r--r--keyboards/ivy/readme.md15
-rw-r--r--keyboards/ivy/rev1/config.h27
-rw-r--r--keyboards/ivy/rev1/rev1.c5
-rw-r--r--keyboards/ivy/rev1/rev1.h14
-rw-r--r--keyboards/ivy/rev1/rules.mk3
-rw-r--r--keyboards/ivy/rules.mk67
11 files changed, 274 insertions, 0 deletions
diff --git a/keyboards/ivy/config.h b/keyboards/ivy/config.h
new file mode 100644
index 000000000..1e6f5bc96
--- /dev/null
+++ b/keyboards/ivy/config.h
@@ -0,0 +1,67 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x1337
23#define PRODUCT_ID 0x6012
24#define MANUFACTURER Maple Computing
25#define PRODUCT Ivy
26#define DESCRIPTION A 3 key macro pad
27
28/* key matrix size */
29#define MATRIX_ROWS 3
30#define MATRIX_COLS 3
31
32/* COL2ROW or ROW2COL */
33#define DIODE_DIRECTION COL2ROW
34
35/* define if matrix has ghost */
36//#define MATRIX_HAS_GHOST
37
38/* Set 0 if debouncing isn't needed */
39#define DEBOUNCE 5
40
41/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
42#define LOCKING_SUPPORT_ENABLE
43/* Locking resynchronize hack */
44#define LOCKING_RESYNC_ENABLE
45
46#define BACKLIGHT_PIN D2
47
48/* number of backlight levels */
49#define BACKLIGHT_LEVELS 3
50
51/*
52 * Feature disable options
53 * These options are also useful to firmware size reduction.
54 */
55
56/* disable debug print */
57//#define NO_DEBUG
58
59/* disable print */
60//#define NO_PRINT
61
62/* disable action features */
63//#define NO_ACTION_LAYER
64//#define NO_ACTION_TAPPING
65//#define NO_ACTION_ONESHOT
66//#define NO_ACTION_MACRO
67//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ivy/ivy.c b/keyboards/ivy/ivy.c
new file mode 100644
index 000000000..007ef6725
--- /dev/null
+++ b/keyboards/ivy/ivy.c
@@ -0,0 +1 @@
#include "ivy.h"
diff --git a/keyboards/ivy/ivy.h b/keyboards/ivy/ivy.h
new file mode 100644
index 000000000..2cba5f495
--- /dev/null
+++ b/keyboards/ivy/ivy.h
@@ -0,0 +1,7 @@
1#pragma once
2
3#ifdef KEYBOARD_ivy_rev1
4 #include "rev1.h"
5#endif
6
7#include "quantum.h"
diff --git a/keyboards/ivy/keymaps/default/keymap.c b/keyboards/ivy/keymaps/default/keymap.c
new file mode 100644
index 000000000..9a95ba820
--- /dev/null
+++ b/keyboards/ivy/keymaps/default/keymap.c
@@ -0,0 +1,46 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9
10enum pad_layers {
11 _L1,
12 _FUNC
13};
14
15// Defines for task manager and such
16#define CALTDEL LCTL(LALT(KC_DEL))
17#define TSKMGR LCTL(LSFT(KC_ESC))
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21/* Layer 1
22 * ,------.
23 * | 1 |
24 * |------|
25 * | 2 |
26 * |------|
27 * | FN |
28 * `------'
29 */
30[_L1] = LAYOUT( \
31 KC_1, \
32 KC_2, \
33 MO(_FUNC) \
34),
35
36[_FUNC] = LAYOUT( \
37 CALTDEL, \
38 TSKMGR, \
39 _______ \
40)
41
42};
43
44void matrix_init_user(void) {
45
46}
diff --git a/keyboards/ivy/keymaps/default/rules.mk b/keyboards/ivy/keymaps/default/rules.mk
new file mode 100644
index 000000000..cd169fbfd
--- /dev/null
+++ b/keyboards/ivy/keymaps/default/rules.mk
@@ -0,0 +1,22 @@
1
2
3# Build Options
4# change to "no" to disable the options, or define them in the Makefile in
5# the appropriate keymap folder that will get included automatically
6#
7BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
8MOUSEKEY_ENABLE = no # Mouse keys(+4700)
9EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
10CONSOLE_ENABLE = no # Console for debug(+400)
11COMMAND_ENABLE = no # Commands for debug and configuration
12NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
13BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
14MIDI_ENABLE = no # MIDI controls
15AUDIO_ENABLE = no # Audio output on port C6
16UNICODE_ENABLE = no # Unicode
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
19
20# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
22
diff --git a/keyboards/ivy/readme.md b/keyboards/ivy/readme.md
new file mode 100644
index 000000000..f70630b52
--- /dev/null
+++ b/keyboards/ivy/readme.md
@@ -0,0 +1,15 @@
1IVY
2===
3
4![Ivy](https://i.imgur.com/fnVQet6.jpg)
5
6Make example for this keyboard (after setting up your build environment):
7
8 make ivy/rev1:default
9
10Install examples:
11
12 make ivy/rev1:default:dfu
13
14See 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.
15Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/ivy/rev1/config.h b/keyboards/ivy/rev1/config.h
new file mode 100644
index 000000000..9b88b89e5
--- /dev/null
+++ b/keyboards/ivy/rev1/config.h
@@ -0,0 +1,27 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#define DEVICE_VER 0x0001
21
22/* Let's Macro V2 pin-out */
23#define MATRIX_ROW_PINS { F1, B2, D3 }
24#define MATRIX_COL_PINS { F5, B3, D5 }
25#define UNUSED_PINS
26
27#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/ivy/rev1/rev1.c b/keyboards/ivy/rev1/rev1.c
new file mode 100644
index 000000000..c099e32c4
--- /dev/null
+++ b/keyboards/ivy/rev1/rev1.c
@@ -0,0 +1,5 @@
1#include "ivy.h"
2
3void matrix_init_kb(void) {
4 matrix_init_user();
5};
diff --git a/keyboards/ivy/rev1/rev1.h b/keyboards/ivy/rev1/rev1.h
new file mode 100644
index 000000000..ac338368e
--- /dev/null
+++ b/keyboards/ivy/rev1/rev1.h
@@ -0,0 +1,14 @@
1#pragma once
2
3#include "ivy.h"
4
5#define LAYOUT( \
6 K00, \
7 K01, \
8 K02 \
9 ) \
10 { \
11 { K00, KC_NO, KC_NO }, \
12 { KC_NO, K01, KC_NO }, \
13 { KC_NO, KC_NO, K02 }, \
14 }
diff --git a/keyboards/ivy/rev1/rules.mk b/keyboards/ivy/rev1/rules.mk
new file mode 100644
index 000000000..f4043e2b7
--- /dev/null
+++ b/keyboards/ivy/rev1/rules.mk
@@ -0,0 +1,3 @@
1BACKLIGHT_ENABLE = yes
2RGBLIGHT_ENABLE = no
3AUDIO_ENABLE = no \ No newline at end of file
diff --git a/keyboards/ivy/rules.mk b/keyboards/ivy/rules.mk
new file mode 100644
index 000000000..1ef5b4aad
--- /dev/null
+++ b/keyboards/ivy/rules.mk
@@ -0,0 +1,67 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = caterina
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45
46# Build Options
47# change to "no" to disable the options, or define them in the Makefile in
48# the appropriate keymap folder that will get included automatically
49#
50BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
51MOUSEKEY_ENABLE = no # Mouse keys(+4700)
52EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
53CONSOLE_ENABLE = no # Console for debug(+400)
54COMMAND_ENABLE = yes # Commands for debug and configuration
55NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
57MIDI_ENABLE = no # MIDI controls
58AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
62API_SYSEX_ENABLE = no
63
64# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
65SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
66
67DEFAULT_FOLDER = ivy/rev1 \ No newline at end of file