initial kinisis advantage build
This commit is contained in:
		
							parent
							
								
									9ecf9073b9
								
							
						
					
					
						commit
						1984861338
					
				
					 22 changed files with 2119 additions and 0 deletions
				
			
		
							
								
								
									
										79
									
								
								keyboards/kinesis/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								keyboards/kinesis/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
 | 
			
		||||
## Project specific files
 | 
			
		||||
 | 
			
		||||
SRC=  matrix.c 
 | 
			
		||||
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = at90usb1286
 | 
			
		||||
#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=1024
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
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
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE ?= no            # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE ?= no       # Enable keyboard backlight functionality on B7 by default
 | 
			
		||||
MIDI_ENABLE ?= no            # MIDI controls
 | 
			
		||||
UNICODE_ENABLE ?= no         # Unicode
 | 
			
		||||
BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
			
		||||
AUDIO_ENABLE = no # Audio output should be port E6, current quantum library hardcodes C6, which we use for programming
 | 
			
		||||
CUSTOM_MATRIX=yes # need to do our own thing with the matrix
 | 
			
		||||
 | 
			
		||||
ifndef QUANTUM_DIR
 | 
			
		||||
	include ../../Makefile
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										174
									
								
								keyboards/kinesis/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								keyboards/kinesis/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,174 @@
 | 
			
		|||
/*
 | 
			
		||||
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      0x6060
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    You
 | 
			
		||||
#define PRODUCT         kinesis-advantage
 | 
			
		||||
#define DESCRIPTION     A custom keyboard
 | 
			
		||||
 | 
			
		||||
// Mouse
 | 
			
		||||
#define MOUSEKEY_DELAY          20
 | 
			
		||||
#define MOUSEKEY_INTERVAL       20
 | 
			
		||||
#define MOUSEKEY_MAX_SPEED      4
 | 
			
		||||
#define MOUSEKEY_TIME_TO_MAX    20
 | 
			
		||||
#define MOUSEKEY_WHEEL_MAX_SPEED 1
 | 
			
		||||
#define MOUSEKEY_WHEEL_DELTA 1
 | 
			
		||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 1
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 16
 | 
			
		||||
#define MATRIX_COLS  8 
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * 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)
 | 
			
		||||
 *
 | 
			
		||||
*/
 | 
			
		||||
//Passed through the port multipler, so 4 pins =16
 | 
			
		||||
#define MATRIX_ROW_PINS { F0,F1, F2, F3  }
 | 
			
		||||
 | 
			
		||||
// May be upside down. 
 | 
			
		||||
#define MATRIX_COL_PINS { B0,B1, B2, B3, B4, B5, B6, B7 }
 | 
			
		||||
#define UNUSED_PINS
 | 
			
		||||
 | 
			
		||||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 
 | 
			
		||||
// #define BACKLIGHT_PIN B7
 | 
			
		||||
// #define BACKLIGHT_BREATHING
 | 
			
		||||
// #define BACKLIGHT_LEVELS 3
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCING_DELAY 5
 | 
			
		||||
 | 
			
		||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
 | 
			
		||||
//#define MATRIX_HAS_GHOST
 | 
			
		||||
 | 
			
		||||
/* number of backlight levels */
 | 
			
		||||
 | 
			
		||||
/* 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
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Force NKRO
 | 
			
		||||
 *
 | 
			
		||||
 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
 | 
			
		||||
 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
 | 
			
		||||
 * makefile for this to work.)
 | 
			
		||||
 *
 | 
			
		||||
 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
 | 
			
		||||
 * until the next keyboard reset.
 | 
			
		||||
 *
 | 
			
		||||
 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
 | 
			
		||||
 * fully operational during normal computer usage.
 | 
			
		||||
 *
 | 
			
		||||
 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
 | 
			
		||||
 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
 | 
			
		||||
 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
 | 
			
		||||
 * power-up.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
//#define FORCE_NKRO
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Magic Key Options
 | 
			
		||||
 *
 | 
			
		||||
 * Magic keys are hotkey commands that allow control over firmware functions of
 | 
			
		||||
 * the keyboard. They are best used in combination with the HID Listen program,
 | 
			
		||||
 * found here: https://www.pjrc.com/teensy/hid_listen.html
 | 
			
		||||
 *
 | 
			
		||||
 * The options below allow the magic key functionality to be changed. This is
 | 
			
		||||
 * useful if your keyboard/keypad is missing keys and you want magic key support.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* key combination for magic key command */
 | 
			
		||||
#define IS_COMMAND() ( \
 | 
			
		||||
    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
/* control how magic key switches layers */
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
 | 
			
		||||
 | 
			
		||||
/* override magic key keymap */
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
 | 
			
		||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
 | 
			
		||||
//#define MAGIC_KEY_HELP1          H
 | 
			
		||||
//#define MAGIC_KEY_HELP2          SLASH
 | 
			
		||||
//#define MAGIC_KEY_DEBUG          D
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_MATRIX   X
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_KBD      K
 | 
			
		||||
//#define MAGIC_KEY_DEBUG_MOUSE    M
 | 
			
		||||
//#define MAGIC_KEY_VERSION        V
 | 
			
		||||
//#define MAGIC_KEY_STATUS         S
 | 
			
		||||
//#define MAGIC_KEY_CONSOLE        C
 | 
			
		||||
//#define MAGIC_KEY_LAYER0_ALT1    ESC
 | 
			
		||||
//#define MAGIC_KEY_LAYER0_ALT2    GRAVE
 | 
			
		||||
//#define MAGIC_KEY_LAYER0         0
 | 
			
		||||
//#define MAGIC_KEY_LAYER1         1
 | 
			
		||||
//#define MAGIC_KEY_LAYER2         2
 | 
			
		||||
//#define MAGIC_KEY_LAYER3         3
 | 
			
		||||
//#define MAGIC_KEY_LAYER4         4
 | 
			
		||||
//#define MAGIC_KEY_LAYER5         5
 | 
			
		||||
//#define MAGIC_KEY_LAYER6         6
 | 
			
		||||
//#define MAGIC_KEY_LAYER7         7
 | 
			
		||||
//#define MAGIC_KEY_LAYER8         8
 | 
			
		||||
//#define MAGIC_KEY_LAYER9         9
 | 
			
		||||
//#define MAGIC_KEY_BOOTLOADER     PAUSE
 | 
			
		||||
//#define MAGIC_KEY_LOCK           CAPS
 | 
			
		||||
//#define MAGIC_KEY_EEPROM         E
 | 
			
		||||
//#define MAGIC_KEY_NKRO           N
 | 
			
		||||
//#define MAGIC_KEY_SLEEP_LED      Z
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										232
									
								
								keyboards/kinesis/docs/kicad/kinesis-cache.lib
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										232
									
								
								keyboards/kinesis/docs/kicad/kinesis-cache.lib
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,232 @@
 | 
			
		|||
EESchema-LIBRARY Version 2.3  Date: Wednesday, November 12, 2014 'pmt' 10:15:19 pm
 | 
			
		||||
#encoding utf-8
 | 
			
		||||
#
 | 
			
		||||
# AT90S4414-P
 | 
			
		||||
#
 | 
			
		||||
DEF AT90S4414-P IC 0 40 Y Y 1 F N
 | 
			
		||||
F0 "IC" -850 1880 40 H V L BNN
 | 
			
		||||
F1 "AT90S4414-P" 450 -1950 40 H V L BNN
 | 
			
		||||
F2 "DIL40" 0 0 30 H V C CIN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
ALIAS AT90S8515-P
 | 
			
		||||
$FPLIST
 | 
			
		||||
 40DIP-ELL600
 | 
			
		||||
 40dip600
 | 
			
		||||
$ENDFPLIST
 | 
			
		||||
DRAW
 | 
			
		||||
S -850 1850 850 -1850 0 1 10 f
 | 
			
		||||
X (T0)PB0 1 1000 700 150 L 40 40 1 1 B
 | 
			
		||||
X (T1)PB1 2 1000 600 150 L 40 40 1 1 B
 | 
			
		||||
X (AIN0)PB2 3 1000 500 150 L 40 40 1 1 B
 | 
			
		||||
X (AIN1)PB3 4 1000 400 150 L 40 40 1 1 B
 | 
			
		||||
X (~SS~)PB4 5 1000 300 150 L 40 40 1 1 B
 | 
			
		||||
X (MOSI)PB5 6 1000 200 150 L 40 40 1 1 B
 | 
			
		||||
X (MISO)PB6 7 1000 100 150 L 40 40 1 1 B
 | 
			
		||||
X (SCK)PB7 8 1000 0 150 L 40 40 1 1 B
 | 
			
		||||
X ~RESET 9 -1000 1700 150 R 40 40 1 1 I
 | 
			
		||||
X (RXD)PD0 10 1000 -1000 150 L 40 40 1 1 B
 | 
			
		||||
X GND 20 0 -2000 150 U 40 40 1 1 W
 | 
			
		||||
X ALE 30 1000 850 150 L 40 40 1 1 O
 | 
			
		||||
X VCC 40 0 2000 150 D 40 40 1 1 W
 | 
			
		||||
X (TXD)PD1 11 1000 -1100 150 L 40 40 1 1 B
 | 
			
		||||
X (A8)PC0 21 1000 -150 150 L 40 40 1 1 B
 | 
			
		||||
X ICP 31 -1000 -1400 150 R 40 40 1 1 I
 | 
			
		||||
X (INT0)PD2 12 1000 -1200 150 L 40 40 1 1 B
 | 
			
		||||
X (A9)PC1 22 1000 -250 150 L 40 40 1 1 B
 | 
			
		||||
X (AD7)PA7 32 1000 1000 150 L 40 40 1 1 B
 | 
			
		||||
X (INT1)PD3 13 1000 -1300 150 L 40 40 1 1 B
 | 
			
		||||
X (A10)PC2 23 1000 -350 150 L 40 40 1 1 B
 | 
			
		||||
X (AD6)PA6 33 1000 1100 150 L 40 40 1 1 B
 | 
			
		||||
X PD4 14 1000 -1400 150 L 40 40 1 1 B
 | 
			
		||||
X (A11)PC3 24 1000 -450 150 L 40 40 1 1 B
 | 
			
		||||
X (AD5)PA5 34 1000 1200 150 L 40 40 1 1 B
 | 
			
		||||
X (OC1A)PD5 15 1000 -1500 150 L 40 40 1 1 B
 | 
			
		||||
X (A12)PC4 25 1000 -550 150 L 40 40 1 1 B
 | 
			
		||||
X (AD4)PA4 35 1000 1300 150 L 40 40 1 1 B
 | 
			
		||||
X (~WR~)PD6 16 1000 -1600 150 L 40 40 1 1 B
 | 
			
		||||
X (A13)PC5 26 1000 -650 150 L 40 40 1 1 B
 | 
			
		||||
