Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tmk 0523b4fd8e infinity: Add Makefiles and fix for INFINITY_LED 5 years ago
..
mbed-infinity infinity: Fix disabling watchdog 7 years ago
tool infinity: Fix disabling watchdog 7 years ago
Makefile Remove keymap read code from project directories 5 years ago
Makefile.led infinity: Add Makefiles and fix for INFINITY_LED 5 years ago
Makefile.prototype infinity: Add Makefiles and fix for INFINITY_LED 5 years ago
README Add support for Infinity 60% 1.1a 5 years ago
config.h Add support for Infinity 60% 1.1a 5 years ago
keymap.c Fix: Use action_t in keymap files 5 years ago
keymap_common.h Remove keymap read code from project directories 5 years ago
led.c Add support for Infinity 60% 1.1a 5 years ago
main.cpp infinity: Add initial files for keyboard support 7 years ago
matrix.c infinity: Add Makefiles and fix for INFINITY_LED 5 years ago
mbed-infinity.mk Update for the latest mbed sdk 7 years ago

README

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