annotate README.old.markdown @ 412:e7a3be42ae1e

Debug code for interconnect cable debugging
author Jacob Alexander <haata@kiibohd.com>
date Sat, 20 Feb 2016 13:27:49 -0800
parents a2df35fa4f0b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
313
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 The Kiibohd Controller
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 ======================
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 This README is a bit long, just look at the sections you are interested in.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 You only need to install avr-gcc if you want to build for the Teensy 2.0/2.0++.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 Everything else needs an arm-none-eabi-gcc compiler (e.g. Infinity keyboard,
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 Teensy 3.0/3.1, McHCK).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 Linux is the ideal build environment (preferably recent'ish). In the near
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 future I'll make available an Arch Linux VM for building/manufacturing tests.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 Building on Mac should be ok for 99% of users with Macports or Homebrew. For
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 Homebrew, use `brew tap PX4/homebrew-px4` to get the arm-none-eabi-gcc installer.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 The dfu Bootloader will not build correctly with the old version of
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 arm-none-eabi-gcc that Macports currently has (4.7.3). This is due to a bug
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 with lto (link time optimizations) which makes the resulting binary too big to
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17 fit on the chip (must be less than 4096 Bytes).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19 Building on Windows should also be fine for 99% of users, but takes a bunch of
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20 work to setup (because Windows is a crappy dev environment). Cygwin is
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 currently required along with some non-Cygwin compilers and utilities (because
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22 they are not available for Cygwin). The dfu Bootloader will not build because
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23 of a Make 3.81+ bug/feature that removed support for non-Unix (Windows)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24 filenames as dependencies of targets. If you [replace the version of Make in
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 Cygwin](http://stackoverflow.com/questions/601516/cygwin-make-error-target-pattern-contains-no)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 it should work. However, make sure that the flash size is no larger than 4096
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 Bytes or the bootloader will not work. Things will likely break if there are
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 **SPACES IN YOUR PATHS**. I install cygwin to `C:\cygwin64`. If you are brave
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 and have programming knowledge, I will accept patches to fix any issues
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30 regarding spaces in paths.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32 Please give authors credit for modules used if you use in a distributed
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33 product :D
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36 General Dependencies
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37 --------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
39 Below listed are the Arch Linux pacman names, AUR packages may be required.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
40
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
41 These depend a bit on which targets you are trying to build, but the general
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
42 one:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
43
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
44 - cmake (2.8 and higher)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
45 - git
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
46 - ctags (recommended, not required)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
47 - python3
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
48 - libusb1.0 (and -devel)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
49 - make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
50
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
51 AVR Specific (Teensy 1.0/++,2.0/++) (try to use something recent, suggested
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
52 versions below)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
53
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
54 - avr-gcc (~4.8.0)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
55 - avr-binutils (~2.23.2)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
56 - avr-libc (~1.8.0)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
57
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
58 ARM Specific (Teensy 3.0/3.1, Infinity Keyboard, McHCK)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
59
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
60 - Arch Linux / Mac Ports
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
61 - arm-none-eabi-gcc
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
62 - arm-none-eabi-binutils
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
63
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
64 - Windows (https://launchpad.net/gcc-arm-embedded/+download)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65 - gcc-arm-none-eabi (win32.zip)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
66
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
67
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
68 Windows Setup
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
69 -------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
70
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
71 Compiling on Windows does work, just it's a bunch more work.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
72
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
73 First make sure Cygwin is installed - http://www.cygwin.com/ - 32bit or 64bit
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
74 is fine. Make sure the following are installed:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
75
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
76 - make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
77 - git (needed for some compilation info)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78 - cmake
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 - gcc-core
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
80 - gcc-g++
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
81 - libusb1.0
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
82 - libusb1.0-devel
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
83 - python3
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
84 - ctags (recommended, not required)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
85
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
86 Please note, I use cygwin term exclusively for any command line options.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
87 Unless mentioned otherwise, use it. Do NOT use CMD or Powershell.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89 Also install the [Windows version of CMake](http://cmake.org/cmake/resources/software.html)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 (3+ is ideal) - Select "Do not add CMake to system PATH". This is in addition
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
91 to the Cygwin version. This is an easier alternative to installing another C
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 compiler. Add the following line to your .bashrc, making sure the CMake path
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93 is correct:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
94
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 echo "alias wincmake=\"PATH='/cygdrive/c/Program Files (x86)/CMake'/bin:'${PATH}' cmake -G 'Unix Makefiles'\"" >> ~/.bashrc
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97 Install the [PJRC Virtual Serial Port Driver](http://pjrc.com/teensy/serial_install.exe).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
99 Next, install the compiler(s) you want.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
100
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
101
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 ### AVR GCC
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104 You just need the
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 [Atmel AVR 8-bit Toolchain](http://www.atmel.com/tools/atmelavrtoolchainforwindows.aspx).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 The latest should be fine, as of writing it was 3.4.3.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
108 Extract the files to a directory, say `C:\avr8-gnu-toolchain`. Then copy all
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
109 the folders in that directory to the Cygwin `/usr/local` directory. Mine is
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
110 `C:\cygwin64\usr\local`. (You can also just setup the paths, but this is
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
111 faster/simpler. Might screw up your Cygwin though).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
112
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
113
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
114 ### ARM EABI
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
115
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
116 Download the latest
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
117 [GNU Tools for Embedded Processors
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
118 gcc-arm-none-eabi](https://launchpad.net/gcc-arm-embedded/+download).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
119
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
120 Download `gcc-arm-none-eabi*win32.zip`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
121
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
122 Then extract all the folders/files in the zip to the Cygwin `/usr/local`
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
123 directory. Mine is `C:\cygwin64\usr\local`. Or, you can setup paths using
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
124 the installer (you have to be more careful, avoid spaces in paths).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
125
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
126
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
127 CMake Info
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
128 ----------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
129
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
130 One of the big benefits of using CMake is the ability to build multiple
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 configurations (for different microcontrollers) at the same time. The
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 following sections explain in detail what each CMakeLists.txt configuration
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
133 option does and what you can change it to. However, it is possible to
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
134 configure each of these options using the `-D` command line flag.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
135
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
136 For example, to build the Infinity Keyboard default configuration:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
137
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
138 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139 $ mkdir build_infinity
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
140 $ cd build_infinity
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141 $ cmake -DCHIP=mk20dx128vlf5 -DScanModule=MD1 -DMacroModule=PartialMap \
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142 -DOutputModule=pjrcUSB -DDebugModule=full -DBaseMap=defaultMap \
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
143 -DDefaultMap="md1Overlay stdFuncMap" -DPartialMaps="hhkbpro2" \
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
144 ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
145 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
146 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
147
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
148 CMake defaults to the values specified in CMakeLists.txt if not overridden via
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
149 the command line.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
150
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
151 > NOTE: On Windows, you will have to use "wincmake" instead of "cmake".
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
152
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
153
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
154 Selecting Microcontroller
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
155 -------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
156
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157 This is where you select the chip you want to compile for. The build system
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
158 will automatically select the compiler needed to compile for your chip.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
159
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
160 Open up CMakeLists.txt in your favourite text editor. You are looking for:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
162 ```cmake
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
163 ###
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
164 # Chip Selection
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
165 #
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
166
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
167 #| You _MUST_ set this to match the microcontroller you are trying to compile for
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
168 #| You _MUST_ clean the build directory if you change this value
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
169 #|
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
170 set( CHIP
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
171 # "at90usb162" # Teensy 1.0 (avr)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172 # "atmega32u4" # Teensy 2.0 (avr)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173 # "at90usb646" # Teensy++ 1.0 (avr)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
174 # "at90usb1286" # Teensy++ 2.0 (avr)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
175 # "mk20dx128" # Teensy 3.0 (arm)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
176 "mk20dx128vlf5" # McHCK mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
177 # "mk20dx256" # Teensy 3.1 (arm)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
178 CACHE STRING "Microcontroller Chip" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
179 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
180
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181 Just uncomment the chip you want, and comment out the old one.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
182
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
183 > NOTE: If you change this option, you will *need* to delete the build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
184 > directory that is created in the Building sections below.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
185
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
186
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
187 Selecting Modules
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
188 -----------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
189
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
190 > WARNING: Not all modules are compatible, and some modules may have
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
191 > dependencies on other modules.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
192
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
193 This is where the options start getting interesting. The Kiibohd Controller
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
194 is designed around a set of 4 types of modules that correspond to different
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
195 functionality:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
196
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
197 - Scan Module
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
198 - Macro Module
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
199 - Output Module
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
200 - Debug Module
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
201
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
202 The Scan Module is where the most interesting stuff happens. These modules
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
203 take in "keypress data". A converter Scan Module will interpret a protocol
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
204 into key press/releases. A matrix Scan Module may inherit from the matrix
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
205 module to scan keypress from a matrix This module just has to give
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
206 press/release codes, but does have some callback control to other modules
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
207 depending on the lifecycle for press/release codes (this can be very
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
208 complicated depending on the protocol). Each Scan Module has it's own default
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
209 keymap/modifier map. (TODO recommend keymap changing in the Macro Module).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
210
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
211 Some scan modules have very specialized hardware requirements, each module
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
212 directory should have at least a link to the needed parts and/or schematics
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
213 (TODO!).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
214
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
215 The Macro Module takes care of the mapping of the key press/release code into
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
216 an Output (USB) scan code. Any layering, macros, keypress
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
217 intelligence/reaction is done here.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
218
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
219 The Output Module is the module dealing with output from the microcontroller.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
220 Currently USB is the only output protocol. Different USB output
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
221 implementations are available, pjrc being the safest/least featureful one.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
222 Debug capabilities may depend on the module selected.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
223
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
224 The Debug Module enables various things like the Teensy LED on errors, debug
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
225 terminal output. (TODO get true UART working in avr, not just arm)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
226
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
227 Open up CMakeLists.txt in your favourite text editor. Look for:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
228
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
229 ```cmake
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
230 ###
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
231 # Project Modules
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
232 #
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
233
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
234 #| Note: This is the only section you probably want to modify
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
235 #| Each module is defined by it's own folder (e.g. Scan/Matrix represents the "Matrix" module)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
236 #| All of the modules must be specified, as they generate the sources list of files to compile
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
237 #| Any modifications to this file will cause a complete rebuild of the project
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
238
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
239 #| Please look at the {Scan,Macro,Output,Debug} for information on the modules and how to create new ones
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
240
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
241 ##| Deals with acquiring the keypress information and turning it into a key index
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
242 set( ScanModule "MD1"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
243 CACHE STRING "Scan Module" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
244
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
245 ##| Provides the mapping functions for DefaultMap and handles any macro processing before sending to the OutputModule
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
246 set( MacroModule "PartialMap"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
247 CACHE STRING "Macro Module" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
248
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
249 ##| Sends the current list of usb key codes through USB HID
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
250 set( OutputModule "pjrcUSB"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
251 CACHE STRING "Output Module" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
252
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
253 ##| Debugging source to use, each module has it's own set of defines that it sets
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
254 set( DebugModule "full"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
255 CACHE STRING "Debug Module" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
256 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
257
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
258 Look at each module individually for it's requirements. There is
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
259 chip/architecture dependency checking but some permutations of modules may not
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
260 be tested/compile.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
261
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
262 There are also CMake options for temporarily selecting modules. But it's
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
263 easier to just edit the file. e.g. `cmake -DScanModuleOverride=<module name>`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
264
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
265
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
266 Keymap Configuration
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
267 --------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
268
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
269 This is where you define the layout for your keyboard.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
270 Currently, the only way to define kebyoard layouts is using [KLL](https://www.overleaf.com/read/zzqbdwqjfwwf).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
271
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
272 KLL is built up of 3 different kinds of keymaps in total.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
273 The BaseMap, DefaultMap and PartialMaps.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
274
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
275 For each type of keymap, it is possible to combine multiple .kll files together to create new ones using
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
276 the compiler. The order of the files matter, as the right-most file will overwrite any setting in the
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
277 previous files.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
278
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
279 > NOTE: Each keymap is done after the entire file is processed. This means that within the file the order
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
280 > of assignment doesa *not* matter (if you assign the same thing twice, then yes the most recent one
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
281 > takes priority).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
282
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
283
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
284 BaseMap defines what the keyboard can do. This includes specific capabilities of the keyboard (such as USB),
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
285 the mapping of Scan Codes to USB Codes and any specific configurations for the keyboard.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
286 In general, the BaseMap rarely needs to be changed. Usually only when adding a new keyboard to the firmware
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
287 does the Basemap need any modification.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
288 The BaseMap is what both DefaultMap and PartialMaps are based upon. This allows for a common reference
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
289 when defining custom keymappings.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
290
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
291 > NOTE: Don't use defaultMap.kll to change your layouts. This will work, but they will not be portable.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
292
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
293
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
294 The DefaultMap is the normal state of the keyboard, i.e. your default layer.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
295 Using the BaseMap as a base, the DefaultMap is a modification of the BaseMap to what the keyboard should do.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
296 Since the DefaultMap uses USB Code to USB Code translations, this means that keymaps used for one keyboard
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
297 will work with another keyboard.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
298 For example, I use Colemak, so this means I only have to define Colemak once for every keyboard that supports
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
299 the kiibohd firmware. This is possible because every BaseMap defines the keyboard as a US ANSI like keyboard
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
300 layout.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
301 The DefaultMap can also be thought of as Layer 0.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
302
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
303
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
304 PartialMaps are optional keymaps that can be "stacked" on top of the DefaultMap.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
305 They can be dynamically swapped out using the layer control capabilities:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
306
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
307 - layerLatch( `<layer number>` )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
308 - layerLock( `<layer number>` )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
309 - layerShift( `<layer number>` )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
310
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
311 layerShift is usually what you want as it works just like a standard shift key.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
312 layerLock is similar to the CapsLock key. While layerLatch is a latch, where only the next key you press
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
313 will use that layer (e.g. stickykeys).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
314
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
315 A unique aspect of KLL layers is that it's a true stack of layers.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
316 When a layer is activated, only the keys that are specified by the layer will change.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
317 This means, if you define a layer that only sets `CapsLock -> LCtrl` and `LCtrl->Capslock` only those keys
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
318 will change when you active the layer. All the other keys will use the layer that is "underneath" to
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
319 lookup the keypress (usually the DefaultMap).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
320
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
321 This means that you can combine .kll files statically using the compiler or dynamically using the firmware.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
322
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
323 You can set the max number of layers by changing the `stateWordSize` define in one of your kll files.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
324 By default it is set to 8 in Macro/PartialMap/capabilities.kll. This means you can have up to 256 layers
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
325 total (this includes the DefaultMap).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
326 You can increase this number to either 16 or 32 (this will use more Flash and RAM btw) which will give you
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
327 2^16 and 2^32 possible layers respectively (65 535 and 4 294 967 295).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
328
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
329
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
330 ```cmake
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
331 ###
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
332 # Keymap Configuration (do not include the .kll extension)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
333 #
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
334
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
335 #| Do not include the .kll extension
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
336 #| * BaseMap maps the native keyboard scan codes to USB Codes so the layout is compatible with all other layouts
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
337 #| * DefaultMap allows the default keymap to be modified from the BaseMap
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
338 #| * PartialMaps is a set of dynamically set layers (there is no limit, but too many may use up too much RAM...)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
339 #| BaseMap generally does not need to be changed from "defaultMap"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
340 #|
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
341 #| Syntax:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
342 #| myMap
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
343 #| * defines a single .kll layout file, double-quotes are needed to distinguish between layers
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
344 #| "myMap specialLayer"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
345 #| * defines myMap to be the main layout, then replace specialLayers on top of it
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
346 #|
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
347 #| - Only for PartialMaps -
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
348 #| "myMap specialLayer" "myMap colemak" dvorak
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
349 #| * As before, but also generates a second layer at index 2 and third at index 3
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
350 #|
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
351 #| NOTE: Remember to add key(s) to enable each Partial Layer
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
352 #| NOTE2: Layers are always based up the BaseMap (which should be an ANSI-like mapping)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
353 #| NOTE3: Compiler looks in kll/layouts and the build directory for layout files (precedence on build directory)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
354
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
355 ##| Set the base keyboard .kll map, defaults to "defaultMap" if not found
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
356 ##| Looks in Scan/<Module Name> for the available BaseMaps
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
357 set( BaseMap "defaultMap"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
358 CACHE STRING "KLL BaseMap/Scancode Keymapping" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
359
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
360 ##| Layer additonal .kll maps on the BaseMap, layers are in order from 1st to nth
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
361 ##| Can be set to ""
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
362 set( DefaultMap "md1Overlay stdFuncMap"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
363 CACHE STRING "KLL DefaultMap" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
364
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
365 ##| ParitalMaps available on top of the BaseMap. See above for syntax on specifying multiple layers vs. layering
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
366 ##| Can be set to ""
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
367 set( PartialMaps "hhkbpro2"
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
368 CACHE STRING "KLL PartialMaps/Layer Definitions" )
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
369 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
370
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
371
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
372 Linux Building
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
373 --------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
374
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
375 From this directory.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
376
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
377 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
378 $ mkdir build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
379 $ cd build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
380 $ cmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
381 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
382 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
383
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
384 Example output:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
385
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
386 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
387 $ cmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
388 -- Compiler Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
389 arm
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
390 -- Chip Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
391 mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
392 -- Chip Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
393 mk20dx
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
394 -- CPU Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
395 cortex-m4
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
396 -- Compiler Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
397 Lib/mk20dx.c;Lib/delay.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
398 -- Bootloader Type:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
399 dfu
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
400 -- Detected Scan Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
401 Scan/MD1/scan_loop.c;Scan/MD1/../MatrixARM/matrix_scan.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
402 -- Detected Macro Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
403 Macro/PartialMap/macro.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
404 -- Detected Output Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
405 Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
406 Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_serial.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
407 -- Detected Debug Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
408 Debug/full/../cli/cli.c;Debug/full/../led/led.c;Debug/full/../print/print.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
409 -- Found Git: /usr/bin/git (found version "2.2.1")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
410 -- Found Ctags: /usr/bin/ctags (found version "5.8")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
411 -- Checking for latest kll version:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
412 Current branch master is up to date.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
413 -- Detected Layout Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
414 /home/hyatt/Source/controller/Macro/PartialMap/capabilities.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
415 /home/hyatt/Source/controller/Output/pjrcUSB/capabilities.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
416 /home/hyatt/Source/controller/Scan/MD1/defaultMap.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
417 /home/hyatt/Source/controller/kll/layouts/md1Overlay.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
418 /home/hyatt/Source/controller/kll/layouts/stdFuncMap.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
419 /home/hyatt/Source/controller/kll/layouts/hhkbpro2.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
420 -- Configuring done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
421 -- Generating done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
422 -- Build files have been written to: /home/hyatt/Source/controller/build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
423 [master]: make [~/Source/controller/build](hyatt@x230mas:pts/6)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
424 [ 5%] Generating KLL Layout
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
425 Scanning dependencies of target kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
426 [ 11%] Building C object CMakeFiles/kiibohd.elf.dir/main.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
427 [ 17%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/mk20dx.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
428 [ 23%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/delay.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
429 [ 29%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/MD1/scan_loop.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
430 [ 35%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/MatrixARM/matrix_scan.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
431 [ 41%] Building C object CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/macro.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
432 [ 47%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/output_com.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
433 [ 52%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_desc.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
434 [ 58%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_dev.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
435 [ 64%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_keyboard.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
436 [ 70%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mem.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
437 [ 76%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_serial.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
438 [ 82%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
439 [ 88%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/led/led.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
440 [ 94%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/print/print.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
441 Linking C executable kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
442 [ 94%] Built target kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
443 Scanning dependencies of target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
444 [100%] Chip usage for mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
445 SRAM: 32% 5384/16384 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
446 Flash: 18% 23384/126976 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
447 [100%] Built target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
448 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
449
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
450 Linux Loading Firmware
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
451 ----------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
452
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
453 First place the keyboard into re-flash mode. This can be done either by
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
454 pressing the re-flash button on the PCB/Teensy. Or by entering the Kiibohd
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
455 Virtual Serial Port and using the 'reload' command.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
456
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
457 The `load` script that is created during the build can load the firmware over
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
458 USB. Either run it with sudo, or install the `98-kiibohd.rules` to
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
459 `/etc/udev/rules.d` and run: `udevadm control --reload-rules`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
460
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
461 To load the newly built firmware: `./load`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
462
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
463
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
464 Linux Building Bootloader
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
465 -------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
466
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
467 > NOTE: Does not apply to Teensy based builds.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
468
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
469 From this directory.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
470
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
471 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
472 $ cd Bootloader
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
473 $ mkdir build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
474 $ cd build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
475 $ cmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
476 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
477 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
478
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
479 Example output:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
480
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
481 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
482 $ cmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
483 -- Compiler Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
484 arm
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
485 -- Chip Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
486 mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
487 -- Chip Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
488 mk20dx
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
489 -- CPU Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
490 cortex-m4
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
491 -- Compiler Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
492 Lib/mk20dx.c;Lib/delay.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
493 -- Bootloader Type:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
494 dfu
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
495 -- Bootloader Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
496 main.c;dfu.c;dfu.desc.c;flash.c;kinetis.c;usb.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
497 -- Found Git: /usr/bin/git (found version "2.2.1")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
498 -- Found Ctags: /usr/bin/ctags (found version "5.8")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
499 -- Configuring done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
500 -- Generating done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
501 -- Build files have been written to: /home/hyatt/Source/controller/Bootloader/build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
502 [master]: make [~/Source/controller/Bootloader/build](hyatt@x230mas:pts/6)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
503 Scanning dependencies of target kiibohd_bootloader.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
504 [ 11%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/main.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
505 [ 22%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/dfu.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
506 [ 33%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/dfu.desc.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
507 [ 44%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/flash.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
508 [ 55%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/kinetis.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
509 [ 66%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/usb.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
510 [ 77%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/home/hyatt/Source/controller/Lib/mk20dx.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
511 [ 88%] Building C object CMakeFiles/kiibohd_bootloader.elf.dir/home/hyatt/Source/controller/Lib/delay.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
512 Linking C executable kiibohd_bootloader.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
513 [ 88%] Built target kiibohd_bootloader.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
514 Scanning dependencies of target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
515 [100%] Chip usage for mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
516 SRAM: 19% 3176/16384 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
517 Flash: 2% 3736/126976 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
518 [100%] Built target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
519 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
520
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
521
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
522 Linux Loading Bootloader
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
523 ------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
524
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
525 > NOTE: Does not apply to Teensy based builds.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
526
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
527 It's recommended to use an SWD-type flasher like a Bus Pirate. There is a
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
528 convenience script for loading the firmware once the system is setup.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
529
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
530 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
531 $ cd Bootloader/Scripts
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
532 $ ./swdLoad.bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
533 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
534
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
535 The above script requires Ruby, Ruby serial port module, git, and a
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
536 `/dev/buspirate` udev rule.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
537
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
538 Additional Notes:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
539
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
540 * https://github.com/mchck/mchck/wiki/Getting-Started (See Bus-Pirate section)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
541 * https://wiki.archlinux.org/index.php/Bus_pirate
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
542
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
543
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
544 Windows Building
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
545 ----------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
546
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
547 From this directory.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
548
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
549 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
550 $ mkdir build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
551 $ cd build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
552 $ wincmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
553 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
554 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
555
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
556 Example output:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
557
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
558 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
559 $ wincmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
560 -- Compiler Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
561 arm
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
562 -- Chip Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
563 mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
564 -- Chip Family:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
565 mk20dx
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
566 -- CPU Selected:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
567 cortex-m4
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
568 -- Compiler Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
569 Lib/mk20dx.c;Lib/delay.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
570 -- Bootloader Type:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
571 dfu
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
572 -- Detected Scan Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
573 Scan/MD1/scan_loop.c;Scan/MD1/../MatrixARM/matrix_scan.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
574 -- Detected Macro Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
575 Macro/PartialMap/macro.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
576 -- Detected Output Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
577 Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_serial.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
578 -- Detected Debug Module Source Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
579 Debug/full/../cli/cli.c;Debug/full/../led/led.c;Debug/full/../print/print.c
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
580 -- Found Git: C:/cygwin64/bin/git.exe (found version "2.1.1")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
581 -- Found Ctags: C:/cygwin64/bin/ctags.exe (found version "5.8")
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
582 -- Checking for latest kll version:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
583 Current branch master is up to date.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
584 -- Detected Layout Files:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
585 C:/cygwin64/home/Jacob/controller/Macro/PartialMap/capabilities.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
586 C:/cygwin64/home/Jacob/controller/Output/pjrcUSB/capabilities.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
587 C:/cygwin64/home/Jacob/controller/Scan/MD1/defaultMap.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
588 C:/cygwin64/home/Jacob/controller/kll/layouts/md1Overlay.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
589 C:/cygwin64/home/Jacob/controller/kll/layouts/stdFuncMap.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
590 C:/cygwin64/home/Jacob/controller/kll/layouts/hhkbpro2.kll
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
591 -- Configuring done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
592 -- Generating done
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
593 -- Build files have been written to: C:/cygwin64/home/Jacob/controller/build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
594
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
595 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
596 [ 5%] Generating KLL Layout
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
597 Scanning dependencies of target kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
598 [ 11%] Building C object CMakeFiles/kiibohd.elf.dir/main.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
599 [ 17%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/mk20dx.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
600 [ 23%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/delay.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
601 [ 29%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/MD1/scan_loop.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
602 [ 35%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/MatrixARM/matrix_scan.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
603 [ 41%] Building C object CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/macro.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
604 [ 47%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/output_com.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
605 [ 52%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_desc.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
606 [ 58%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_dev.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
607 [ 64%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_keyboard.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
608 [ 70%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mem.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
609 [ 76%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_serial.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
610 [ 82%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
611 [ 88%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/led/led.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
612 [ 94%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/print/print.c.obj
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
613 Linking C executable kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
614 [ 94%] Built target kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
615 Scanning dependencies of target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
616 [100%] Chip usage for mk20dx128vlf5
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
617 SRAM: 32% 5384/16384 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
618 Flash: 18% 23296/126976 bytes
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
619 [100%] Built target SizeAfter
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
620 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
621
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
622 ### NOTES:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
623
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
624 If you get the following error, you have not setup wincmake correctly:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
625
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
626 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
627 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
628 [ 5%] Generating KLL Layout
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
629 Scanning dependencies of target kiibohd.elf
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
630 [ 11%] Building C object CMakeFiles/kiibohd.elf.dir/main.c.o
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
631 ../main.c:28:19: fatal error: macro.h: No such file or directory
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
632 #include <macro.h>
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
633 ^
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
634 compilation terminated.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
635 CMakeFiles/kiibohd.elf.dir/build.make:67: recipe for target 'CMakeFiles/kiibohd.elf.dir/main.c.o' failed
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
636 make[2]: *** [CMakeFiles/kiibohd.elf.dir/main.c.o] Error 1
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
637 CMakeFiles/Makefile2:98: recipe for target 'CMakeFiles/kiibohd.elf.dir/all' failed
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
638 make[1]: *** [CMakeFiles/kiibohd.elf.dir/all] Error 2
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
639 Makefile:75: recipe for target 'all' failed
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
640 make: *** [all] Error 2
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
641 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
642
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
643 If you have already added the line to your `~/.bashrc` try restarting your
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
644 cygwin shell.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
645
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
646
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
647 Windows Loading Firmware
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
648 ------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
649
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
650 First place the keyboard into re-flash mode. This can be done either by
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
651 pressing the re-flash button on the PCB/Teensy. Or by entering the Kiibohd
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
652 Virtual Serial Interface and using the `reload` command.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
653
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
654 The `load` script that is created during the build can load the firmware over
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
655 USB.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
656
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
657 To load the newly built firmware: `./load`
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
658
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
659 Be patient the couple of times, Windows is slow at installing drivers...
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
660
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
661
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
662 Mac OS X Building
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
663 -----------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
664
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
665 From this directory.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
666
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
667 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
668 $ mkdir build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
669 $ cd build
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
670 $ cmake ..
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
671 $ make
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
672 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
673
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
674 Example output:
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
675
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
676 > TODO
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
677
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
678
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
679 Mac OS X Loading Firmware
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
680 -------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
681
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
682 First place the keyboard into re-flash mode. This can be done either by
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
683 pressing the re-flash button on the PCB/Teensy. Or by entering the Kiibohd
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
684 Virtual Serial Port and using the `reload` command.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
685
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
686 The `load` script that is created during the build can load the firmware over
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
687 USB.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
688
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
689 To load the newly built firmware: `./load`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
690
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
691
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
692 Virtual Serial Port - CLI
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
693 -------------------------
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
694
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
695 Rather than use a special program that can interpret Raw HID, this controller exposes a USB Serial CDC endpoint.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
696 This allows for you to use a generic serial terminal to debug/control the keyboard firmware (e.g. Tera Term, minicom, screen)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
697
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
698
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
699 ### Linux
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
700
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
701 I generally use screen. You will need sudo/root priviledges if you haven't
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
702 installed the `98-kiibohd.rules` file to `/etc/udev/rules.d`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
703
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
704 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
705 $ screen /dev/ttyACM0
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
706 # (Might be ACM1, ACM2, etc.)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
707 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
708
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
709 ### Windows
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
710
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
711 Make sure the Teensy Virtual Serial Port driver is installed. If possible use
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
712 screen (as part of Cygwin). Check which COM port the virtual serial port has
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
713 been assigned to: `Device Manager->Ports (COM & LPT)->Teensy USB Serial`. In
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
714 brackets it will say which COM port (e.g. COM3)
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
715
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
716 putty works well when using DTR/DSR or RTS/CTS flow control.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
717
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
718 | Setting | Value |
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
719 | --------------- | ------------------------------------- |
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
720 | Connection type | Serial |
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
721 | Serial line | Your COM port, e.g. COM3 |
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
722 | Speed | doesn't matter, it's auto-negotiated |
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
723
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
724 Under `Category->Connections->Serial`: `Flow control: DTR/DSR`.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
725
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
726 If stuff is hard to read (you have a dumb colour scheme):
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
727 `Category->Window->Colours->Use system color`. That seems to make text at
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
728 least readable
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
729
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
730 > I use a custom colour scheme that makes each colour easy to see.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
731 > -HaaTa.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
732
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
733 Unfortunately, screen for Cygwin seems to be broken for serial ports, but you
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
734 can try it...
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
735
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
736 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
737 $ screen /dev/ttyS2
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
738 # Might be a different file, ttyS0, ttyACM0, ttyUSB0, etc.
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
739 ```
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
740
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
741 Gnu screen doesn't seem to echo all the characters (it works though).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
742 I believe it's a problem with stty, but I don't know how to fix it...
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
743
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
744 ### Mac OS X
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
745
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
746 I recommend screen (can be installed via Macports).
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
747
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
748 ```bash
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
749 $ screen /dev/tty.<usb something>
a2df35fa4f0b Updating the README to be of a more reasonable length.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
750 ```