X (AD3)PA3 36 1000 1400 150 L 40 40 1 1 B
 | 
			
		||||
X (~RD~)PD7 17 1000 -1700 150 L 40 40 1 1 B
 | 
			
		||||
X (A14)PC6 27 1000 -750 150 L 40 40 1 1 B
 | 
			
		||||
X (AD2)PA2 37 1000 1500 150 L 40 40 1 1 B
 | 
			
		||||
X XTAL2 18 -1000 1200 150 R 40 40 1 1 B
 | 
			
		||||
X (A15)PC7 28 1000 -850 150 L 40 40 1 1 B
 | 
			
		||||
X (AD1)PA1 38 1000 1600 150 L 40 40 1 1 B
 | 
			
		||||
X XTAL1 19 -1000 800 150 R 40 40 1 1 B
 | 
			
		||||
X OC1B 29 -1000 -1500 150 R 40 40 1 1 W
 | 
			
		||||
X (AD0)PA0 39 1000 1700 150 L 40 40 1 1 B
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# ATMEGA16U4-A
 | 
			
		||||
#
 | 
			
		||||
DEF ATMEGA16U4-A U 0 40 Y Y 1 F N
 | 
			
		||||
F0 "U" -950 1700 40 H V C CNN
 | 
			
		||||
F1 "ATMEGA16U4-A" 700 -1500 40 H V C CNN
 | 
			
		||||
F2 "TQFP44" 0 0 35 H V C CIN
 | 
			
		||||
F3 "~" 1100 1100 60 H V C CNN
 | 
			
		||||
ALIAS ATMEGA16U4RC-A ATMEGA32U4-A ATMEGA32U4RC-A
 | 
			
		||||
$FPLIST
 | 
			
		||||
 TQFP44
 | 
			
		||||
$ENDFPLIST
 | 
			
		||||
DRAW
 | 
			
		||||
S -1000 1650 950 -1450 0 1 10 f
 | 
			
		||||
X (INT6/AIN0)PE6 1 1100 -650 150 L 40 40 1 1 B
 | 
			
		||||
X UVCC 2 -450 1800 150 D 40 40 1 1 W
 | 
			
		||||
X D- 3 -1150 100 150 R 40 40 1 1 B
 | 
			
		||||
X D+ 4 -1150 200 150 R 40 40 1 1 B
 | 
			
		||||
X UGND 5 -400 -1600 150 U 40 40 1 1 P
 | 
			
		||||
X UCAP 6 -1150 -50 150 R 40 40 1 1 P
 | 
			
		||||
X VBUS 7 -1150 350 150 R 40 40 1 1 P
 | 
			
		||||
X (SS/PCINT0)PB0 8 1100 1550 150 L 40 40 1 1 B
 | 
			
		||||
X (SCLK/PCINT1)PB1 9 1100 1450 150 L 40 40 1 1 B
 | 
			
		||||
X (PDI/MOSI/PCINT2)PB2 10 1100 1350 150 L 40 40 1 1 B
 | 
			
		||||
X (RXD/INT2)PD2 20 1100 150 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC13/OC1B/OC4B/PCINT13)PB6 30 1100 950 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC1)PF1 40 1100 -950 150 L 40 40 1 1 B
 | 
			
		||||
X (PDO/MISO/PCINT3)PB3 11 1100 1250 150 L 40 40 1 1 B
 | 
			
		||||
X (TXD/INT3)PD3 21 1100 50 150 L 40 40 1 1 B
 | 
			
		||||
X (OC3A/~OC4A~)PC6 31 1100 650 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC0)PF0 41 1100 -850 150 L 40 40 1 1 B
 | 
			
		||||
X (OC0A/OC1C/~RTS~/PCINT7)PB7 12 1100 850 150 L 40 40 1 1 B
 | 
			
		||||
X (XCK1/~CTS~)PD5 22 1100 -150 150 L 40 40 1 1 B
 | 
			
		||||
X (ICP3/CLK0/OC4A)PC7 32 1100 550 150 L 40 40 1 1 B
 | 
			
		||||
X AREF 42 -1150 -850 150 R 40 40 1 1 P
 | 
			
		||||
X ~RESET~ 13 -1150 1550 150 R 40 40 1 1 I
 | 
			
		||||
X GND 23 -50 -1600 150 U 40 40 1 1 W
 | 
			
		||||
X (~HWB~)PE2 33 1100 -550 150 L 40 40 1 1 B
 | 
			
		||||
X GND 43 150 -1600 150 U 40 40 1 1 W
 | 
			
		||||
X VCC 14 -200 1800 150 D 40 40 1 1 W
 | 
			
		||||
X AVCC 24 150 1800 150 D 40 40 1 1 W
 | 
			
		||||
X VCC 34 -100 1800 150 D 40 40 1 1 W
 | 
			
		||||
X AVCC 44 250 1800 150 D 40 40 1 1 W
 | 
			
		||||
X GND 15 -150 -1600 150 U 40 40 1 1 W
 | 
			
		||||
X (ICP2/ADC8)PD4 25 1100 -50 150 L 40 40 1 1 B
 | 
			
		||||
X GND 35 50 -1600 150 U 40 40 1 1 W
 | 
			
		||||
X XTAL2 16 -1150 950 150 R 40 40 1 1 O
 | 
			
		||||
X (T1/~OC4D~/ADC9)PD6 26 1100 -250 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC7/TDI)PF7 36 1100 -1350 150 L 40 40 1 1 B
 | 
			
		||||
X XTAL1 17 -1150 1150 150 R 40 40 1 1 I
 | 
			
		||||
X (T0/OC4D/ADC10)PD7 27 1100 -350 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC6/TDO)PF6 37 1100 -1250 150 L 40 40 1 1 B
 | 
			
		||||
X (OC0B/SCL/INT0)PD0 18 1100 350 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC11/PCINT4)PB4 28 1100 1150 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC5/TMS)PF5 38 1100 -1150 150 L 40 40 1 1 B
 | 
			
		||||
X (SDA/INT1)PD1 19 1100 250 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC12/OC1A/~OC4B~/PCINT12)PB5 29 1100 1050 150 L 40 40 1 1 B
 | 
			
		||||
X (ADC4/TCK)PF4 39 1100 -1050 150 L 40 40 1 1 B
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# C
 | 
			
		||||
#
 | 
			
		||||
DEF C C 0 10 N Y 1 F N
 | 
			
		||||
F0 "C" 0 100 40 H V L CNN
 | 
			
		||||
F1 "C" 6 -85 40 H V L CNN
 | 
			
		||||
F2 "~" 38 -150 30 H V C CNN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
$FPLIST
 | 
			
		||||
 SM*
 | 
			
		||||
 C?
 | 
			
		||||
 C1-1
 | 
			
		||||
$ENDFPLIST
 | 
			
		||||
DRAW
 | 
			
		||||
P 2 0 1 20  -80 -30  80 -30 N
 | 
			
		||||
P 2 0 1 20  -80 30  80 30 N
 | 
			
		||||
X ~ 1 0 200 170 D 40 40 1 1 P
 | 
			
		||||
X ~ 2 0 -200 170 U 40 40 1 1 P
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# CONN_7
 | 
			
		||||
#
 | 
			
		||||
DEF CONN_7 P 0 40 Y N 1 F N
 | 
			
		||||
F0 "P" -30 0 60 V V C CNN
 | 
			
		||||
F1 "CONN_7" 70 0 60 V V C CNN
 | 
			
		||||
F2 "~" 0 0 60 H V C CNN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
DRAW
 | 
			
		||||
S -100 350 150 -350 0 1 0 N
 | 
			
		||||
X P1 1 -350 300 250 R 50 50 1 1 P I
 | 
			
		||||
X P2 2 -350 200 250 R 50 50 1 1 P I
 | 
			
		||||
X P3 3 -350 100 250 R 50 50 1 1 P I
 | 
			
		||||
X P4 4 -350 0 250 R 50 50 1 1 P I
 | 
			
		||||
X P5 5 -350 -100 250 R 50 50 1 1 P I
 | 
			
		||||
X P6 6 -350 -200 250 R 50 50 1 1 P I
 | 
			
		||||
X P7 7 -350 -300 250 R 50 50 1 1 P I
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# GND
 | 
			
		||||
#
 | 
			
		||||
DEF ~GND #PWR 0 0 Y Y 1 F P
 | 
			
		||||
F0 "#PWR" 0 0 30 H I C CNN
 | 
			
		||||
F1 "GND" 0 -70 30 H I C CNN
 | 
			
		||||
F2 "~" 0 0 60 H V C CNN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
DRAW
 | 
			
		||||
P 4 0 1 0  -50 0  0 -50  50 0  -50 0 N
 | 
			
		||||
X GND 1 0 0 0 U 30 30 1 1 W N
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# R
 | 
			
		||||
#
 | 
			
		||||
DEF R R 0 0 N Y 1 F N
 | 
			
		||||
F0 "R" 80 0 40 V V C CNN
 | 
			
		||||
F1 "R" 7 1 40 V V C CNN
 | 
			
		||||
F2 "~" -70 0 30 V V C CNN
 | 
			
		||||
F3 "~" 0 0 30 H V C CNN
 | 
			
		||||
$FPLIST
 | 
			
		||||
 R?
 | 
			
		||||
 SM0603
 | 
			
		||||
 SM0805
 | 
			
		||||
 R?-*
 | 
			
		||||
 SM1206
 | 
			
		||||
$ENDFPLIST
 | 
			
		||||
DRAW
 | 
			
		||||
S -40 150 40 -150 0 1 12 N
 | 
			
		||||
X ~ 1 0 250 100 D 60 60 1 1 P
 | 
			
		||||
X ~ 2 0 -250 100 U 60 60 1 1 P
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# USB-MINI-B
 | 
			
		||||
#
 | 
			
		||||
DEF USB-MINI-B CON 0 40 Y Y 1 F N
 | 
			
		||||
F0 "CON" -250 450 60 H V C CNN
 | 
			
		||||
F1 "USB-MINI-B" -50 -500 60 H V C CNN
 | 
			
		||||
F2 "~" 0 0 60 H V C CNN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
$FPLIST
 | 
			
		||||
 USB-Mini-B-Jack
 | 
			
		||||
$ENDFPLIST
 | 
			
		||||
DRAW
 | 
			
		||||
S -350 400 350 -400 0 1 0 N
 | 
			
		||||
X VBUS 1 -550 300 200 R 50 50 1 1 W
 | 
			
		||||
X D- 2 -550 150 200 R 50 50 1 1 B
 | 
			
		||||
X D+ 3 -550 0 200 R 50 50 1 1 B
 | 
			
		||||
X ID 4 -550 -150 200 R 50 50 1 1 B
 | 
			
		||||
