diff options
Diffstat (limited to 'keyboards/40percentclub/tomato')
-rw-r--r-- | keyboards/40percentclub/tomato/config.h | 45 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/info.json | 13 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/keymaps/default/keymap.c | 143 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/readme.md | 22 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/rules.mk | 74 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/tomato.c | 1 | ||||
-rw-r--r-- | keyboards/40percentclub/tomato/tomato.h | 15 |
7 files changed, 313 insertions, 0 deletions
diff --git a/keyboards/40percentclub/tomato/config.h b/keyboards/40percentclub/tomato/config.h new file mode 100644 index 0000000000..05c83c30cd --- /dev/null +++ b/keyboards/40percentclub/tomato/config.h @@ -0,0 +1,45 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 40 Percent Club +#define PRODUCT Tomato +#define DESCRIPTION A 30 key ortholinear keyboard with RGB backlighting + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 6 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 } +#define MATRIX_COL_PINS { B4, E6, D7, C6, D4, D0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* 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)) \ +) + +/* eliminate lag on space cadet mods */ +#define PERMISSIVE_HOLD + +/* setup lighting */ +#define RGB_DI_PIN B5 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 30 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/40percentclub/tomato/info.json b/keyboards/40percentclub/tomato/info.json new file mode 100644 index 0000000000..f01f5e7e0b --- /dev/null +++ b/keyboards/40percentclub/tomato/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Tomato", + "url": "", + "maintainer": "qmk", + "bootloader": "", + "width": 10, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x10": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}] + } + } +} diff --git a/keyboards/40percentclub/tomato/keymaps/default/keymap.c b/keyboards/40percentclub/tomato/keymaps/default/keymap.c new file mode 100644 index 0000000000..01a868d7e3 --- /dev/null +++ b/keyboards/40percentclub/tomato/keymaps/default/keymap.c @@ -0,0 +1,143 @@ +#include QMK_KEYBOARD_H + +#define SPC_F1 LT(1,KC_SPC) +#define BS_F2 LT(2,KC_BSPC) +#define C_F3 LT(3,KC_C) +#define V_F4 LT(4,KC_V) +#define B_F5 LT(5,KC_B) +#define Z_CTL MT(MOD_LCTL, KC_Z) +#define X_ALT MT(MOD_LALT, KC_X) +#define N_ALT MT(MOD_RALT, KC_N) +#define M_CTL MT(MOD_RCTL, KC_M) +#define ENT_SFT MT(MOD_RSFT, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Level 0: Default Layer + * ,-------------------------------------------------------------------------------. + * | Q | W | E | R | T | Y | U | I | O | P | + * |-------------------------------------------------------------------------------| + * | A | S | D | F | G | H | J | K | L | ESC | + * |-------------------------------------------------------------------------------| + * | Z | X | C | V | BSPC | SPC | B | N | M | ENT | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P + , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC + , Z_CTL, X_ALT, C_F3, V_F4, BS_F2, SPC_F1, B_F5, N_ALT, M_CTL, ENT_SFT + ), + /* Level 1: Numbers Layer + * ,-------------------------------------------------------------------------------. + * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + * |-------------------------------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | + * |-------------------------------------------------------------------------------| + * | | | | | DEL | | | | | | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 + , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 + , _______,_______,_______,_______,KC_DEL, _______,_______,_______,_______,_______ + ), + /* Level 2: Symbols Layer + * ,-------------------------------------------------------------------------------. + * | ! | @ | # | $ | % | ^ | & | * | ( | ) | + * |-------------------------------------------------------------------------------| + * | F11 | F12 | | | | | | | | ` | + * |-------------------------------------------------------------------------------| + * | | | | | | | | | | | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN + , KC_F11, KC_F12,_______,_______,_______,_______,_______,_______,_______,KC_GRAVE + , _______,_______,_______,_______,_______,_______,_______,_______,_______,_______ + ), + /* Level 3: RGB Layer + * ,-------------------------------------------------------------------------------. + * | | | | | | - | = | [ | ] | \ | + * |-------------------------------------------------------------------------------| + * | Tab | | | | | , | . | / | ; | ' | + * |-------------------------------------------------------------------------------| + * | | | | | | | Left | Down | Up | Right | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( _______,_______,_______,_______,_______,KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS + , KC_TAB, _______,_______,_______,_______,KC_COMM,KC_DOT, KC_SLSH,KC_SCLN,KC_QUOT + , _______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP, KC_RGHT + ), + /* Level 4: RGB Layer + * ,-------------------------------------------------------------------------------. + * | | | | | | _ | + | { | } | | | + * |-------------------------------------------------------------------------------| + * | Tab | | | | | < | > | ? | : | " | + * |-------------------------------------------------------------------------------| + * | | | | | | | Home | PgDn | PgUp | End | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( _______,_______,_______,_______,_______,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE + , KC_TAB, _______,_______,_______,_______,KC_LT, KC_GT, KC_QUES,KC_COLN,KC_DQUO + , _______,_______,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_PGDN,KC_END + ), + /* Level 5: RGB Layer + * ,-------------------------------------------------------------------------------. + * | Calc | Web | Mail |Explore| | | | | | | + * |-------------------------------------------------------------------------------| + * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD|xxxxxxx|xxxxxxx|RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| + * |-------------------------------------------------------------------------------| + * | | | | | Flash | | | | | | + * '-------------------------------------------------------------------------------' + */ + LAYOUT_ortho_3x10 + ( KC_CALC,KC_WSCH,KC_MAIL,KC_MYCM,_______,_______,_______,_______,_______,_______ + , RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,XXXXXXX,XXXXXXX,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD + , _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______ + ), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/40percentclub/tomato/readme.md b/keyboards/40percentclub/tomato/readme.md new file mode 100644 index 0000000000..f93105ffdd --- /dev/null +++ b/keyboards/40percentclub/tomato/readme.md @@ -0,0 +1,22 @@ +# Tomato + +![Tomato](https://2.bp.blogspot.com/-k6lyvfZz2WA/WXYyr508D7I/AAAAAAACB8A/UCNP2WCfvWAT8UWsCDICMRXwip5tAZsOwCLcBGAs/s640/a.JPG) +=== + +A 30 key keyboard with programmable rgb backlighting. + +* [The fluff](http://www.40percent.club/2017/07/tomato-in-gherkin.html) +* [The meat](https://github.com/di0ib/Misc/tree/master/tomato) + +Keyboard Maintainer: QMK Community +Hardware Supported: Tomato PCB +Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2017/07/tomato-in-gherkin.html) + +Make example for this keyboard (after setting up your build environment): + + make 40percentclub/tomato:default + +See 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. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +First pass at adding support for the tomato keyboard. Completely +untested. Intended to kick-start development. diff --git a/keyboards/40percentclub/tomato/rules.mk b/keyboards/40percentclub/tomato/rules.mk new file mode 100644 index 0000000000..844ff99827 --- /dev/null +++ b/keyboards/40percentclub/tomato/rules.mk @@ -0,0 +1,74 @@ +# MCU name +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes + +LAYOUTS = ortho_3x10 diff --git a/keyboards/40percentclub/tomato/tomato.c b/keyboards/40percentclub/tomato/tomato.c new file mode 100644 index 0000000000..dbf8bfe12b --- /dev/null +++ b/keyboards/40percentclub/tomato/tomato.c @@ -0,0 +1 @@ +#include "tomato.h" diff --git a/keyboards/40percentclub/tomato/tomato.h b/keyboards/40percentclub/tomato/tomato.h new file mode 100644 index 0000000000..70bffee302 --- /dev/null +++ b/keyboards/40percentclub/tomato/tomato.h @@ -0,0 +1,15 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_3x10( \ + K00, K01, K02, K03, K04, K05, K10, K11, K12, K13 , \ + K14, K15, K20, K21, K22, K23, K24, K25, K30, K31 , \ + K32, K33, K34, K35, K40, K41, K42, K43, K44, K45 \ +) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 } \ +} |