Keyboard: xealous (#3731)

* Keyboard: HandWired/XeaL60

* Updated rules.mk

* Mapping for layout was flipped

* Figured out how to re-map bad pins.

* Updated Keymap

* Enabled audio, Forced NKRO

* Added QMK_KEYS_PER_SCAN

* Removed more unnecessary files, since split_keyboards are in main QMK branch already.

* Simplified rules.mk in rev1

* Removed i2c from matrix.c

* Re-formatted to 4 spaces per tab,

* Changed note for NUMPAD

* Added I2C support back!

* Fixed keyboard mappings. Both sides work

* Moved i2c configuration from keymaps/default/config.h to config.h

* Changed SCL_CLOCK to 400000L

* Added DEBUG_MATRIX_SCAN_RATE for future optimization efforts

* Removed row2col code to clean up matrix.c

* Scan rate from 2100 -> 4200 by using Nop instead of waiting 30us between columns.

* Further optimized column reading via optimized_col_reader.

* Immediate key-recognition

* Switched back to own implementation of SPLIT_KEYBOARD. Will optimize so that slave interrupts master.

* Moved scanrate debug messages to another file.

* Made matrix_scanrate.c compile if CONSOLE_ENABLE is off. Updated to latest i2c.c

* Latest i2c uses a few bytes for lighting information

* Optimizations in i2c.h to determine buffer size.

* Disabled a whole bunch of features. TODO: Test that keyboard still works fine.

* Minimum #define NO_ACTION's with still working keyboard

* Fixed matrix not working due to offsets not being respected

* Added numlock button for keymap.

* Use I2C_KEYMAP_START offset

* Removed serial, Backlight and RGB support

* Removed need for split_flags.

* Added audio on and off for numlock.

* Renamed from xeal60 to xealous, simplified build system.

* Used more shared split_common code.

* Updated audio code.

* moved tone_qwerty and tone_numpad to config.h. Removed keymaps/default/config.h

* Added more shortcut keys in _FN layer. Increased debounce to 6ms due to fencepost error.

* DF used with incorrect argument. Custom_keycodes no longer required.

* Fixed bug in update_debounce_counters which was resulting in no debouncing!

* Removed unnecessary #include
This commit is contained in:
Alex Ong
2018-08-29 10:08:07 +10:00
committed by Drashna Jaelre
parent af5f59636e
commit 9bd6d6112d
12 changed files with 1030 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 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/>.
*/
#ifndef REV1_CONFIG_H
#define REV1_CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4131
#define PRODUCT_ID 0x5141
#define DEVICE_VER 0x0001
#define MANUFACTURER XeaLouS
#define PRODUCT XeaL60
#define DESCRIPTION A split keyboard
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 8
// wiring of each half
// Ascii art of pro micro. Pin names PD3, PD2, etc.
//Usage| Name | Label Label| Name | Usage
// PORT
// | PD3 TX0 RAW |
// | PD2 RX1 GND |SerGnd
// | GND RESET |
// | GND VCC |SerVCc
// | PD1 2 A3 PF4 | Col7
//Ser | PD0 3 A2 PF5 | Col6
//Row4 | PD4 4 A1 PF6 | Col5
//AUDIO| PC6 5 A0 PF7 | Col4
//Row3 | PD7 6 15 PB1 | Col3
//Row2 | PE6 7 14 PB3 | Col2
//Row1 | PB4 8 13 PB2 | Col1
//Row0 | PB5 9 10 PB6 | Col0
// Note reservation of C6 for audio
#define MATRIX_ROW_PINS { B5, B4, E6, D7, D4 }
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 }
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
// #define NO_DEBUG
/* disable print */
// #define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#define IGNORE_MOD_TAP_INTERRUPT
#endif

View File

@@ -0,0 +1,6 @@
#include "quantum.h"
#include "rev1.h"
void matrix_init_kb(void) {
matrix_init_user();
}

View File

@@ -0,0 +1,32 @@
#ifndef REV1_H
#define REV1_H
//void promicro_bootloader_jmp(bool program);
#include "quantum.h"
//void promicro_bootloader_jmp(bool program);
#define XXX KC_NO
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \
L10, L11, L12, L13, L14, L15, R17, R16, R15, R14, R13, R12, R11, R10, \
L20, L21, L22, L23, L24, L25, R26, R25, R24, R23, R22, R21, R20, \
L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \
L40, L41, L42, L43, L44, R44, R43, R42, R41, R40 \
) \
{ \
{ XXX, L06, L05, L04, L03, L02, L01, L00 }, \
{ XXX, XXX, L15, L14, L13, L12, L11, L10 }, \
{ XXX, XXX, L25, L24, L23, L22, L21, L20 }, \
{ XXX, XXX, L35, L34, L33, L32, L31, L30 }, \
{ XXX, XXX, XXX, L44, L43, L42, L41, L40 }, \
{ R00, R01, R02, R03, R04, R05, R06, XXX }, \
{ R10, R11, R12, R13, R14, R15, R16, R17 }, \
{ R20, R21, R22, R23, R24, R25, R26, XXX }, \
{ R30, R31, R32, R33, R34, R35, XXX, XXX }, \
{ R40, R41, R42, R43, R44, XXX, XXX, XXX } \
}
#define LAYOUT_split60 LAYOUT
#endif