X GND 5 -550 -300 200 R 50 50 1 1 W
 | 
			
		||||
X SHELL1 6 550 300 200 L 50 50 1 1 B
 | 
			
		||||
X SHELL2 7 550 150 200 L 50 50 1 1 B
 | 
			
		||||
X SHELL3 8 550 -150 200 L 50 50 1 1 B
 | 
			
		||||
X SHELL4 9 550 -300 200 L 50 50 1 1 B
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
# VCC
 | 
			
		||||
#
 | 
			
		||||
DEF VCC #PWR 0 0 Y Y 1 F P
 | 
			
		||||
F0 "#PWR" 0 100 30 H I C CNN
 | 
			
		||||
F1 "VCC" 0 100 30 H V C CNN
 | 
			
		||||
F2 "~" 0 0 60 H V C CNN
 | 
			
		||||
F3 "~" 0 0 60 H V C CNN
 | 
			
		||||
DRAW
 | 
			
		||||
X VCC 1 0 0 0 U 20 20 0 0 W N
 | 
			
		||||
C 0 50 20 0 1 0 N
 | 
			
		||||
P 3 0 1 0  0 0  0 30  0 30 N
 | 
			
		||||
ENDDRAW
 | 
			
		||||
ENDDEF
 | 
			
		||||
#
 | 
			
		||||
#End Library
 | 
			
		||||
							
								
								
									
										83
									
								
								keyboards/kinesis/docs/kicad/kinesis.pro
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								keyboards/kinesis/docs/kicad/kinesis.pro
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,83 @@
 | 
			
		|||
update=Wednesday, November 05, 2014 'pmt' 12:08:47 pm
 | 
			
		||||
version=1
 | 
			
		||||
last_client=pcbnew
 | 
			
		||||
[cvpcb]
 | 
			
		||||
version=1
 | 
			
		||||
NetIExt=net
 | 
			
		||||
[cvpcb/libraries]
 | 
			
		||||
EquName1=devcms
 | 
			
		||||
[general]
 | 
			
		||||
version=1
 | 
			
		||||
[eeschema]
 | 
			
		||||
version=1
 | 
			
		||||
PageLayoutDescrFile=
 | 
			
		||||
SubpartIdSeparator=0
 | 
			
		||||
SubpartFirstId=65
 | 
			
		||||
LibDir=../../../lib/kicad/library
 | 
			
		||||
NetFmtName=
 | 
			
		||||
RptD_X=0
 | 
			
		||||
RptD_Y=100
 | 
			
		||||
RptLab=1
 | 
			
		||||
LabSize=60
 | 
			
		||||
[eeschema/libraries]
 | 
			
		||||
LibName1=power
 | 
			
		||||
LibName2=device
 | 
			
		||||
LibName3=transistors
 | 
			
		||||
LibName4=conn
 | 
			
		||||
LibName5=linear
 | 
			
		||||
LibName6=regul
 | 
			
		||||
LibName7=74xx
 | 
			
		||||
LibName8=cmos4000
 | 
			
		||||
LibName9=adc-dac
 | 
			
		||||
LibName10=memory
 | 
			
		||||
LibName11=xilinx
 | 
			
		||||
LibName12=special
 | 
			
		||||
LibName13=microcontrollers
 | 
			
		||||
LibName14=dsp
 | 
			
		||||
LibName15=microchip
 | 
			
		||||
LibName16=analog_switches
 | 
			
		||||
LibName17=motorola
 | 
			
		||||
LibName18=texas
 | 
			
		||||
LibName19=intel
 | 
			
		||||
LibName20=audio
 | 
			
		||||
LibName21=interface
 | 
			
		||||
LibName22=digital-audio
 | 
			
		||||
LibName23=philips
 | 
			
		||||
LibName24=display
 | 
			
		||||
LibName25=cypress
 | 
			
		||||
LibName26=siliconi
 | 
			
		||||
LibName27=opto
 | 
			
		||||
LibName28=atmel
 | 
			
		||||
LibName29=contrib
 | 
			
		||||
LibName30=valves
 | 
			
		||||
LibName31=custom
 | 
			
		||||
[pcbnew]
 | 
			
		||||
version=1
 | 
			
		||||
LastNetListRead=
 | 
			
		||||
UseCmpFile=1
 | 
			
		||||
PadDrill=1.016000000000
 | 
			
		||||
PadDrillOvalY=1.016000000000
 | 
			
		||||
PadSizeH=1.524000000000
 | 
			
		||||
PadSizeV=1.524000000000
 | 
			
		||||
PcbTextSizeV=1.500000000000
 | 
			
		||||
PcbTextSizeH=1.500000000000
 | 
			
		||||
PcbTextThickness=0.300000000000
 | 
			
		||||
ModuleTextSizeV=1.000000000000
 | 
			
		||||
ModuleTextSizeH=1.000000000000
 | 
			
		||||
ModuleTextSizeThickness=0.150000000000
 | 
			
		||||
SolderMaskClearance=0.000000000000
 | 
			
		||||
SolderMaskMinWidth=0.000000000000
 | 
			
		||||
DrawSegmentWidth=0.200000000000
 | 
			
		||||
BoardOutlineThickness=0.100000000000
 | 
			
		||||
ModuleOutlineThickness=0.150000000000
 | 
			
		||||
[pcbnew/libraries]
 | 
			
		||||
LibDir=../../../lib/kicad/modules
 | 
			
		||||
LibName1=custom
 | 
			
		||||
LibName2=Sockets
 | 
			
		||||
LibName3=Connect
 | 
			
		||||
LibName4=Discret
 | 
			
		||||
LibName5=Divers
 | 
			
		||||
LibName6=Display
 | 
			
		||||
LibName7=LEDs
 | 
			
		||||
LibName8=SMD_Packages
 | 
			
		||||
LibName9=Sockets_DIP
 | 
			
		||||
							
								
								
									
										634
									
								
								keyboards/kinesis/docs/kicad/kinesis.sch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										634
									
								
								keyboards/kinesis/docs/kicad/kinesis.sch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,634 @@
 | 
			
		|||
EESchema Schematic File Version 2
 | 
			
		||||
LIBS:power
 | 
			
		||||
LIBS:device
 | 
			
		||||
LIBS:transistors
 | 
			
		||||
LIBS:conn
 | 
			
		||||
LIBS:linear
 | 
			
		||||
LIBS:regul
 | 
			
		||||
LIBS:74xx
 | 
			
		||||
LIBS:cmos4000
 | 
			
		||||
LIBS:adc-dac
 | 
			
		||||
LIBS:memory
 | 
			
		||||
LIBS:xilinx
 | 
			
		||||
LIBS:special
 | 
			
		||||
LIBS:microcontrollers
 | 
			
		||||
LIBS:dsp
 | 
			
		||||
LIBS:microchip
 | 
			
		||||
LIBS:analog_switches
 | 
			
		||||
LIBS:motorola
 | 
			
		||||
LIBS:texas
 | 
			
		||||
LIBS:intel
 | 
			
		||||
LIBS:audio
 | 
			
		||||
LIBS:interface
 | 
			
		||||
LIBS:digital-audio
 | 
			
		||||
LIBS:philips
 | 
			
		||||
LIBS:display
 | 
			
		||||
LIBS:cypress
 | 
			
		||||
LIBS:siliconi
 | 
			
		||||
LIBS:opto
 | 
			
		||||
LIBS:atmel
 | 
			
		||||
LIBS:contrib
 | 
			
		||||
LIBS:valves
 | 
			
		||||
LIBS:custom
 | 
			
		||||
LIBS:kinesis-cache
 | 
			
		||||
EELAYER 27 0
 | 
			
		||||
EELAYER END
 | 
			
		||||
$Descr A4 11693 8268
 | 
			
		||||
encoding utf-8
 | 
			
		||||
Sheet 1 1
 | 
			
		||||
Title ""
 | 
			
		||||
Date "13 nov 2014"
 | 
			
		||||
Rev ""
 | 
			
		||||
Comp ""
 | 
			
		||||
Comment1 ""
 | 
			
		||||
Comment2 ""
 | 
			
		||||
Comment3 ""
 | 
			
		||||
Comment4 ""
 | 
			
		||||
$EndDescr
 | 
			
		||||
$Comp
 | 
			
		||||
L C C4
 | 
			
		||||
U 1 1 545804FB
 | 
			
		||||
P 2850 4250
 | 
			
		||||
F 0 "C4" H 2850 4350 40  0000 L CNN
 | 
			
		||||
F 1 "1uF" H 2856 4165 40  0000 L CNN
 | 
			
		||||
F 2 "~" H 2888 4100 30  0000 C CNN
 | 
			
		||||
F 3 "~" H 2850 4250 60  0000 C CNN
 | 
			
		||||
	1    2850 4250
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R3
 | 
			
		||||
U 1 1 545805E8
 | 
			
		||||
P 2500 4000
 | 
			
		||||
F 0 "R3" V 2580 4000 40  0000 C CNN
 | 
			
		||||
F 1 "22" V 2507 4001 40  0000 C CNN
 | 
			
		||||
F 2 "~" V 2430 4000 30  0000 C CNN
 | 
			
		||||
F 3 "~" H 2500 4000 30  0000 C CNN
 | 
			
		||||
	1    2500 4000
 | 
			
		||||
	0    -1   -1   0   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R2
 | 
			
		||||
U 1 1 545805FA
 | 
			
		||||
P 2500 3800
 | 
			
		||||
F 0 "R2" V 2580 3800 40  0000 C CNN
 | 
			
		||||
F 1 "22" V 2507 3801 40  0000 C CNN
 | 
			
		||||
F 2 "~" V 2430 3800 30  0000 C CNN
 | 
			
		||||
F 3 "~" H 2500 3800 30  0000 C CNN
 | 
			
		||||
	1    2500 3800
 | 
			
		||||
	0    -1   -1   0   
 | 
			
		||||
$EndComp
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2450 6550 2550
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2550 6550 2650
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2650 6550 2750
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2750 6550 2850
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2950 6550 3050
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3050 6550 3150
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2850 6550 2950
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3150 6550 3250
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 1800 10750 1800
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 1800 10850 1900
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 1900 10850 2000
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 2000 10850 2100
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 2800 10850 2900
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 2900 10850 3000
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3000 10850 3100
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3100 10850 3200
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3200 10850 3300
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3300 10850 3400
 | 
			
		||||
$Comp
 | 
			
		||||
L AT90S8515-P IC2
 | 
			
		||||
U 1 1 545A62EA
 | 
			
		||||
P 9250 3500
 | 
			
		||||
F 0 "IC2" H 8400 5380 40  0000 L BNN
 | 
			
		||||
F 1 "AT90S8515-P" H 9700 1550 40  0000 L BNN
 | 
			
		||||
