summaryrefslogtreecommitdiffstats
path: root/keyboards/kmini
diff options
context:
space:
mode:
authorlokher <lokher@gmail.com>2022-09-13 11:24:05 +0800
committerlokher <lokher@gmail.com>2022-09-13 11:24:05 +0800
commit9581289745736ce068a1040f44cec37a2ca8830d (patch)
tree24f644715a5fd6cc4d804d9604fb094307808b1b /keyboards/kmini
parentfe13cedf8c09fa34d5cec4e4c624738095176625 (diff)
Remove non-Keychron keyboards
Diffstat (limited to 'keyboards/kmini')
-rwxr-xr-xkeyboards/kmini/config.h42
-rwxr-xr-xkeyboards/kmini/info.json16
-rwxr-xr-xkeyboards/kmini/keymaps/default/keymap.c48
-rwxr-xr-xkeyboards/kmini/kmini.c28
-rwxr-xr-xkeyboards/kmini/kmini.h35
-rwxr-xr-xkeyboards/kmini/matrix.c310
-rwxr-xr-xkeyboards/kmini/readme.md13
-rwxr-xr-xkeyboards/kmini/rules.mk24
8 files changed, 0 insertions, 516 deletions
diff --git a/keyboards/kmini/config.h b/keyboards/kmini/config.h
deleted file mode 100755
index 7138b158a6..0000000000
--- a/keyboards/kmini/config.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2018 Evy Dekkers
- *
- * 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"
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 17
-
-/*
- * Keyboard Matrix Assignments
- * The KMAC uses a demultiplexer for some of the cols.
- * See matrix.c for more details.
-*/
-#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
-#define MATRIX_COL_PINS { }
-
-/* COL2ROW, ROW2COL*/
-//#define DIODE_DIRECTION
-
-/* number of backlight levels */
-//#define BACKLIGHT_LEVELS 3
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
diff --git a/keyboards/kmini/info.json b/keyboards/kmini/info.json
deleted file mode 100755
index 42d7da54bb..0000000000
--- a/keyboards/kmini/info.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "keyboard_name": "KMAC Mini",
- "manufacturer": "Revo",
- "url": "http://kbdmodadmin.cafe24.com/product/detail.html?product_no=12&cate_no=4&display_group=1",
- "maintainer": "evyd13",
- "usb": {
- "vid": "0xFEED",
- "pid": "0x6050",
- "device_version": "1.0.4"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"Esc", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Insert", "x":17.25, "y":0}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"Delete", "x":17.25, "y":1}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgUp", "x":17.25, "y":2}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"PgDn", "x":17.25, "y":3}, {"label":"F9", "x":0, "y":4}, {"label":"F10", "x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"label":"GUI", "x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"x":6.25, "y":4, "w":7}, {"label":"Fn", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}]
- }
- }
-}
diff --git a/keyboards/kmini/keymaps/default/keymap.c b/keyboards/kmini/keymaps/default/keymap.c
deleted file mode 100755
index c3a7b12a40..0000000000
--- a/keyboards/kmini/keymaps/default/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2018 Evy Dekkers
- *
- * 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
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _MA 0
-#define _FN 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MA] = LAYOUT(
- KC_F1, KC_F2, 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_INS,
- KC_F3, KC_F4, 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,
- KC_F5, KC_F6, 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,
- KC_F7, KC_F8, 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,
- KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN] = LAYOUT(
- _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- writePinLow(B1);
- } else {
- writePinHigh(B1);
- }
-}
diff --git a/keyboards/kmini/kmini.c b/keyboards/kmini/kmini.c
deleted file mode 100755
index 1ffd30475b..0000000000
--- a/keyboards/kmini/kmini.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2018 Evy Dekkers
- *
- * 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 "kmini.h"
-
-void led_init_ports(void) {
- DDRB |= (1<<1); // OUT
- DDRB |= (1<<2); // OUT
- DDRB |= (1<<3); // OUT
-}
-
-/* LED pin configuration
- * Caps Lock: Low B1
- * Side1: Low B3
- * Side2: Low B2
- */
diff --git a/keyboards/kmini/kmini.h b/keyboards/kmini/kmini.h
deleted file mode 100755
index e32ad5a0f9..0000000000
--- a/keyboards/kmini/kmini.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2018 Evy Dekkers
- *
- * 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 ___ KC_NO
-
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, k3F, k3G, \
- k40, k41, k42, k43, k44, k47, k4C, k4E, k4F, k4G \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G }, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, ___, k2F, k2G }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, k3E, k3F, k3G }, \
- { k40, k41, k42, k43, k44, ___, ___, k47, ___, ___, ___, ___, k4C, ___, k4E, k4F, k4G } \
-}
diff --git a/keyboards/kmini/matrix.c b/keyboards/kmini/matrix.c
deleted file mode 100755
index f3e60eb869..0000000000
--- a/keyboards/kmini/matrix.c
+++ /dev/null
@@ -1,310 +0,0 @@
-/* Copyright 2018 Evy Dekkers
- *
- * 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 <stdint.h>
-#include <stdbool.h>
-#if defined(__AVR__)
-#include <avr/io.h>
-#endif
-#include "wait.h"
-#include "print.h"
-#include "debug.h"
-#include "util.h"
-#include "matrix.h"
-#include "timer.h"
-
-
-/* Set 0 if debouncing isn't needed */
-#ifndef DEBOUNCE
-# define DEBOUNCE 5
-#endif
-
-#define COL_SHIFTER ((uint32_t)1)
-
-static uint16_t debouncing_time;
-static bool debouncing = false;
-
-
-static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
-
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
-
-static void init_rows(void);
-static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col);
-static void unselect_cols(void);
-static void select_col(uint8_t col);
-
-__attribute__ ((weak))
-void matrix_init_user(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {}
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-inline
-uint8_t matrix_rows(void) {
- return MATRIX_ROWS;
-}
-
-inline
-uint8_t matrix_cols(void) {
- return MATRIX_COLS;
-}
-
-void matrix_init(void) {
- unselect_cols();
- init_rows();
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- matrix[i] = 0;
- matrix_debouncing[i] = 0;
- }
-
- matrix_init_quantum();
-}
-
-uint8_t matrix_scan(void)
-{
- // Set col, read rows
- for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
- bool matrix_changed = read_rows_on_col(matrix_debouncing, current_col);
- if (matrix_changed) {
- debouncing = true;
- debouncing_time = timer_read();
- }
- }
-
- if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCE)) {
- for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
- matrix[i] = matrix_debouncing[i];
- }
- debouncing = false;
- }
-
- matrix_scan_quantum();
- return 1;
-}
-
-inline
-bool matrix_is_on(uint8_t row, uint8_t col)
-{
- return (matrix[row] & ((matrix_row_t)1<<col));
-}
-
-inline
-matrix_row_t matrix_get_row(uint8_t row)
-{
- return matrix[row];
-}
-
-void matrix_print(void)
-{
- print("\nr/c 0123456789ABCDEFGHIJKLMNOPQRSTUV \n");
-
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- print_hex8(row); print(": ");
- print_bin_reverse32(matrix_get_row(row));
- print("\n");
- }
-}
-
-static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
-{
- bool matrix_changed = false;
-
- // Select col and wait for col selecton to stabilize
- select_col(current_col);
- wait_us(30);
-
- // For each row...
- for(uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++)
- {
- // Store last value of row prior to reading
- matrix_row_t last_row_value = current_matrix[row_index];
-
- // Check row pin state
- // Use the otherwise unused row: 3, col: 0 for caps lock
- if (row_index == 2 && current_col == 2) {
- // Pin E2 uses active low
- if ((_SFR_IO8(E2 >> 4) & _BV(E2 & 0xF)) == 0)
- {
- // Pin LO, set col bit
- current_matrix[row_index] |= (COL_SHIFTER << current_col);
- }
- else
- {
- // Pin HI, clear col bit
- current_matrix[row_index] &= ~(COL_SHIFTER << current_col);
- }
- }
- else {
- if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)))
- {
- // Pin HI, set col bit
- current_matrix[row_index] |= (COL_SHIFTER << current_col);
- }
- else
- {
- // Pin LO, clear col bit
- current_matrix[row_index] &= ~(COL_SHIFTER << current_col);
- }
- }
-
- // Determine if the matrix changed state
- if ((last_row_value != current_matrix[row_index]) && !(matrix_changed))
- {
- matrix_changed = true;
- }
- }
-
- // Unselect cols
- unselect_cols();
-
- return matrix_changed;
-}
-
-/* Row pin configuration
- * row: 0 1 2 3 4
- * pin: D0 D1 D2 D3 D5
- *
- * Caps lock uses its own pin E2
- */
-static void init_rows(void) {
- DDRD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // IN
- PORTD &= ~((1<<0)| (1<<1) | (1<<2) | (1<<3) | (1<<5)); // LO
-
- DDRE &= ~(1<<2); // IN
- PORTE |= (1<<2); // HI
-}
-
-/* Columns 0 - 16
- * col 0: B5
- * col 1: B6
- * These columns use a 74HC237D 3 to 8 bit demultiplexer.
- * A B C GL1
- * col / pin: PF0 PF1 PC7 PC6
- * 2: 0 0 0 1
- * 3: 1 0 0 1
- * 4: 0 1 0 1
- * 5: 1 1 0 1
- * 6: 0 0 1 1
- * 7: 1 0 1 1
- * 8: 0 1 1 1
- * 9: 1 1 1 1
- * col 10: E6
- * col 11: B0
- * col 12: B7
- * col 13: D4
- * col 14: D6
- * col 15: D7
- * col 16: B4
- */
-static void unselect_cols(void) {
- DDRB |= (1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4); // OUT
- PORTB &= ~((1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4)); // LO
-
- DDRD |= (1<<4) | (1<<6) | (1<<7); // OUT
- PORTD &= ~((1<<4) | (1<<6) | (1<<7)); // LO
-
- DDRE |= (1<<6); // OUT
- PORTE &= ~((1<<6)); // LO
-
- DDRF |= (1<<0) | (1<<1); // OUT
- PORTF &= ~((1<<0) | (1<<1)); // LO
-
- DDRC |= (1<<7) | (1<<6); // OUT
- PORTC &= ~((1<<7) | (1<<6)); // LO
-}
-
-static void select_col(uint8_t col)
-{
- switch (col) {
- case 0:
- PORTB |= (1<<5); // HI
- break;
- case 1:
- PORTB |= (1<<6); // HI
- break;
- case 2:
- PORTC |= (1<<6); // HI
- break;
- case 3:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<0); // HI
- break;
- case 4:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<1); // HI
- break;
- case 5:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<0); // HI
- PORTF |= (1<<1); // HI
- break;
- case 6:
- PORTC |= (1<<6); // HI
- PORTC |= (1<<7); // HI
- break;
- case 7:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<0); // HI
- PORTC |= (1<<7); // HI
- break;
- case 8:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<1); // HI
- PORTC |= (1<<7); // HI
- break;
- case 9:
- PORTC |= (1<<6); // HI
- PORTF |= (1<<0); // HI
- PORTF |= (1<<1); // HI
- PORTC |= (1<<7); // HI
- break;
- case 10:
- PORTE |= (1<<6); // HI
- break;
- case 11:
- PORTB |= (1<<0); // HI
- break;
- case 12:
- PORTB |= (1<<7); // HI
- break;
- case 13:
- PORTD |= (1<<4); // HI
- break;
- case 14:
- PORTD |= (1<<6); // HI
- break;
- case 15:
- PORTD |= (1<<7); // HI
- break;
- case 16:
- PORTB |= (1<<4); // HI
- break;
- }
-}
diff --git a/keyboards/kmini/readme.md b/keyboards/kmini/readme.md
deleted file mode 100755
index 2a9e8e7908..0000000000
--- a/keyboards/kmini/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-Kmini keyboard firmware
-======================
-
-The Revo Kmini is a 65% keyboard with an additional two columns on the left. It is programmed with the 'KMAC key map', which only works on Windows and according to a [user](https://www.keebtalk.com/t/programming-revo-kmini/2107/7) it cannot map media controls or change the capslock key.
-
-## Hardware
-Columns 0, 1 and 10-16 and rows 0-4 are wired directly to the ATmega32u4, and columns 2-9 are wired to the [74HC237D demultiplexer](https://www.mouser.de/datasheet/2/916/74HC237-1319445.pdf). Capslock is on E2 and also triggers a reset if held when plugging the cable in. There are three possible places for leds, which are the capslock key and the two keys above the right arrow key. All three of them are individually controllable. The ATmega32u4 runs on an external crystal on 8mhz, so you'll have to change the bitclock on the ISP programmer if you're unable to read or write the chip.
-
-## How to build
-Please read the [documentation](https://docs.qmk.fm).
-
-## How to flash
-Hold the capslock key while plugging in the USB and flash the .hex file using QMK Toolbox or Atmel FLIP. \ No newline at end of file
diff --git a/keyboards/kmini/rules.mk b/keyboards/kmini/rules.mk
deleted file mode 100755
index 4a1f9693e4..0000000000
--- a/keyboards/kmini/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# MCU name
-MCU = atmega32u4
-
-# Processor frequency
-F_CPU = 8000000
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-CUSTOM_MATRIX = yes # Custom matrix file
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output
-
-# Project specific files
-SRC = matrix.c