]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Christmas tree (#2105)
authorJosh Sankey <js@psimail.pw>
Thu, 14 Dec 2017 20:58:40 +0000 (15:58 -0500)
committerJack Humbert <jack.humb@gmail.com>
Thu, 14 Dec 2017 20:58:40 +0000 (15:58 -0500)
* Line ending stuff again

* Added initial files for Christmas Tree PCB

* Updated Readme and info json's, also config.

* Cleaned up keymap file, added proper comments for keymap. Removed readme leftover from original copy of planck folder structure.

14 files changed:
keyboards/christmas_tree/V2017/V2017.c [new file with mode: 0644]
keyboards/christmas_tree/V2017/V2017.h [new file with mode: 0644]
keyboards/christmas_tree/V2017/config.h [new file with mode: 0644]
keyboards/christmas_tree/V2017/info.json [new file with mode: 0644]
keyboards/christmas_tree/christmas_tree.c [new file with mode: 0644]
keyboards/christmas_tree/christmas_tree.h [new file with mode: 0644]
keyboards/christmas_tree/config.h [new file with mode: 0644]
keyboards/christmas_tree/info.json [new file with mode: 0644]
keyboards/christmas_tree/keymaps/default/config.h [new file with mode: 0644]
keyboards/christmas_tree/keymaps/default/keymap.c [new file with mode: 0644]
keyboards/christmas_tree/keymaps/default/readme.md [new file with mode: 0644]
keyboards/christmas_tree/keymaps/default/rules.mk [new file with mode: 0644]
keyboards/christmas_tree/readme.md [new file with mode: 0644]
keyboards/christmas_tree/rules.mk [new file with mode: 0644]

diff --git a/keyboards/christmas_tree/V2017/V2017.c b/keyboards/christmas_tree/V2017/V2017.c
new file mode 100644 (file)
index 0000000..e367270
--- /dev/null
@@ -0,0 +1 @@
+#include "V2017.h"
\ No newline at end of file
diff --git a/keyboards/christmas_tree/V2017/V2017.h b/keyboards/christmas_tree/V2017/V2017.h
new file mode 100644 (file)
index 0000000..a82a1e8
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef V2017_H
+#define V2017_H
+
+#include "christmas_tree.h"
+
+#endif
\ No newline at end of file
diff --git a/keyboards/christmas_tree/V2017/config.h b/keyboards/christmas_tree/V2017/config.h
new file mode 100644 (file)
index 0000000..ebe3d3b
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef V2017_CONFIG_H
+#define V2017_CONFIG_H
+
+#include "config_common.h"
+
+#define DEVICE_VER 0x2017
+
+#endif
\ No newline at end of file
diff --git a/keyboards/christmas_tree/V2017/info.json b/keyboards/christmas_tree/V2017/info.json
new file mode 100644 (file)
index 0000000..6f47bdb
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "identifier": "FEED:3070:2017"
+}
\ No newline at end of file
diff --git a/keyboards/christmas_tree/christmas_tree.c b/keyboards/christmas_tree/christmas_tree.c
new file mode 100644 (file)
index 0000000..04d41c1
--- /dev/null
@@ -0,0 +1,5 @@
+#include "christmas_tree.h"
+
+void matrix_init_kb(void) {
+       matrix_init_user();
+}
diff --git a/keyboards/christmas_tree/christmas_tree.h b/keyboards/christmas_tree/christmas_tree.h
new file mode 100644 (file)
index 0000000..1d77fa7
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef CHRISTMAS_TREE_H
+#define CHRISTMAS_TREE_H
+#include "quantum.h"
+
+
+#define KEYMAP( \
+       k00, k01, k02, k03, k04, k05 \
+) \
+{ \
+       { k00 }, \
+       { k01 }, \
+       { k02 }, \
+       { k03 }, \
+       { k04 }, \
+       { k05 } \
+}
+
+
+
+#endif
diff --git a/keyboards/christmas_tree/config.h b/keyboards/christmas_tree/config.h
new file mode 100644 (file)
index 0000000..4929f0e
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+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/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x3070
+#define MANUFACTURER    Maple Computing
+#define PRODUCT         Christmas Tree
+#define DESCRIPTION     A tiny 6 key macro pad, in the shape of a christmas tree
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 1
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D3, F4, D0, F6, F5, D4 }
+#define MATRIX_COL_PINS { D1 }
+#define UNUSED_PINS
+
+#define BACKLIGHT_PIN D2
+
+/* 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 DEBOUNCING_DELAY 5
+
+/* 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
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#endif
diff --git a/keyboards/christmas_tree/info.json b/keyboards/christmas_tree/info.json
new file mode 100644 (file)
index 0000000..fde41ac
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "keyboard_name": "Christmas Tree",
+    "keyboard_folder": "christmas_tree",
+    "manufacturer": "Maple Computing",
+    "identifier": "FEED:3070:2017",
+    "url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/",
+    "processor": "atmega32u4",
+    "bootloader": "catarina",
+    "maintainer": "That-Canadian",
+    "width": 3,
+    "height": 3,
+    "layouts": {
+        "2017": {
+            "key_count": 6
+        }
+    }
+}
\ No newline at end of file
diff --git a/keyboards/christmas_tree/keymaps/default/config.h b/keyboards/christmas_tree/keymaps/default/config.h
new file mode 100644 (file)
index 0000000..4553e62
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif
\ No newline at end of file
diff --git a/keyboards/christmas_tree/keymaps/default/keymap.c b/keyboards/christmas_tree/keymaps/default/keymap.c
new file mode 100644 (file)
index 0000000..38da326
--- /dev/null
@@ -0,0 +1,77 @@
+/* Copyright 2015-2017 Jack Humbert
+ *
+ * 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 "christmas_tree.h"
+
+extern keymap_config_t keymap_config;
+
+enum layers {
+  _BASE,
+  _FUNC
+};
+
+enum custom_keycodes {
+  FUNC = SAFE_RANGE,
+  BACKLIT
+};
+
+#define _______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Base
+ *         ,------.
+ *         |   1  |
+ *     ,------+------.
+ *     |   2  |   3  |
+ * ,------+------+------.
+ * |   4  | FUNC |   6  |
+ * `--------------------'
+ */
+[_BASE] = KEYMAP(KC_1, KC_2, KC_3, KC_4, MO(_FUNC), KC_6),
+
+/* Func
+ *         ,------.
+ *         |BCKLIT|
+ *     ,------+------.
+ *     |   8  |   9  |
+ * ,------+------+------.
+ * |   0  | FUNC | RESET|
+ * `--------------------'
+ */
+[_FUNC] = KEYMAP(BACKLIT, KC_8, KC_9, KC_0, _______, RESET)
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case BACKLIT:
+      if (record->event.pressed) {
+        register_code(KC_RSFT);
+        #ifdef BACKLIGHT_ENABLE
+                 register_code(KC_LSFT);
+          backlight_step();
+        #endif
+      } else {
+        unregister_code(KC_RSFT);
+               unregister_code(KC_LSFT);
+      }
+      return false;
+      break;
+  }
+  return true;
+}
\ No newline at end of file
diff --git a/keyboards/christmas_tree/keymaps/default/readme.md b/keyboards/christmas_tree/keymaps/default/readme.md
new file mode 100644 (file)
index 0000000..a9cb458
--- /dev/null
@@ -0,0 +1,2 @@
+# The Default Christmas Tree Layout
+
diff --git a/keyboards/christmas_tree/keymaps/default/rules.mk b/keyboards/christmas_tree/keymaps/default/rules.mk
new file mode 100644 (file)
index 0000000..457a3d0
--- /dev/null
@@ -0,0 +1,3 @@
+ifndef QUANTUM_DIR
+       include ../../../../Makefile
+endif
diff --git a/keyboards/christmas_tree/readme.md b/keyboards/christmas_tree/readme.md
new file mode 100644 (file)
index 0000000..e025232
--- /dev/null
@@ -0,0 +1,14 @@
+Christmas Tree
+===
+
+![Christmas Tree](https://i.imgur.com/I9FNdSv.png)
+
+A tiny 6 key macro pad, in the shape of a christmas tree, made by That-Canadian, SpaceCat, and ChillCaps. 
+
+Keyboard Maintainer: [That-Canadian](https://github.com/That-Canadian)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make christmas_tree/V2017:default
+
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
\ No newline at end of file
diff --git a/keyboards/christmas_tree/rules.mk b/keyboards/christmas_tree/rules.mk
new file mode 100644 (file)
index 0000000..741747e
--- /dev/null
@@ -0,0 +1,70 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+#     This will define a symbol, F_CPU, in all source code files equal to the
+#     processor frequency in Hz. You can then use this symbol in your source code to
+#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+#     automatically to create a 32-bit value in your source code.
+#
+#     This will be an integer division of F_USB below, as it is sourced by
+#     F_USB after it has run through any CPU prescalers. Note that this value
+#     does not *change* the processor frequency - it should merely be updated to
+#     reflect the processor speed set externally so that the code can use accurate
+#     software delays.
+F_CPU = 16000000
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+#     This will define a symbol, F_USB, in all source code files equal to the
+#     input clock frequency (before any prescaling is performed) in Hz. This value may
+#     differ from F_CPU if prescaling is used on the latter, and is required as the
+#     raw input clock is fed directly to the PLL sections of the AVR for high speed
+#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+#     at the end, this will be done automatically to create a 32-bit value in your
+#     source code.
+#
+#     If no clock division is performed on the input clock inside the AVR (via the
+#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+#   Teensy halfKay   512
+#   Teensy++ halfKay 1024
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+#   USBaspLoader     2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in 
+#   the appropriate keymap folder that will get included automatically
+#
+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 = 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
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
+API_SYSEX_ENABLE = no
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
+
+DEFAULT_FOLDER = christmas_tree/V2017