F 2 "DIL40" H 9250 3500 30  0000 C CIN
 | 
			
		||||
F 3 "" H 9250 3500 60  0000 C CNN
 | 
			
		||||
	1    9250 3500
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
NoConn ~ 10250 2650
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3650 10850 3750
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3750 10850 3850
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3850 10850 3950
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3950 10850 4050
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 4050 10850 4150
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 4150 10850 4250
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 4350 10850 4450
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 4250 10850 4350
 | 
			
		||||
NoConn ~ 8250 4900
 | 
			
		||||
NoConn ~ 8250 5000
 | 
			
		||||
NoConn ~ 8250 1800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 1900 10750 1900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2000 10750 2000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2100 10750 2100
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2200 10750 2200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2300 10750 2300
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2400 10750 2400
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2500 10750 2500
 | 
			
		||||
Text Label 10350 1800 0    60   ~ 0
 | 
			
		||||
A
 | 
			
		||||
Text Label 10350 1900 0    60   ~ 0
 | 
			
		||||
B
 | 
			
		||||
Text Label 10350 2000 0    60   ~ 0
 | 
			
		||||
C
 | 
			
		||||
Text Label 10350 2100 0    60   ~ 0
 | 
			
		||||
G
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2800 10750 2800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 2900 10750 2900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3000 10750 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3100 10750 3100
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3200 10750 3200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3300 10750 3300
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3400 10750 3400
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3500 10750 3500
 | 
			
		||||
Text Label 10350 2800 0    60   ~ 0
 | 
			
		||||
DL2
 | 
			
		||||
Text Label 10350 2900 0    60   ~ 0
 | 
			
		||||
DR1
 | 
			
		||||
Text Label 10350 3000 0    60   ~ 0
 | 
			
		||||
DR2
 | 
			
		||||
Text Label 10350 3100 0    60   ~ 0
 | 
			
		||||
DL1
 | 
			
		||||
Text Label 10350 3400 0    60   ~ 0
 | 
			
		||||
SCL
 | 
			
		||||
Text Label 10350 3500 0    60   ~ 0
 | 
			
		||||
SDA
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3650 10750 3650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3750 10750 3750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3850 10750 3850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 3950 10750 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4050 10750 4050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4150 10750 4150
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4250 10750 4250
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4350 10750 4350
 | 
			
		||||
Text Label 10350 3650 0    60   ~ 0
 | 
			
		||||
R1
 | 
			
		||||
Text Label 10350 3750 0    60   ~ 0
 | 
			
		||||
R2
 | 
			
		||||
Text Label 10350 3850 0    60   ~ 0
 | 
			
		||||
R3
 | 
			
		||||
Text Label 10350 3950 0    60   ~ 0
 | 
			
		||||
R4
 | 
			
		||||
Text Label 10350 4050 0    60   ~ 0
 | 
			
		||||
R5
 | 
			
		||||
Text Label 10350 4150 0    60   ~ 0
 | 
			
		||||
R6
 | 
			
		||||
Text Label 10350 4250 0    60   ~ 0
 | 
			
		||||
R7
 | 
			
		||||
Text Label 10350 4350 0    60   ~ 0
 | 
			
		||||
R8
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4500 10750 4500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4600 10750 4600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4700 10750 4700
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4800 10750 4800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 4900 10750 4900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 5000 10750 5000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 5100 10750 5100
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	10250 5200 10750 5200
 | 
			
		||||
Text Label 10350 4600 0    60   ~ 0
 | 
			
		||||
FS1
 | 
			
		||||
Text Label 10350 5000 0    60   ~ 0
 | 
			
		||||
FS3
 | 
			
		||||
Text Label 10350 5200 0    60   ~ 0
 | 
			
		||||
FS2
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR01
 | 
			
		||||
U 1 1 545A7377
 | 
			
		||||
P 9250 5600
 | 
			
		||||
F 0 "#PWR01" H 9250 5600 30  0001 C CNN
 | 
			
		||||
F 1 "GND" H 9250 5530 30  0001 C CNN
 | 
			
		||||
F 2 "" H 9250 5600 60  0000 C CNN
 | 
			
		||||
F 3 "" H 9250 5600 60  0000 C CNN
 | 
			
		||||
	1    9250 5600
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	9250 5500 9250 5600
 | 
			
		||||
Text Label 10350 4700 0    60   ~ 0
 | 
			
		||||
CLOCK
 | 
			
		||||
Text Label 10350 4800 0    60   ~ 0
 | 
			
		||||
DATA
 | 
			
		||||
NoConn ~ 10750 4700
 | 
			
		||||
NoConn ~ 10750 4800
 | 
			
		||||
Text Label 10350 3200 0    60   ~ 0
 | 
			
		||||
KP
 | 
			
		||||
Text Label 10350 3300 0    60   ~ 0
 | 
			
		||||
PGM
 | 
			
		||||
Text Label 10350 2500 0    60   ~ 0
 | 
			
		||||
BUZZ
 | 
			
		||||
NoConn ~ 8250 2300
 | 
			
		||||
NoConn ~ 8250 2700
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR02
 | 
			
		||||
U 1 1 545A7565
 | 
			
		||||
P 4750 5700
 | 
			
		||||
F 0 "#PWR02" H 4750 5700 30  0001 C CNN
 | 
			
		||||
F 1 "GND" H 4750 5630 30  0001 C CNN
 | 
			
		||||
F 2 "" H 4750 5700 60  0000 C CNN
 | 
			
		||||
F 3 "" H 4750 5700 60  0000 C CNN
 | 
			
		||||
	1    4750 5700
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3650 6550 3750
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3750 6550 3850
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 4150 6550 4250
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 4250 6550 4350
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 4050 6550 4150
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 4350 6550 4450
 | 
			
		||||
NoConn ~ 3750 2850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 2000 6450 2000
 | 
			
		||||
NoConn ~ 3750 3050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2750 3800 3750 3800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2750 3900 3750 3900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2750 3900 2750 4000
 | 
			
		||||
Wire Bus Line
 | 
			
		||||
	6550 2100 6550 6050
 | 
			
		||||
Wire Bus Line
 | 
			
		||||
	10850 1600 10850 6050
 | 
			
		||||
Text Label 6050 4350 0    60   ~ 0
 | 
			
		||||
DL1
 | 
			
		||||
Text Label 6050 4250 0    60   ~ 0
 | 
			
		||||
DR2
 | 
			
		||||
Text Label 6050 4150 0    60   ~ 0
 | 
			
		||||
DR1
 | 
			
		||||
Text Label 6050 4050 0    60   ~ 0
 | 
			
		||||
DL2
 | 
			
		||||
Text Label 6050 2450 0    60   ~ 0
 | 
			
		||||
R1
 | 
			
		||||
Text Label 6050 2550 0    60   ~ 0
 | 
			
		||||
R2
 | 
			
		||||
Text Label 6050 2650 0    60   ~ 0
 | 
			
		||||
R3
 | 
			
		||||
Text Label 6050 2750 0    60   ~ 0
 | 
			
		||||
R4
 | 
			
		||||
Text Label 6050 2850 0    60   ~ 0
 | 
			
		||||
R5
 | 
			
		||||
Text Label 6050 2950 0    60   ~ 0
 | 
			
		||||
R6
 | 
			
		||||
Text Label 6050 3050 0    60   ~ 0
 | 
			
		||||
R7
 | 
			
		||||
Text Label 6050 3150 0    60   ~ 0
 | 
			
		||||
R8
 | 
			
		||||
Text Label 6050 5050 0    60   ~ 0
 | 
			
		||||
A
 | 
			
		||||
Text Label 6050 5150 0    60   ~ 0
 | 
			
		||||
B
 | 
			
		||||
Text Label 6050 5250 0    60   ~ 0
 | 
			
		||||
C
 | 
			
		||||
Text Label 6050 5350 0    60   ~ 0
 | 
			
		||||
G
 | 
			
		||||
Text Label 1300 3800 0    60   ~ 0
 | 
			
		||||
D+
 | 
			
		||||
Text Label 1300 4000 0    60   ~ 0
 | 
			
		||||
D-
 | 
			
		||||
NoConn ~ 10750 2200
 | 
			
		||||
NoConn ~ 10750 2300
 | 
			
		||||
NoConn ~ 10750 2400
 | 
			
		||||
Text Label 10350 4500 0    60   ~ 0
 | 
			
		||||
GND
 | 
			
		||||
NoConn ~ 10750 4900
 | 
			
		||||
NoConn ~ 10750 5100
 | 
			
		||||
Text Label 6050 3450 0    60   ~ 0
 | 
			
		||||
KP
 | 
			
		||||
Text Label 6050 3350 0    60   ~ 0
 | 
			
		||||
PGM
 | 
			
		||||
$Comp
 | 
			
		||||
L ATMEGA32U4-A U1
 | 
			
		||||
U 1 1 5462E0B1
 | 
			
		||||
P 4900 4000
 | 
			
		||||
F 0 "U1" H 3950 5700 40  0000 C CNN
 | 
			
		||||
F 1 "ATMEGA32U4-A" H 5600 2500 40  0000 C CNN
 | 
			
		||||
F 2 "TQFP44" H 4900 4000 35  0000 C CIN
 | 
			
		||||
F 3 "" H 6000 5100 60  0000 C CNN
 | 
			
		||||
	1    4900 4000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3750 4850 3750 5600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4450 2200 5150 2200
 | 
			
		||||
Connection ~ 4700 2200
 | 
			
		||||
Connection ~ 4800 2200
 | 
			
		||||
Connection ~ 5050 2200
 | 
			
		||||
Connection ~ 4800 2000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2450 6450 2450
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2550 6450 2550
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2650 6450 2650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2750 6450 2750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2850 6450 2850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 2950 6450 2950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3050 6450 3050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3150 6450 3150
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 5050 6450 5050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 5150 6450 5150
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 5250 6450 5250
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4050 6450 4050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4150 6450 4150
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4250 6450 4250
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4350 6450 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4550 6450 4550
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3350 6550 3450
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 3450 6550 3550
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 5050 6550 5150
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 5150 6550 5250
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 5250 6550 5350
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 5350 6550 5450
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 4650 6550 4750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3350 6450 3350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3450 6450 3450
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 5600 6450 5600
 | 
			
		||||
Connection ~ 4950 5600
 | 
			
		||||
Connection ~ 4850 5600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4750 5600 4750 5700
 | 
			
		||||
Connection ~ 4750 5600
 | 
			
		||||
Connection ~ 4500 5600
 | 
			
		||||
Text Label 6050 4550 0    60   ~ 0
 | 
			
		||||
HWB
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 5350 6450 5350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3650 6450 3650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3750 6450 3750
 | 
			
		||||
Text Label 6050 3650 0    60   ~ 0
 | 
			
		||||
SCL
 | 
			
		||||
