~ruther/qmk_firmware

84718c0ab7fc3661d9420e9872e3a86732da52a9 — alabbe9545 3 years ago 712f6cf
[Keyboard] Add labbeminiv1 (#16401)

* [Keyboard] Add labbeminiv1

* Adjust vendor id

The used vendor id was in use

* Remove comment in the rgb keymap

* Update keyboards/labbe/labbeminiv1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Rename rgb matrix keymap folder

Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/labbe/labbeminiv1/config.h => keyboards/labbe/labbeminiv1/config.h +55 -0
@@ 0,0 1,55 @@
/*
 * 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       0xABBE  
#define PRODUCT_ID      0x4C4D
#define DEVICE_VER      0x0001
#define MANUFACTURER    Labbe
#define PRODUCT         Labbe Mini V1

/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 3

/*
 * 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 { F5, F6 }
#define MATRIX_COL_PINS { F0, F1, F4 }
#define UNUSED_PINS

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 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
\ No newline at end of file

A keyboards/labbe/labbeminiv1/info.json => keyboards/labbe/labbeminiv1/info.json +10 -0
@@ 0,0 1,10 @@
{
    "keyboard_name": "Labbe Mini V1", 
    "url": "", 
    "maintainer": "qmk", 
    "layouts": {
        "LAYOUT_wasd": {
            "layout": [{"x":1, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}]
        }
    }
}
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/default/keymap.c => keyboards/labbe/labbeminiv1/keymaps/default/keymap.c +20 -0
@@ 0,0 1,20 @@
/*
 * 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 QMK_KEYBOARD_H 

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D),
};
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/default/readme.md => keyboards/labbe/labbeminiv1/keymaps/default/readme.md +1 -0
@@ 0,0 1,1 @@
# The default keymap for the labbe mini v1

A keyboards/labbe/labbeminiv1/keymaps/rgb/config.h => keyboards/labbe/labbeminiv1/keymaps/rgb/config.h +28 -0
@@ 0,0 1,28 @@
/*
 * 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

// ws2812 options
#define RGB_DI_PIN C7 // pin the DI on the ws2812 is hooked-up to

#define RGBLED_NUM 4 // number of LEDs
#define RGBLIGHT_DEFAULT_MODE 6 // set the rainbow mode
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP //   If defined, the RGB lighting will be switched off when the host goes to sleep
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c => keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c +20 -0
@@ 0,0 1,20 @@
/*
 * 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 QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D),
};
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk => keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk +1 -0
@@ 0,0 1,1 @@
RGBLIGHT_ENABLE = yes
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h => keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h +26 -0
@@ 0,0 1,26 @@
/*
 * 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

// ws2812 options
#define RGB_DI_PIN C7 // pin the DI on the ws2812 is hooked-up to
#define RGBLED_NUM 4 // number of LEDs
#define DRIVER_LED_TOTAL RGBLED_NUM

#define RGB_MATRIX_KEYPRESSES

#define ENABLE_RGB_MATRIX_MULTISPLASH
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_MULTISPLASH
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c => keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c +20 -0
@@ 0,0 1,20 @@
/*
 * 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 QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D),
};
\ No newline at end of file

A keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk => keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk +2 -0
@@ 0,0 1,2 @@
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
\ No newline at end of file

A keyboards/labbe/labbeminiv1/labbeminiv1.c => keyboards/labbe/labbeminiv1/labbeminiv1.c +36 -0
@@ 0,0 1,36 @@
/*
 * 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 "labbeminiv1.h"

#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = {
  {
    // Key Matrix to LED Index
    {NO_LED, 0, NO_LED},
    {1, 2, 3}
  }, 
  {
    // LED Index to Physical Position
    {112, 0},
    {0, 64}, {112, 64}, {224, 64},
  }, 
  {
    // LED Index to Flag
    4,
    4, 4, 4
  } 
};
#endif
\ No newline at end of file

A keyboards/labbe/labbeminiv1/labbeminiv1.h => keyboards/labbe/labbeminiv1/labbeminiv1.h +20 -0
@@ 0,0 1,20 @@
/*
 * 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"

#define LAYOUT_wasd(k01, k10, k11, k12) { {KC_NO, k01, KC_NO}, {k10, k11, k12} }
\ No newline at end of file

A keyboards/labbe/labbeminiv1/readme.md => keyboards/labbe/labbeminiv1/readme.md +3 -0
@@ 0,0 1,3 @@
# Labbe Mini V1 Keyboard

A 4 key keyboard with perkey rgb support
\ No newline at end of file

A keyboards/labbe/labbeminiv1/rules.mk => keyboards/labbe/labbeminiv1/rules.mk +18 -0
@@ 0,0 1,18 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = atmel-dfu

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no        # Mouse keys
EXTRAKEY_ENABLE = no        # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no         # Commands for debug and configuration
NKRO_ENABLE = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output
\ No newline at end of file