3 Massdrop Infinity Keyboard:
4 https://www.massdrop.com/buy/infinity-keyboard-kit
6 kiibohd controller(MD1):
7 https://github.com/kiibohd/controller
10 https://github.com/kiibohd/controller/tree/master/Bootloader
12 Program with bootloader:
13 $ dfu-util -D kiibohd.dfu.bin
16 https://github.com/kiibohd/controller/blob/master/Scan/MD1/pinout
19 https://mchck.org/about/
21 MCU Freescale MK20DX128VLF5 48-QFP:
22 http://cache.freescale.com/files/32bit/doc/data_sheet/K20P48M50SF0.pdf
29 For v1.0 (without LED support)
30 strobe(output high): ptb0 ptb1 ptb2 ptb3 ptb16 ptb17 ptc4 ptc5 ptd0
31 sense(input with pull-down): ptd1 ptd2 ptd3 ptd4 ptd5 ptd6 ptd7
32 For v1.1a (with LED support)
33 strobe(output high): ptc0 ptc1 ptc2 ptc3 ptc4 ptc5 ptc6 ptc7 ptd0
34 sense(input with pull-down): ptd1 ptd2 ptd3 ptd4 ptd5 ptd6 ptd7
38 SWD_CLK(PTA0) SWD_DIO(PTA3)
39 SWD pins are placed next to reset button; SWD_CLK, SWD_DIO, GND, VCC from top.
40 Note that RESET is also needed to get full control with OpenOCD.
43 PTA19(turns on with output high)
49 kiibohd bootloader: Lib/mk20dx128vlf5.bootloader.ld
50 0x0000_0000 +-------------------+ -----------------+---------------+ Vector table
51 | .vectors | ------------. | StackPointer0 | of Bootloader
52 | .startup | \ | ResetHandler1 |
53 | .rodata | `--+---------------+ 0xF8
54 0x0000_0400 | .flashconfig(0x10)|
57 0x0000_1000 +-------------------+ -----------------+---------------+ Vector table
58 | _app_rom | ------------. | | of App
60 | | `--+---------------+
64 0x07FF_FFFF +-------------------+ 128KB
67 0x1FFF_E000 +-------------------+ -----------------+---------------+ Vector table
68 _E0F8 | | ------------. | | of App(copied)
70 | | `--+---------------+ mbed NVIC
74 0x2000_0000 +-------------------+
81 0x2000_2000 +-------------------+ _estack