Text Label 6050 3750 0    60   ~ 0
 | 
			
		||||
SDA
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3850 6450 3850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 3950 6450 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4650 6450 4650
 | 
			
		||||
Text Label 6050 4650 0    60   ~ 0
 | 
			
		||||
BUZZ
 | 
			
		||||
NoConn ~ 10750 4600
 | 
			
		||||
NoConn ~ 10750 5000
 | 
			
		||||
NoConn ~ 10750 5200
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3400 10850 3500
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 3500 10850 3600
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 4500 10850 4600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2850 4050 3750 4050
 | 
			
		||||
Text Label 2950 4050 0    60   ~ 0
 | 
			
		||||
UCAP
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4850 6450 4850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6000 4950 6450 4950
 | 
			
		||||
NoConn ~ 6450 4850
 | 
			
		||||
NoConn ~ 6450 4950
 | 
			
		||||
NoConn ~ 6450 4550
 | 
			
		||||
$Comp
 | 
			
		||||
L USB-MINI-B CON1
 | 
			
		||||
U 1 1 546431C1
 | 
			
		||||
P 2100 5050
 | 
			
		||||
F 0 "CON1" H 1850 5500 60  0000 C CNN
 | 
			
		||||
F 1 "USB-MINI-B" H 2050 4550 60  0000 C CNN
 | 
			
		||||
F 2 "" H 2100 5050 60  0000 C CNN
 | 
			
		||||
F 3 "" H 2100 5050 60  0000 C CNN
 | 
			
		||||
	1    2100 5050
 | 
			
		||||
	0    1    1    0   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR03
 | 
			
		||||
U 1 1 54643698
 | 
			
		||||
P 2400 4400
 | 
			
		||||
F 0 "#PWR03" H 2400 4500 30  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 2400 4500 30  0000 C CNN
 | 
			
		||||
F 2 "" H 2400 4400 60  0000 C CNN
 | 
			
		||||
F 3 "" H 2400 4400 60  0000 C CNN
 | 
			
		||||
	1    2400 4400
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Text Notes 2600 2750 0    60   ~ 0
 | 
			
		||||
Teensy 2.0\n(not fully drawn)
 | 
			
		||||
$Comp
 | 
			
		||||
L CONN_7 B7K-PH-K-S1
 | 
			
		||||
U 1 1 54643939
 | 
			
		||||
P 1950 6900
 | 
			
		||||
F 0 "B7K-PH-K-S1" V 1920 6900 60  0000 C CNN
 | 
			
		||||
F 1 "CONN_7" V 2020 6900 60  0000 C CNN
 | 
			
		||||
F 2 "" H 1950 6900 60  0000 C CNN
 | 
			
		||||
F 3 "" H 1950 6900 60  0000 C CNN
 | 
			
		||||
	1    1950 6900
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Connection ~ 3750 5600
 | 
			
		||||
Connection ~ 2400 5600
 | 
			
		||||
Connection ~ 2250 5600
 | 
			
		||||
Connection ~ 1950 5600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2400 4400 2400 4500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2250 4000 2250 4500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 3800 2250 3800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2100 3800 2100 4500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2850 4450 2850 5600
 | 
			
		||||
Connection ~ 2850 5600
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 6800 1200 6900
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 6900 1200 7000
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 7000 1200 7100
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 6700 1200 6800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 6600 1600 6600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 6700 1600 6700
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 6800 1600 6800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 6900 1600 6900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 7000 1600 7000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 7100 1600 7100
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 7200 1600 7200
 | 
			
		||||
Text Label 1300 6600 0    60   ~ 0
 | 
			
		||||
FS2
 | 
			
		||||
Text Label 1300 6700 0    60   ~ 0
 | 
			
		||||
FS1
 | 
			
		||||
Text Label 1300 6800 0    60   ~ 0
 | 
			
		||||
VCC
 | 
			
		||||
Text Label 1300 6900 0    60   ~ 0
 | 
			
		||||
D-
 | 
			
		||||
Text Label 1300 7000 0    60   ~ 0
 | 
			
		||||
D+
 | 
			
		||||
Text Label 1300 7100 0    60   ~ 0
 | 
			
		||||
GND
 | 
			
		||||
Text Label 1300 7200 0    60   ~ 0
 | 
			
		||||
FS3
 | 
			
		||||
NoConn ~ 3750 2450
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3600 2000 3600 3650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3600 3650 3750 3650
 | 
			
		||||
NoConn ~ 1950 4500
 | 
			
		||||
Wire Bus Line
 | 
			
		||||
	1100 1900 1100 7100
 | 
			
		||||
NoConn ~ 1200 6600
 | 
			
		||||
NoConn ~ 1200 6700
 | 
			
		||||
NoConn ~ 1200 7200
 | 
			
		||||
Connection ~ 2100 3800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1200 4000 2250 4000
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 3700 1200 3800
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 3900 1200 4000
 | 
			
		||||
Text Label 10350 1500 0    60   ~ 0
 | 
			
		||||
VCC
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 1900 1200 2000
 | 
			
		||||
Text Label 1250 2000 0    60   ~ 0
 | 
			
		||||
VCC
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	1100 5500 1200 5600
 | 
			
		||||
Connection ~ 1800 5600
 | 
			
		||||
Text Label 1300 5600 0    60   ~ 0
 | 
			
		||||
GND
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	9250 5500 10750 5500
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 5500 10850 5600
 | 
			
		||||
Text Label 10350 5500 0    60   ~ 0
 | 
			
		||||
GND
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	9250 1500 10750 1500
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 1500 10850 1600
 | 
			
		||||
Connection ~ 3600 2000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4800 2000 4800 2200
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 2000 6550 2100
 | 
			
		||||
Text Label 6050 2000 0    60   ~ 0
 | 
			
		||||
VCC
 | 
			
		||||
Connection ~ 5050 5600
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	6450 5600 6550 5700
 | 
			
		||||
Text Label 6050 5600 0    60   ~ 0
 | 
			
		||||
GND
 | 
			
		||||
NoConn ~ 6450 3850
 | 
			
		||||
NoConn ~ 6450 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1800 4500 1500 4500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	1500 4500 1500 5600
 | 
			
		||||
Connection ~ 1500 5600
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 2500 10850 2600
 | 
			
		||||
Entry Wire Line
 | 
			
		||||
	10750 2100 10850 2200
 | 
			
		||||
Text Notes 1000 5300 1    60   ~ 0
 | 
			
		||||
Sacrificial USB cable from header to Teensy
 | 
			
		||||
Text Notes 7850 5950 0    60   ~ 0
 | 
			
		||||
Ribbon cable between Teensy pins and socket
 | 
			
		||||
Wire Bus Line
 | 
			
		||||
	10850 6050 6550 6050
 | 
			
		||||
$EndSCHEMATC
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050573.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050573.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 174 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050574.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050574.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 336 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050575.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/photos/P1050575.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 260 KiB  | 
							
								
								
									
										52
									
								
								keyboards/kinesis/docs/readme.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								keyboards/kinesis/docs/readme.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
This directory of documentation  was copied from https://github.com/wjanssens/tmk_keyboard/tree/master/keyboard/kinesis
 | 
			
		||||
and is probably Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
 | 
			
		||||
and probably released under GPL v2, which may be recovered at <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
Row configuration
 | 
			
		||||
PF0	A
 | 
			
		||||
PF1	B
 | 
			
		||||
PF2	C
 | 
			
		||||
PF3	G	0 = U4, 1 = U5
 | 
			
		||||
 | 
			
		||||
Column configuration
 | 
			
		||||
			4y0	4y1	4y2	4y3	4y4	4y5	4y6	4y7	5y0	5y1	5y2	5y3	5y4	5y5	5y6	5y7	
 | 
			
		||||
			r1	r2	 r3 r4	r5	r6	r7	r8	r9	r10	r11	r12	r13	r14	r15	r16	
 | 
			
		||||
PB0	21	c1	f6	f8	f7	5	4	3	2	1	=+								
 | 
			
		||||
PB1	22	c2	f3	f5	f4	t	r	e	w	q	TAB								
 | 
			
		||||
PB2	23	c3	ESC	f2	f1	g	f	d	s	a	CL								
 | 
			
		||||
PB3	24	c4	f9	f11	f10	b	v	c	x	z	LS	UP		DN		[{	]}		
 | 
			
		||||
PB4	25	c5  	f12	SL	PS	RT		LT	§±	`~		6	7	8		9	0	-_ 	
 | 
			
		||||
PB5	26	c6	PB	PGM	KPD							y	u	i		o	p	\	
 | 
			
		||||
PB6	27	c7  			LC	DL	BS	RC	EN	SP	h	j	k		l	;:	'"	
 | 
			
		||||
PB7	28	c8					RA		PU		PD	n	m	,<		.>	/?	RS	
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
40 pin connector
 | 
			
		||||
 | 
			
		||||
   DL2	1	40	VCC
 | 
			
		||||
   DR1	2	39	A
 | 
			
		||||
   DR2	3	38	B
 | 
			
		||||
   DL1	4	37	C
 | 
			
		||||
   KPD	5	36	G
 | 
			
		||||
   PGM	6	35
 | 
			
		||||
   SCL	7	34
 | 
			
		||||
   SDA	8	33
 | 
			
		||||
   RST	9	32	BUZZ
 | 
			
		||||
    WP	10	31	EA
 | 
			
		||||
   FS1	11	30	ALE
 | 
			
		||||
 CLOCK	12	29	PSEN
 | 
			
		||||
  DATA	13	28	r8
 | 
			
		||||
	14	27	r7
 | 
			
		||||
   FS3	15	26	r6
 | 
			
		||||
	16	25	r5
 | 
			
		||||
   FS2	17	24	r4
 | 
			
		||||
 XTAL1	18	23	r3
 | 
			
		||||
 XTAL2	19	22	r2
 | 
			
		||||
   GND	20	21	r1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
references:
 | 
			
		||||
https://github.com/chrisandreae/keyboard-firmware
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/schematic.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/kinesis/docs/schematic.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 171 KiB  | 
							
								
								
									
										21
									
								
								keyboards/kinesis/keymaps/default/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/kinesis/keymaps/default/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# 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 = yes       # Mouse keys(+4700)
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug(+400)
 | 
			
		||||
COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE = yes           # 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
 | 
			
		||||
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.  Do not enable this with audio at the same time.
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
 | 
			
		||||
ifndef QUANTUM_DIR
 | 
			
		||||
	include ../../../../Makefile
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										8
									
								
								keyboards/kinesis/keymaps/default/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								keyboards/kinesis/keymaps/default/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										116
									
								
								keyboards/kinesis/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								keyboards/kinesis/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,116 @@
 | 
			
		|||
#include "kinesis.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
#define QWERTY 0 // Base qerty
 | 
			
		||||
#define SYMB 1// Symbol layer
 | 
			
		||||
 | 
			
		||||
// An almost entirely blank keymap. Test layers with the upper right hand key - 1 in normal mode, reset in layer 2. 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/****************************************************************************************************
 | 
			
		||||
*
 | 
			
		||||
* Keymap: Default Layer in Qwerty
 | 
			
		||||
*
 | 
			
		||||
* ,-------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
* | Esc    |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F8  |  F9  |  F10 |  F12 | PSCR | SLCK | PAUS |  FN0 |  BOOT  |
 | 
			
		||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
 | 
			
		||||
* | =+     |  1!  |  2@  |  3#  |  4$  |  5%  |                           |  6^  |  7&  |  8*  |  9(  |  0)  | -_     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
 | 
			
		||||
* | Tab    |   Q  |   W  |   E  |   R  |   T  |                           |   Y  |   U  |   I  |   O  |   P  | \|     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* | Caps   |   A  |   S  |   D  |   F  |   G  |                           |   H  |   J  |   K  |   L  |  ;:  | '"     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* | Shift  |   Z  |   X  |   C  |   V  |   B  |                           |   N  |   M  |  ,.  |  .>  |  /?  | Shift  |
 | 
			
		||||
* `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
 | 
			
		||||
