1
0
tmk_keyboard/keyboard/infinity
Brandon Bennett ee2c18f0cd Add support for Infinity 60% 1.1a
The newest version of the Infinity keyboard has a slightly different
matrix and LED support.

This just adds support for the matrix.

Flashed and tested on my IC60 1.1a.
2016-07-22 00:16:23 -06:00
..
mbed-infinity infinity: Fix disabling watchdog 2015-03-22 10:51:30 +09:00
tool infinity: Fix disabling watchdog 2015-03-22 10:51:30 +09:00
config.h Add support for Infinity 60% 1.1a 2016-07-22 00:16:23 -06:00
keymap_common.c infinity: Add initial files for keyboard support 2015-01-04 17:21:43 +09:00
keymap_common.h infinity: For production model and add SpaceFn 2015-03-05 10:38:18 +09:00
keymap.c infinity: For production model and add SpaceFn 2015-03-05 10:38:18 +09:00
led.c Add support for Infinity 60% 1.1a 2016-07-22 00:16:23 -06:00
main.cpp infinity: Add initial files for keyboard support 2015-01-04 17:21:43 +09:00
Makefile mbed build workaround for #212 2016-02-19 14:40:33 +09:00
matrix.c Add support for Infinity 60% 1.1a 2016-07-22 00:16:23 -06:00
mbed-infinity.mk Update for the latest mbed sdk 2015-04-24 15:03:59 +09:00
README Add support for Infinity 60% 1.1a 2016-07-22 00:16:23 -06:00

Infinity
========
Massdrop Infinity Keyboard:
https://www.massdrop.com/buy/infinity-keyboard-kit

kiibohd controller(MD1):
https://github.com/kiibohd/controller

DFU bootloader:
https://github.com/kiibohd/controller/tree/master/Bootloader

Program with bootloader:
    $ dfu-util -D kiibohd.dfu.bin

Pinout:
https://github.com/kiibohd/controller/blob/master/Scan/MD1/pinout

MCHCK compatible:
https://mchck.org/about/

MCU Freescale MK20DX128VLF5 48-QFP:
http://cache.freescale.com/files/32bit/doc/data_sheet/K20P48M50SF0.pdf



Pin Usage
=========
Key Matrix:
	For v1.0 (without LED support)
		strobe(output high):            ptb0 ptb1 ptb2 ptb3 ptb16 ptb17 ptc4 ptc5 ptd0
		sense(input with pull-down):    ptd1 ptd2 ptd3 ptd4 ptd5 ptd6 ptd7
	For v1.1a (with LED support)
		strobe(output high):            ptc0 ptc1 ptc2 ptc3 ptc4 ptc5 ptc6 ptc7 ptd0
		sense(input with pull-down):    ptd1 ptd2 ptd3 ptd4 ptd5 ptd6 ptd7


SWD pinout:
    SWD_CLK(PTA0) SWD_DIO(PTA3)
    SWD pins are placed next to reset button; SWD_CLK, SWD_DIO, GND, VCC from top.
    Note that RESET is also needed to get full control with OpenOCD.

LED:
    PTA19(turns on with output high)



Memory map
==========
kiibohd bootloader: Lib/mk20dx128vlf5.bootloader.ld
0x0000_0000 +-------------------+ -----------------+---------------+ Vector table
            | .vectors          | ------------.    | StackPointer0 |     of Bootloader
            | .startup          |              \   | ResetHandler1 |
            | .rodata           |               `--+---------------+ 0xF8
0x0000_0400 | .flashconfig(0x10)|
      _0410 | .text             |
            | .init             |
0x0000_1000 +-------------------+ -----------------+---------------+ Vector table
            | _app_rom          | ------------.    |               |     of App
            |                   |              \   |               |
            |                   |               `--+---------------+
            |                   |
            ~                   ~
            |                   |
0x07FF_FFFF +-------------------+ 128KB


0x1FFF_E000 +-------------------+ -----------------+---------------+ Vector table
      _E0F8 |                   | ------------.    |               |     of App(copied)
            |                   |              \   |               |
            |                   |               `--+---------------+ mbed NVIC
            |                   |
            | RAM               |
            |                8KB|
0x2000_0000 +-------------------+
            |                   |
            |                   |
            |                   |
            |                   |
            | RAM               |
            |                8KB|
0x2000_2000 +-------------------+ _estack