*          | `~   | INS  | Left | Right|                                         | Up   | Down |  [{  |  ]}  |
 | 
			
		||||
*          `---------------------------'                                         `---------------------------'
 | 
			
		||||
*                                        ,-------------.         ,-------------.
 | 
			
		||||
*                                        | Ctrl | Alt  |         | Gui  | Ctrl |
 | 
			
		||||
*                                 ,------|------|------|         |------+------+------.
 | 
			
		||||
*                                 |      |      | Home |         | PgUp |      |      |
 | 
			
		||||
*                                 | BkSp | Del  |------|         |------|Return| Space|
 | 
			
		||||
*                                 |      |      | End  |         | PgDn |      |      |
 | 
			
		||||
*                                 `--------------------'         `--------------------'
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
[QWERTY] = KEYMAP(
 | 
			
		||||
           KC_ESC, KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,KC_F6  ,KC_F7  ,KC_F8,
 | 
			
		||||
           KC_EQL, KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,
 | 
			
		||||
           KC_TAB, KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,
 | 
			
		||||
           KC_CAPS,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,
 | 
			
		||||
           KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,
 | 
			
		||||
                   KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT,
 | 
			
		||||
			   KC_LCTL,KC_LALT,
 | 
			
		||||
                                    KC_HOME,
 | 
			
		||||
                           KC_BSPC,KC_DEL ,KC_END ,
 | 
			
		||||
        KC_F9  ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SLCK  ,KC_PAUS, KC_FN0, KC_1,
 | 
			
		||||
	KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_MINS,
 | 
			
		||||
	KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_BSLS,
 | 
			
		||||
	KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,
 | 
			
		||||
	KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
 | 
			
		||||
		KC_UP  ,KC_DOWN,KC_LBRC,KC_RBRC,
 | 
			
		||||
           KC_RGUI,KC_RCTL,
 | 
			
		||||
           KC_PGUP,
 | 
			
		||||
           KC_PGDN,KC_ENTER ,KC_SPC
 | 
			
		||||
    ),
 | 
			
		||||
[SYMB] = KEYMAP( 
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 	   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	                     KC_TRNS,  KC_TRNS,
 | 
			
		||||
				       KC_TRNS,
 | 
			
		||||
		    KC_TRNS, KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_FN0, RESET,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 	   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,
 | 
			
		||||
	 KC_TRNS,
 | 
			
		||||
	 KC_TRNS,  KC_TRNS,  KC_TRNS
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
   [0] = ACTION_LAYER_TAP_TOGGLE(SYMB) ,               // FN1 - Momentary Layer 1 (Symbols)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/kinesis/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/kinesis/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
# The default keymap for kinesis-advantage
 | 
			
		||||
							
								
								
									
										21
									
								
								keyboards/kinesis/keymaps/programmer/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/kinesis/keymaps/programmer/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# 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 = yes       # Mouse keys(+4700)
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug(+400)
 | 
			
		||||
COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE = yes           # 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
 | 
			
		||||
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.  Do not enable this with audio at the same time.
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
 | 
			
		||||
ifndef QUANTUM_DIR
 | 
			
		||||
	include ../../../../Makefile
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										8
									
								
								keyboards/kinesis/keymaps/programmer/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								keyboards/kinesis/keymaps/programmer/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										245
									
								
								keyboards/kinesis/keymaps/programmer/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										245
									
								
								keyboards/kinesis/keymaps/programmer/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,245 @@
 | 
			
		|||
#include "kinesis.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "mousekey.h"
 | 
			
		||||
 | 
			
		||||
#define QWERTY 0 // Base qerty
 | 
			
		||||
#define SYMB 1// Symbol layer
 | 
			
		||||
#define MOUSE 2//
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Macros */
 | 
			
		||||
enum {
 | 
			
		||||
  NONE = 0,
 | 
			
		||||
  // Diagonal mouse movement
 | 
			
		||||
  A_MUL,
 | 
			
		||||
  A_MUR,
 | 
			
		||||
  A_MDL,
 | 
			
		||||
  A_MDR,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Borrowing very heavily from 
 | 
			
		||||
// https://github.com/alvicstep/tmk_keyboard 
 | 
			
		||||
/****************************************************************************************************
 | 
			
		||||
*
 | 
			
		||||
* Keymap: Default Layer in Qwerty
 | 
			
		||||
*
 | 
			
		||||
* ,-------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
* | Esc    |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F8  |  F9  |  F10 |  F12 |  FN0 |  FN1 |  FN2 |      |  bOOT  |
 | 
			
		||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
 | 
			
		||||
* | =+     |  1!  |  2@  |  3#  |  4$  |  5%  |                           |  6^  |  7&  |  8*  |  9(  |  0)  | -_     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
 | 
			
		||||
* | Tab    |   Q  |   W  |   E  |   R  |   T  |                           |   Y  |   U  |   I  |   O  |   P  | \|     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* |MouseFN1|   A  |   S  |   D  |   F  |   G  |                           |   H  |   J  |   K  |   L  |  ;:  | '"     |
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* | Shift  |   Z  |   X  |   C  |   V  |   B  |                           |   N  |   M  |  ,.  |  .>  |  /?  | Shift  |
 | 
			
		||||
* `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
 | 
			
		||||
*          | `~   | ESC  |MOUSE1|MOUSE2|                                         | [{   |  ]}  | ESC  | GUI  |
 | 
			
		||||
*          `---------------------------'                                         `---------------------------'
 | 
			
		||||
*                                        ,-------------.         ,-------------.
 | 
			
		||||
*                                        | Ctrl | Alt  |         | Gui  | Ctrl |
 | 
			
		||||
*                                 ,------|------|------|         |------+------+------.
 | 
			
		||||
*                                 |      |      | Home |         | PgUp |      |      |
 | 
			
		||||
*                                 | BkSp | Del  |------|         |------|Return| Space|
 | 
			
		||||
*                                 |      |      | End  |         | PgDn |      |      |
 | 
			
		||||
*                                 `--------------------'         `--------------------'
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
[QWERTY] = KEYMAP(
 | 
			
		||||
           KC_ESC, KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,KC_F6  ,KC_F7  ,KC_F8,
 | 
			
		||||
           KC_EQL, KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,
 | 
			
		||||
           KC_TAB, KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,
 | 
			
		||||
           KC_FN1 ,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,
 | 
			
		||||
           KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,
 | 
			
		||||
		KC_GRV  ,KC_ESC,  KC_BTN1,KC_BTN2,
 | 
			
		||||
			   KC_LCTL,KC_LALT,
 | 
			
		||||
			   KC_HOME,
 | 
			
		||||
                           KC_BSPC,KC_DEL ,KC_FN0 ,
 | 
			
		||||
        KC_F9  ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1  ,KC_FN2, KC_NO, RESET,
 | 
			
		||||
	KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_MINS,
 | 
			
		||||
	KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_BSLS,
 | 
			
		||||
	KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,
 | 
			
		||||
	KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
 | 
			
		||||
		KC_LBRC,KC_RBRC, KC_ESC, KC_RGUI,
 | 
			
		||||
           KC_RGUI,KC_RCTL,
 | 
			
		||||
           KC_PGUP,
 | 
			
		||||
           KC_PGDN,KC_ENTER ,KC_SPC
 | 
			
		||||
    ),
 | 
			
		||||
[SYMB] = KEYMAP( 
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
                   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
                             KC_TRNS,  KC_TRNS,
 | 
			
		||||
                                       KC_TRNS,
 | 
			
		||||
                    KC_TRNS, KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_FN0, KC_2,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
                   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
/* Keymap: Movement and function layer
 | 
			
		||||
*
 | 
			
		||||
* ,-------------------------------------------------------------------------------------------------------------------.
 | 
			
		||||
* | Caps   |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F8  |  F9  |  F10 |  F12 |  FN0 |  FN1 |  FN2 |  Tada |  bOOT  |
 | 
			
		||||
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
 | 
			
		||||
* | =+     |  !   |   @  |   #  |   $  |   %  |                           |  ^   |   &  |   *  |  (   |   )  |MS Fast |
 | 
			
		||||
* |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
 | 
			
		||||
* | Tab    |      |      | Up   |      |PgUp  |                           | MwU  |MS_UL | MS_U |MS_UR |      | Ms Norm| 
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* |MouseFN1| C^A  | Left | Down |Right | C^E  |                           |      | MS_L |Mouse1| MS_R |      |MS Slow |
 | 
			
		||||
* |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
 | 
			
		||||
* |        | GuiZ | GUI X| GUI C| GUI_V|PgDown|                           | MWD  | MDown|MS Dwn|MS_DR  |  ?  |        |
 | 
			
		||||
* `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
 | 
			
		||||
*          | `~   | ESC  |   <  |   >  |                                         |  {   |   }  | ESC  |      |
 | 
			
		||||
*          `---------------------------'                                         `---------------------------'
 | 
			
		||||
*                                        ,-------------.         ,-------------.
 | 
			
		||||
*                                        | Ctrl | Alt  |         | Gui  | Ctrl |
 | 
			
		||||
*                                 ,------|------|------|         |------+------+------.
 | 
			
		||||
*                                 |      |      | Home |         | PgUp |      |      |
 | 
			
		||||
*                                 | BkSp | Del  |------|         |------|Mouse1|Mouse2|
 | 
			
		||||
*                                 |      |      | End  |         | PgDn |LClick|Rclick|
 | 
			
		||||
*                                 `--------------------'         `--------------------'
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[MOUSE] = KEYMAP(
 | 
			
		||||
         KC_CAPS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_EXLM  ,KC_AT,    KC_HASH,  KC_DLR   ,KC_PERC   ,
 | 
			
		||||
         KC_TRNS,  KC_NO,    KC_NO,    KC_UP,    KC_NO,    KC_PGUP,
 | 
			
		||||
         KC_FN1,  LCTL(KC_A),KC_LEFT,  KC_DOWN,  KC_RIGHT, LCTL(KC_E),
 | 
			
		||||
         KC_TRNS, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V),KC_PGDN,
 | 
			
		||||
                   KC_TRNS,  KC_TRNS,  KC_LABK,  KC_RABK,
 | 
			
		||||
                             KC_TRNS,  KC_TRNS,
 | 
			
		||||
                                       KC_TRNS,
 | 
			
		||||
                    KC_TRNS, KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, KC_FN0,RESET, 
 | 
			
		||||
         KC_CIRC,  KC_AMPR,  KC_ASTR,  KC_LPRN,  KC_RPRN,  KC_ACL2,  
 | 
			
		||||
         KC_WH_U,  M(A_MUL), KC_MS_U,  M(A_MUR), KC_NO,  KC_ACL1,
 | 
			
		||||
         KC_NO,    KC_MS_L,  KC_MS_D,  KC_MS_R,  KC_NO,  KC_ACL0,
 | 
			
		||||
         KC_WH_D,  M(A_MDL), KC_MS_D,  M(A_MDR), KC_TRNS, KC_TRNS,
 | 
			
		||||
                   KC_LCBR,  KC_RCBR,  KC_ESC,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_TRNS,
 | 
			
		||||
         KC_TRNS,
 | 
			
		||||
         KC_TRNS,  KC_BTN1,  KC_BTN2
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
   [0] = ACTION_LAYER_TAP_TOGGLE(MOUSE) ,               // FN1 - Momentary Layer 1 (Symbols)
 | 
			
		||||
   [1] = ACTION_LAYER_TOGGLE(MOUSE) ,               // FN1 - Momentary Layer 1 (Symbols)
 | 
			
		||||
   [2] = ACTION_LAYER_TAP_TOGGLE(SYMB) ,               // FN1 - Momentary Layer 1 (Symbols)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
	// from  algernon's ErgoDox EZ layout, 
 | 
			
		||||
       case A_MUL:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          mousekey_on(KC_MS_UP);
 | 
			
		||||
          mousekey_on(KC_MS_LEFT);
 | 
			
		||||
        } else {
 | 
			
		||||
          mousekey_off(KC_MS_UP);
 | 
			
		||||
          mousekey_off(KC_MS_LEFT);
 | 
			
		||||
        }
 | 
			
		||||
        mousekey_send();
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case A_MUR:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          mousekey_on(KC_MS_UP);
 | 
			
		||||
          mousekey_on(KC_MS_RIGHT);
 | 
			
		||||
        } else {
 | 
			
		||||
          mousekey_off(KC_MS_UP);
 | 
			
		||||
          mousekey_off(KC_MS_RIGHT);
 | 
			
		||||
        }
 | 
			
		||||
        mousekey_send();
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case A_MDL:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          mousekey_on(KC_MS_DOWN);
 | 
			
		||||
          mousekey_on(KC_MS_LEFT);
 | 
			
		||||
        } else {
 | 
			
		||||
          mousekey_off(KC_MS_DOWN);
 | 
			
		||||
          mousekey_off(KC_MS_LEFT);
 | 
			
		||||
        }
 | 
			
		||||
        mousekey_send();
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case A_MDR:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
          mousekey_on(KC_MS_DOWN);
 | 
			
		||||
          mousekey_on(KC_MS_RIGHT);
 | 
			
		||||
        } else {
 | 
			
		||||
          mousekey_off(KC_MS_DOWN);
 | 
			
		||||
          mousekey_off(KC_MS_RIGHT);
 | 
			
		||||
        }
 | 
			
		||||
        mousekey_send();
 | 
			
		||||
        break;
 | 
			
		||||
     } 
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
 int8_t layer = biton32(layer_state);
 | 
			
		||||
 | 
			
		||||
        switch (layer) {
 | 
			
		||||
        case 1:
 | 
			
		||||
                all_led_off();
 | 
			
		||||
                break;
 | 
			
		||||
        case 2:
 | 
			
		||||
                if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) {
 | 
			
		||||
                        all_led_off();
 | 
			
		||||
                        caps_lock_led_on();
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
        case 0:
 | 
			
		||||
                all_led_off();
 | 
			
		||||
                num_lock_led_on();
 | 
			
		||||
                break;
 | 
			
		||||
        default:
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_user(uint8_t usb_led) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/kinesis/keymaps/programmer/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/kinesis/keymaps/programmer/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
# a programmer friendly keymap for the kinesis-advantage
 | 
			
		||||
# not really baked yet. 
 | 
			
		||||
							
								
								
									
										106
									
								
								keyboards/kinesis/kinesis.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								keyboards/kinesis/kinesis.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,106 @@
 | 
			
		|||
#include "kinesis.h"
 | 
			
		||||
 | 
			
		||||
// begin section origin  https://github.com/alvicstep/tmk_keyboard 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void all_led_off(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b11111111;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void all_led_on(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b00000000;
 | 
			
		||||
}
 | 
			
		||||
void num_lock_led_on(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b11101111;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void caps_lock_led_on(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b01111111;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void scroll_lock_led_on(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b11011111;
 | 
			
		||||
}
 | 
			
		||||
void keypad_led_on(void)
 | 
			
		||||
{
 | 
			
		||||
        PORTD = 0b10111111;
 | 
			
		||||
}
 | 
			
		||||
void blink_all_leds(void)
 | 
			
		||||
{
 | 
			
		||||
        all_led_on();
 | 
			
		||||
        _delay_ms(500);
 | 
			
		||||
 | 
			
		||||
        all_led_off();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        caps_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
	 num_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        scroll_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
         keypad_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        //back
 | 
			
		||||
 | 
			
		||||
        scroll_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        num_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        caps_lock_led_on();
 | 
			
		||||
        _delay_ms(100);
 | 
			
		||||
 | 
			
		||||
        all_led_off();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// End section origin  https://github.com/alvicstep/tmk_keyboard 
 | 
			
		||||
 | 
			
		||||
 void matrix_init_kb(void) {
 | 
			
		||||
	  blink_all_leds();
 | 
			
		||||
	  matrix_init_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void matrix_scan_kb(void) {
 | 
			
		||||
	// put your looping keyboard code here
 | 
			
		||||
	// runs every cycle (a lot)
 | 
			
		||||
	
 | 
			
		||||
	matrix_scan_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	// put your per-action keyboard code here
 | 
			
		||||
	// runs for every action, just before processing by the firmware
 | 
			
		||||
 | 
			
		||||
	return process_record_user(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_kb(uint8_t usb_led) {
 | 
			
		||||
	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
 | 
			
		||||
 | 
			
		||||
//Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
 | 
			
		||||
   uint8_t leds = 0xF0;
 | 
			
		||||
    if (usb_led & 1 << USB_LED_NUM_LOCK)
 | 
			
		||||
        leds &= ~0x10;
 | 
			
		||||
    if (usb_led & 1 << USB_LED_CAPS_LOCK)
 | 
			
		||||
        leds &= ~0x80;
 | 
			
		||||
    if (usb_led & 1 << USB_LED_SCROLL_LOCK)
 | 
			
		||||
        leds &= ~0x20;
 | 
			
		||||
    PORTD = (PORTD & 0x0F) | leds;
 | 
			
		||||
 | 
			
		||||
	led_set_user(usb_led);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										67
									
								
								keyboards/kinesis/kinesis.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								keyboards/kinesis/kinesis.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
#ifndef KINESIS_H
 | 
			
		||||
#define KINESIS_H
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// The first section contains all of the arguements
 | 
			
		||||
// The second converts the arguments into a two-dimensional array
 | 
			
		||||
 | 
			
		||||
#define KEYMAP(                           \
 | 
			
		||||
    k02,k22,k12,k01,k21,k11,k00,k20,k10,  \
 | 
			
		||||
    k80,k70,k60,k50,k40,k30,              \
 | 
			
		||||
    k81,k71,k61,k51,k41,k31,              \
 | 
			
		||||
    k82,k72,k62,k52,k42,k32,              \
 | 
			
		||||
    k83,k73,k63,k53,k43,k33,              \
 | 
			
		||||
        k74,k64,k54,k34,                  \
 | 
			
		||||
                        k36,k35,          \
 | 
			
		||||
                            k55,          \
 | 
			
		||||
                    k56,k46,k75,          \
 | 
			
		||||
    k03,k23,k13,k04,k24,k14,k05,k85,k84,  \
 | 
			
		||||
        k94,kA4,kB4,kD4,kE4,kF4,          \
 | 
			
		||||
        k95,kA5,kB5,kD5,kE5,kF5,          \
 | 
			
		||||
        k96,kA6,kB6,kD6,kE6,kF6,          \
 | 
			
		||||
        k97,kA7,kB7,kD7,kE7,kF7,          \
 | 
			
		||||
            k93,kB3,kD3,kE3,              \
 | 
			
		||||
    k47,k66,                              \
 | 
			
		||||
    k67,                                  \
 | 
			
		||||
    k87,k76,k86                           \
 | 
			
		||||
) {                                       \
 | 
			
		||||
        { k00,    k01,    k02,    k03,    k04,    k05,    KC_NO,   KC_NO   }, \
 | 
			
		||||
        { k10,    k11,    k12,    k13,    k14,    KC_NO,  KC_NO,   KC_NO   }, \
 | 
			
		||||
        { k20,    k21,    k22,    k23,    k24,    KC_NO,  KC_NO,   KC_NO   }, \
 | 
			
		||||
        { k30,    k31,    k32,    k33,    k34,    k35,    k36,     KC_NO   }, \
 | 
			
		||||
        { k40,    k41,    k42,    k43,    KC_NO,  KC_NO,  k46,     k47     }, \
 | 
			
		||||
        { k50,    k51,    k52,    k53,    k54,    k55,    k56,     KC_NO   }, \
 | 
			
		||||
        { k60,    k61,    k62,    k63,    k64,    KC_NO,  k66,     k67     }, \
 | 
			
		||||
        { k70,    k71,    k72,    k73,    k74,    k75,    k76,     KC_NO   }, \
 | 
			
		||||
        { k80,    k81,    k82,    k83,    KC_NO  ,KC_NO,  k86,     k87}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,k93,    k94,    k95,    k96,     k97}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,KC_NO,  kA4,    kA5,    kA6,     kA7}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,kB3,    kB4,    kB5,    kB6,     kB7}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,KC_NO,  KC_NO,  KC_NO,  k84,     k85}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,kD3,    kD4,    kD5,    kD6,     kD7}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,kE3,    kE4,    kE5,    kE6,     kE7}, \
 | 
			
		||||
        { KC_NO,  KC_NO  ,KC_NO  ,KC_NO,  kF4,    kF5,    kF6,     kF7} \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*    4y0   A  4y1   B  4y2      4y3   D  4y4   E  4y5   F  4y6   G  4y7   H  5y0   I  5y1   J  5y2   K  5y3   L  5y4   M  5y5   N  5y6   O  5y7  P  */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
					0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
 | 
			
		||||
                                        A       B       C       D       E       F       G       H       I       J       K       L       M       N       O       P
 | 
			
		||||
                                        4y0     4y1     4y2     4y3     4y4     4y5     4y6     4y7     5y0     5y1     5y2     5y3     5y4     5y5     5y6     5y7
 | 
			
		||||
                                        r0      r1      r2       r3 r4  r5      r6      r7      r8      r9      r10     r11     r12     r13     r14     r15
 | 
			
		||||
0       PB0             21      c0      f6      f8      f7      5       4       3       2       1       =+
 | 
			
		||||
1       PB1             22      c1      f3      f5      f4      t       r       e       w       q       TAB
 | 
			
		||||
2       PB2             23      c2      ESC     f2      f1      g       f       d       s       a       CL
 | 
			
		||||
3       PB3             24      c3      f9      f11     f10     b       v       c       x       z       LS      UP              DN              [{      ]}
 | 
			
		||||
4       PB4             25      c4  f12 SL      PS      RT              LT      §±      `~              6       7       8               9       0       -_
 | 
			
		||||
5       PB5             26      c5      PB      PGM     KPD     LA              HM              END             y       u       i               o       p       \
 | 
			
		||||
6       PB6             27      c6                      LC      DEL     BS      RC      ENT     SP      h       j       k               l       ;:      '"
 | 
			
		||||
7       PB7             28      c7                                      RA              PU              PD      n       m       ,<              .>      /?      RS
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										228
									
								
								keyboards/kinesis/matrix.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								keyboards/kinesis/matrix.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,228 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2014 Warren Janssens <warren.janssens@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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * scan matrix
 | 
			
		||||
 */
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
#include <avr/io.h>
 | 
			
		||||
#include <util/delay.h>
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "print.h"
 | 
			
		||||
#include "debug.h"
 | 
			
		||||
#include "util.h"
 | 
			
		||||
#include "matrix.h"
 | 
			
		||||
#include "led.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#ifndef DEBOUNCE
 | 
			
		||||
#   define DEBOUNCE	5
 | 
			
		||||
#endif
 | 
			
		||||
static uint8_t debouncing = DEBOUNCE;
 | 
			
		||||
 | 
			
		||||
/* matrix state(1:on, 0:off) */
 | 
			
		||||
static uint8_t matrix[MATRIX_ROWS];
 | 
			
		||||
static uint8_t matrix_debouncing[MATRIX_ROWS];
 | 
			
		||||
 | 
			
		||||
static matrix_row_t read_row(uint8_t row);
 | 
			
		||||
static void unselect_rows(void);
 | 
			
		||||
static void select_rows(uint8_t row);
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_init_quantum(void) {
 | 
			
		||||
    matrix_init_kb();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_scan_quantum(void) {
 | 
			
		||||
    matrix_scan_kb();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_init_kb(void) {
 | 
			
		||||
    matrix_init_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_scan_kb(void) {
 | 
			
		||||
    matrix_scan_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline
 | 
			
		||||
uint8_t matrix_rows(void)
 | 
			
		||||
{
 | 
			
		||||
    return MATRIX_ROWS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
inline
 | 
			
		||||
uint8_t matrix_cols(void)
 | 
			
		||||
{
 | 
			
		||||
    return MATRIX_COLS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_init(void)
 | 
			
		||||
{
 | 
			
		||||
    //debug_enable = true;
 | 
			
		||||
    
 | 
			
		||||
    //dprint("matrix_init"); dprintln();
 | 
			
		||||
    // output high (leds)
 | 
			
		||||
    DDRD    = 0xFF;
 | 
			
		||||
    PORTD   = 0xFF;
 | 
			
		||||
    
 | 
			
		||||
    // output low (multiplexers)
 | 
			
		||||
    DDRF    = 0xFF;
 | 
			
		||||
    PORTF   = 0x00;
 | 
			
		||||
    
 | 
			
		||||
    // input with pullup (matrix)
 | 
			
		||||
    DDRB    = 0x00;
 | 
			
		||||
    PORTB   = 0xFF;
 | 
			
		||||
    
 | 
			
		||||
    // input with pullup (program and keypad buttons)
 | 
			
		||||
    DDRC    = 0x00;
 | 
			
		||||
    PORTC   = 0xFF;
 | 
			
		||||
    
 | 
			
		||||
    // initialize row and col
 | 
			
		||||
    unselect_rows();
 | 
			
		||||
 | 
			
		||||
    // initialize matrix state: all keys off
 | 
			
		||||
    for (uint8_t i=0; i < MATRIX_ROWS; i++) {
 | 
			
		||||
        matrix[i] = 0;
 | 
			
		||||
        matrix_debouncing[i] = 0;
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint8_t matrix_scan(void)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
 | 
			
		||||
        select_rows(i);
 | 
			
		||||
        uint8_t row = read_row(i);
 | 
			
		||||
        if (matrix_debouncing[i] != row) {
 | 
			
		||||
            matrix_debouncing[i] = row;
 | 
			
		||||
            if (debouncing) {
 | 
			
		||||
                debug("bounce!: "); debug_hex(debouncing); debug("\n");
 | 
			
		||||
            }
 | 
			
		||||
            debouncing = DEBOUNCE;
 | 
			
		||||
        }
 | 
			
		||||
        unselect_rows();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (debouncing) {
 | 
			
		||||
        if (--debouncing) {
 | 
			
		||||
            _delay_ms(1);
 | 
			
		||||
        } else {
 | 
			
		||||
            for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
 | 
			
		||||
                matrix[i] = matrix_debouncing[i];
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    matrix_scan_quantum();
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool matrix_is_modified(void)
 | 
			
		||||
{
 | 
			
		||||
    if (debouncing) return false;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 01234567\n");
 | 
			
		||||
    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
 | 
			
		||||
        phex(row); print(": ");
 | 
			
		||||
        pbin_reverse(matrix_get_row(row));
 | 
			
		||||
        print("\n");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint8_t matrix_key_count(void)
 | 
			
		||||
{
 | 
			
		||||
    uint8_t count = 0;
 | 
			
		||||
    for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
 | 
			
		||||
        count += bitpop16(matrix[i]);
 | 
			
		||||
    }
 | 
			
		||||
    return count;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static matrix_row_t read_row(uint8_t row)
 | 
			
		||||
{
 | 
			
		||||
	_delay_us(30);  // without this wait read unstable value.
 | 
			
		||||
 | 
			
		||||
	//keypad and program buttons
 | 
			
		||||
	if (row == 12)
 | 
			
		||||
	{
 | 
			
		||||
		return ~(PINC | 0b00111111);
 | 
			
		||||
	}
 | 
			
		||||
	return ~PINB;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void unselect_rows(void)
 | 
			
		||||
{
 | 
			
		||||
    // set A,B,C,G to 0 (F4 - F7)
 | 
			
		||||
    PORTF &= 0x0F;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void select_rows(uint8_t row)
 | 
			
		||||
{
 | 
			
		||||
    // set A,B,C,G to row value
 | 
			
		||||
    PORTF |= row << 4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Row pin configuration
 | 
			
		||||
PF0		A
 | 
			
		||||
PF1		B
 | 
			
		||||
PF2		C
 | 
			
		||||
PF3		G	0 = U4, 1 = U5
 | 
			
		||||
 | 
			
		||||
				4y0	4y1	4y2	4y3	4y4	4y5	4y6	4y7	5y0	5y1	5y2	5y3	5y4	5y5	5y6	5y7	
 | 
			
		||||
				r1	r2	 r3 r4	r5	r6	r7	r8	r9	r10	r11	r12	r13	r14	r15	r16	
 | 
			
		||||
PB0		21	c1	f6	f8	f7	5	4	3	2	1	=+								
 | 
			
		||||
PB1		22	c2	f3	f5	f4	t	r	e	w	q	TAB								
 | 
			
		||||
PB2		23	c3	ESC	f2	f1	g	f	d	s	a	CL								
 | 
			
		||||
PB3		24	c4	f9	f11	f10	b	v	c	x	z	LS	UP		DN		[{	]}		
 | 
			
		||||
PB4		25	c5  f12	SL	PS	RT		LT	§±	`~		6	7	8		9	0	-_ 	
 | 
			
		||||
PB5		26	c6	PB	PGM	KPD							y	u	i		o	p	\	
 | 
			
		||||
PB6		27	c7  			LC	DL	BS	RC	EN	SP	h	j	k		l	;:	'"	
 | 
			
		||||
PB7		28	c8					RA		PU		PD	n	m	,<		.>	/?	RS	
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										42
									
								
								keyboards/kinesis/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								keyboards/kinesis/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
kinesis-advantage keyboard firmware
 | 
			
		||||
======================
 | 
			
		||||
 | 
			
		||||
## Kinesis specific information
 | 
			
		||||
This is a port of https://github.com/alvicstep/tmk_keyboard, 
 | 
			
		||||
which is a fork of https://github.com/wjanssens/tmk_keyboard, 
 | 
			
		||||
which is based on work from https://github.com/chrisandreae/keyboard-firmware
 | 
			
		||||
 | 
			
		||||
If you replace the kinesis CPU as described in the doc folder, then this code should allow you to use QMK. 
 | 
			
		||||
I've tested with a Teensy 2++, remember to change the CPU if you use a 32u4 instead. 
 | 
			
		||||
 | 
			
		||||
Not yet implemented: 
 | 
			
		||||
- Kinesis EEProm reading or writing
 | 
			
		||||
- Audio - this should be simple if we remove hardcoded pins from audio.h and switch to E7
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Quantum MK Firmware
 | 
			
		||||
 | 
			
		||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
 | 
			
		||||
 | 
			
		||||
## Building
 | 
			
		||||
 | 
			
		||||
Download or clone the whole firmware and navigate to the keyboards/kinesis-advantage folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. 
 | 
			
		||||
 | 
			
		||||
Depending on which keymap you would like to use, you will have to compile slightly differently.
 | 
			
		||||
 | 
			
		||||
### Default
 | 
			
		||||
 | 
			
		||||
To build with the default keymap, simply run `make`.
 | 
			
		||||
 | 
			
		||||
### Other Keymaps
 | 
			
		||||
 | 
			
		||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
 | 
			
		||||
 | 
			
		||||
To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ make keymap=[default|jack|<name>]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue