995c3141a674a0311786cc713ea96d39330a9b48
- Author
- Jack Humbert <jack.humb@gmail.com>
- Committer
- Jack Humbert <jack.humb@gmail.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/docs/_summary.md b/docs/_summary.md
2new file mode 100644
3index 0000000000000000000000000000000000000000..420003996f171944d85dee52a336fc0ac25c8d57
4--- /dev/null
5+++ b/docs/_summary.md
6@@ -0,0 +1,28 @@
7+
8+### Getting started
9+* [Introduction](home.md)
10+* [QMK Overview](qmk_overview.md)
11+* [Build Environment Setup](build_environment_setup.md)
12+
13+### Making a keymap
14+* [Keymap overview](keymap.md)
15+* [Custom Quantum Functions](custom_quantum_functions.md)
16+* [Keycodes](keycodes.md)
17+* [Layer switching](key_functions.md)
18+* [Leader Key](leader_key.md)
19+* [Macros](macros.md)
20+* [Dynamic Macros](dynamic_macros.md)
21+* [Space Cadet](space_cadet_shift.md)
22+* [Tap Dance](tap_dance.md)
23+* [Mouse keys](mouse_keys.md)
24+* [FAQ: Creating a Keymap](faq_keymap.md)
25+* [FAQ: Compiling QMK](faq_build.md)
26+
27+### For hardware makers and modders
28+* [Modding your keyboard](modding_your_keyboard.md)
29+* [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md)
30+* [Adding features to QMK](adding_features_to_qmk.md)
31+
32+### Other topics
33+* [General FAQ](faq.md)
34+* [Differences from TMK](differences_from_tmk.md)
35diff --git a/docs/pcb_guide.md b/docs/pcb_guide.md
36new file mode 100644
37index 0000000000000000000000000000000000000000..e07a114888844b831fafe6088354725fd1bd58ee
38--- /dev/null
39+++ b/docs/pcb_guide.md
40@@ -0,0 +1,151 @@
41+# Planck Firmware Guide
42+
43+## Setting up the environment
44+
45+### Windows
46+1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
47diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md
48new file mode 100644
49index 0000000000000000000000000000000000000000..6f291a432d628eb9965fa319e0ea91db853057af
50--- /dev/null
51+++ b/docs/porting_your_keyboard_to_qmk.md
52@@ -0,0 +1,59 @@
53diff --git a/docs/porting_your_keyboard_to_qmk_(arm_and_other_chibios_cpus).md b/docs/porting_your_keyboard_to_qmk_(arm_and_other_chibios_cpus).md
54new file mode 100644
55index 0000000000000000000000000000000000000000..436c73cb7696d6e2539bf3fea87deb213fa606e9
56--- /dev/null
57+++ b/docs/porting_your_keyboard_to_qmk_(arm_and_other_chibios_cpus).md
58@@ -0,0 +1,70 @@
59+Setting up your ARM based PCB is a little more involved than an Atmel MCU, but is easy enough. Start by using `util/new_project.sh <keyboard>` to create a new project:
60+
61+```
62+$ util/new_project.sh simontester
63+######################################################
64+# /keyboards/simontester project created. To start
65+# working on things, cd into keyboards/simontester
66+######################################################
67+```
68+
69+
70+
71+# END OF NEW ARM DOC, OLD ATMEL DOC FOLLOWS
72+
73+## `/keyboards/<keyboard>/config.h`
74+
75+The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine.
76+
77diff --git a/docs/power.txt b/docs/power.txt
78new file mode 100644
79index 0000000000000000000000000000000000000000..0abbbe48e832a5ca2f943f0f75d0272a3a661178
80--- /dev/null
81+++ b/docs/power.txt
82@@ -0,0 +1,62 @@
83+Time to Sleep
84+=============
85+USB suspend no activity on USB line for 3ms
86+No Interaction no user interaction
87+ matrix has no change
88+ matrix has no switch on
89+
90+
91+AVR Power Management
92+====================
93+
94+V-USB suspend
95+ USB suspend
96+ http://vusb.wikidot.com/examples
97+
98+MCUSR MCU Status Register
99+ WDRF Watchdog Reset Flag
100+ BORF
101+ EXTRF
102+ PORF Power-on Reset Flag
103+
104+SMCR Sleep Mode Control Register
105+ SE Sleep Enable
106+ SM2:0
107+ #define set_sleep_mode(mode) \
108+ #define SLEEP_MODE_IDLE (0)
109+ #define SLEEP_MODE_ADC _BV(SM0)
110+ #define SLEEP_MODE_PWR_DOWN _BV(SM1)
111+ #define SLEEP_MODE_PWR_SAVE (_BV(SM0) | _BV(SM1))
112+ #define SLEEP_MODE_STANDBY (_BV(SM1) | _BV(SM2))
113+ #define SLEEP_MODE_EXT_STANDBY (_BV(SM0) | _BV(SM1) | _BV(SM2))
114+
115+
116+ACSR Analog Comparator Control and Status Register
117+ To disable Analog Comparator
118+ ACSR = 0x80;
119+ or
120+ ACSR &= ~_BV(ACIE);
121+ ACSR |= _BV(ACD);
122+
123+ ACD: Analog Comparator Disable
124+ When this bit is written logic one, the power to the Analog Comparator is
125+ switched off. This bit can be set at any time to turn off the Analog
126+ Comparator. This will reduce power consumption in Active and Idle mode.
127+ When changing the ACD bit, the Analog Comparator Interrupt must be disabled
128+ by clearing the ACIE bit in ACSR. Otherwise an interrupt can occur when
129+ the bit is changed.
130+
131+DIDR1 Digital Input Disable Register 1
132+ AIN1D
133+ AIN0D
134diff --git a/docs/previously_asked_questions.asciidoc b/docs/previously_asked_questions.asciidoc
135new file mode 100644
136index 0000000000000000000000000000000000000000..36af1f203598a7c625927cfc260ee1f5f2a8a331
137--- /dev/null
138+++ b/docs/previously_asked_questions.asciidoc
139@@ -0,0 +1,14 @@
140+= Previously Asked Questions
141+:toc:
142+:toc-placement: preamble
143+
144+toc::[]
145+
146+= Question thread
147+http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html
148+
149+= Questions
150+== Columns beyond 16(uint16_t) cannot be read
151+* https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16
152+* http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051
153+* http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
154diff --git a/docs/qmk_overview.md b/docs/qmk_overview.md
155new file mode 100644
156index 0000000000000000000000000000000000000000..6fdb68c49fbef4f076d144d8938732f2cb73598c
157--- /dev/null
158+++ b/docs/qmk_overview.md
159@@ -0,0 +1,75 @@
160+# QMK Overview
161+
162+This page attempts to explain the basic information you need to know to work with the QMK project. It assumes that you are familiar with navigating a UNIX shell, but does not assume you are familiar with C or with compiling using make.
163+
164+# Basic QMK structure
165+
166diff --git a/docs/report_descriptor.md b/docs/report_descriptor.md
167new file mode 100644
168index 0000000000000000000000000000000000000000..fd5e96c67d39e6c951819fa2fb92b179dc74d084
169--- /dev/null
170+++ b/docs/report_descriptor.md
171@@ -0,0 +1 @@
172+# Get Report Descriptor with lsusb
173diff --git a/docs/space_cadet_shift.md b/docs/space_cadet_shift.md
174new file mode 100644
175index 0000000000000000000000000000000000000000..a1ec256defafd8e8c69c4db99bab36fffd8fb10a
176--- /dev/null
177+++ b/docs/space_cadet_shift.md
178@@ -0,0 +1,24 @@
179+## Space Cadet Shift: The future, built in
180+
181diff --git a/docs/tap_dance.md b/docs/tap_dance.md
182new file mode 100644
183index 0000000000000000000000000000000000000000..25827a6485d813db82dd5ea5b0f8a05064e30947
184--- /dev/null
185+++ b/docs/tap_dance.md
186@@ -0,0 +1,144 @@
187+# Tap Dance: A single key can do 3, 5, or 100 different things
188+
189diff --git a/docs/test_for_asciidoc.asciidoc b/docs/test_for_asciidoc.asciidoc
190new file mode 100644
191index 0000000000000000000000000000000000000000..ce57d2781b91be6ab3963d2cd9c3cec259260de0
192--- /dev/null
193+++ b/docs/test_for_asciidoc.asciidoc
194@@ -0,0 +1,17 @@
195+
196+
197+
198+.Makefile
199+[source,Makefile]
200+----
201+# Build Options
202+# comment out to disable the options.
203+#
204+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
205+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
206+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
207+CONSOLE_ENABLE = yes # Console for debug(+400)
208+COMMAND_ENABLE = yes # Commands for debug and configuration
209+#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
210+NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
211+----
212diff --git a/docs/tmk_based_projects.md b/docs/tmk_based_projects.md
213new file mode 100644
214index 0000000000000000000000000000000000000000..0597b04c38bf6720b0819d810834e67f8ea6a483
215--- /dev/null
216+++ b/docs/tmk_based_projects.md
217@@ -0,0 +1,34 @@
218+## TMK based projects
219+Add your project here!
220+See https://github.com/tmk/tmk_keyboard/issues/173
221+
222+### keyboards
223+**S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq:
224+- https://github.com/VinnyCordeiro/tmk_keyboard
225+
226+**Octagon V1**: Korean custom keyboard designed by Duck.
227+- https://github.com/xauser/tmk_keyboard/tree/xauser
228+
229+**Compact L3**: Custom keyboard designed by LifeZone and LeeKu.
230+- https://github.com/xauser/tmk_keyboard/tree/xauser
231+
232+**KMAC, 1,2 and Happy**: Custom keyboard designed by kbdmania.
233+- https://github.com/ageaenes/tmk_keyboard
234+
235+**P60**: [DIY wired 60% keyboard](https://imgur.com/a/zwsDN) by [p3lim](https://github.com/p3lim).
236+- https://github.com/p3lim/keyboard_firmware
237+
238+**Nerd, Kitten Paw, Lightsaber, Phantom, Lightpad, Ergodox** on [xauser](https://github.com/xauser)'s repository
239+- https://github.com/xauser/tmk_keyboard/tree/xauser
240+
241+**ErgoDox** on [cub-unanic](https://github.com/cub-uanic)'s repository
242+- https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox
243+
244+**Atreus** by [technomancy](https://atreus.technomancy.us)
245+- https://github.com/technomancy/tmk_keyboard/tree/atreus/keyboard/atreus
246+
247+**[mcdox](https://github.com/DavidMcEwan/mcdox)**
248+- https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox
249+
250+
251+### converters
252diff --git a/docs/tmk_own_projects.md b/docs/tmk_own_projects.md
253new file mode 100644
254index 0000000000000000000000000000000000000000..fb5b2c99061305c9af896921286367de7e3f3760
255--- /dev/null
256+++ b/docs/tmk_own_projects.md
257@@ -0,0 +1,69 @@
258+## TMK own projects by hasu
259+Located in [tmk_keyboard](https://github.com/tmk/tmk_keyboard/tree/master/) repository.
260+
261+### converter
262+* [ps2_usb] - [PS/2 keyboard to USB][GH_ps2]
263+* [adb_usb] - [ADB keyboard to USB][GH_adb]
264+* [m0110_usb] - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110]
265+* [terminal_usb] - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal]
266+* [news_usb] - [Sony NEWS keyboard to USB][GH_news]
267+* [x68k_usb] - [Sharp X68000 keyboard to USB][GH_x68k]
268+* [sun_usb] - [Sun] to USB(type4, 5 and 3?)
269+* [pc98_usb] - [PC98] to USB
270+* [usb_usb] - USB to USB(experimental)
271+* [ascii_usb] - ASCII(Serial console terminal) to USB
272+* [ibm4704_usb] - [IBM 4704 keyboard Converter][GH_ibm4704]
273+
274+### keyboard
275+* [hhkb] - [Happy Hacking Keyboard pro][GH_hhkb]
276+* [gh60] - [GH60][GH60_diy] DIY 60% keyboard [prototype][GH60_proto]
277+* [hbkb] - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod)
278+* [hid_liber] - [HID liberation][HID_liber] controller (by alaricljs)
279+* [phantom] - [Phantom] keyboard (by Tranquilite)
280+* [IIgs_Standard] - Apple [IIGS] keyboard mod(by JeffreySung)
281+* [macway] - [Compact keyboard mod][GH_macway] [retired]
282+* [KMAC] - Korean custom keyboard
283+* [Lightsaber] - Korean custom keyboard
284+
285+[ps2_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ps2_usb/
286+[adb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb/
287+[m0110_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb
288+[terminal_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/terminal_usb/
289+[news_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/news_usb/
290+[x68k_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/x68k_usb/
291+[sun_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb/
292+[pc98_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/pc98_usb/
293+[usb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/
294+[ascii_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ascii_usb/
295+[ibm4704_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ibm4704_usb
296+[hhkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hhkb/
297+[gh60]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/gh60/
298+[hbkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hbkb/
299+[hid_liber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hid_liber/
300+[phantom]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/phantom/
301+[IIgs_Standard]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/IIgs/
302+[macway]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/macway/
303+[KMAC]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/kmac/
304+[Lightsaber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/lightsaber/
305+
306+[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930
307+[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047
308+[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618
309+[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290
310+[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851
311+[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965
312+[GH_news]: http://geekhack.org/showwiki.php?title=Island:25759
313+[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272
314+[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060
315+[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483
316+[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0
317+[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions
318+[Phantom]: http://geekhack.org/index.php?topic=26742
319+[GH60_diy]: http://geekhack.org/index.php?topic=34959
320+[GH60_proto]: http://geekhack.org/index.php?topic=37570.0
321+[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801
322+[Sun]: http://en.wikipedia.org/wiki/Sun-3
323+[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS
324+
325+
326+See other [[TMK Based Projects]]
327diff --git a/docs/tmk_readme.md b/docs/tmk_readme.md
328new file mode 100644
329index 0000000000000000000000000000000000000000..85cf68d571adfacb96e40d1affdf8e7df024d4f0
330--- /dev/null
331+++ b/docs/tmk_readme.md
332@@ -0,0 +1,243 @@
333+# TMK Documenation
334+
335+Features
336+--------
337+These features can be used in your keyboard.
338+
339+* Multi-layer Keymap - Multiple keyboard layouts with layer switching
340+* Mouse key - Mouse control with keyboard
341+* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up
342+* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc
343+* USB NKRO - 120 keys(+ 8 modifiers) simultaneously
344+* PS/2 mouse support - PS/2 mouse(TrackPoint) as composite device
345+* Keyboard protocols - PS/2, ADB, M0110, Sun and other old keyboard protocols
346+* User Function - Customizable function of key with writing code
347+* Macro - Very primitive at this time
348+* Keyboard Tricks - Oneshot modifier and modifier with tapping feature
349+* Debug Console - Messages for debug and interaction with firmware
350+* Virtual DIP Switch - Configurations stored EEPROM(Boot Magic)
351+* Locking CapsLock - Mechanical switch support for CapsLock
352+* Breathing Sleep LED - Sleep indicator with charm during USB suspend
353+* Backlight - Control backlight levels
354+
355+
356+
357+Projects
358+--------
359+You can find some keyboard specific projects under `converter` and `keyboard` directory.
360+
361+## Main projects
362+
363+### OLKB products
364+* [planck](keyboards/planck/) - [Planck] Ortholinear 40% keyboard
365+* [preonic](keyboards/preonic/) - [Preonic] Ortholinear 50% keyboard
366+* [atomic](keyboards/atomic/) - [Atomic] Ortholinear 60% keyboard
367+
368+### Ergodox EZ
369+* [ergodox_ez](keyboards/ergodox/ez) - [Ergodox_EZ] Assembled split keyboard
370+
371+## Other projects
372+
373+### converter
374+* [ps2_usb](converter/ps2_usb/) - [PS/2 keyboard to USB][GH_ps2]
375+* [adb_usb](converter/adb_usb/) - [ADB keyboard to USB][GH_adb]
376+* [m0110_usb](converter/m0110_usb) - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110]
377+* [terminal_usb](converter/terminal_usb/) - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal]
378+* [news_usb](converter/news_usb/) - [Sony NEWS keyboard to USB][GH_news]
379+* [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k]
380+* [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?)
381+* [pc98_usb](converter/pc98_usb/) - [PC98] to USB
382+* [usb_usb](converter/usb_usb/) - USB to USB(experimental)
383+* [ascii_usb](converter/ascii_usb/) - ASCII(Serial console terminal) to USB
384+* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard Converter][GH_ibm4704]
385+
386+### keyboard
387+* [hhkb](keyboards/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] hasu's main board
388+* [gh60](keyboards/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] hasu's second board
389+* [hbkb](keyboards/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod)
390+* [hid_liber](keyboards/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs)
391+* [phantom](keyboards/phantom/) - [Phantom] keyboard (by Tranquilite)
392+* [IIgs_Standard](keyboards/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung)
393+* [macway](keyboards/macway/) - [Compact keyboard mod][GH_macway] [retired]
394+* [KMAC](keyboards/kmac/) - Korean custom keyboard
395+* [Lightsaber](keyboards/lightsaber/) - Korean custom keyboard
396+* [Infinity](keyboards/infinity/) - Massdrop [Infinity keyboard][Infinity]
397+* [NerD](keyboards/nerd/) - Korean custom keyboard
398+* [KittenPaw](keyboards/kitten_paw) - Custom Majestouch controller
399+* [Lightpad](keyboards/lightpad) - Korean custom keypad
400+* [ghost_squid](keyboards/ghost_squid/) - [The Ghost Squid][ghost_squid] controller for [Cooler Master QuickFire XT][cmxt]
401+
402+### Extenal projects using tmk_keyboard
403+* [ErgoDox_cub-uanic][cub-uanic] - Split Ergonomic Keyboard [ErgoDox][ergodox_org]
404+* [mcdox][mcdox_tmk] - [mcdox][mcdox]
405+
406+
407+[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930
408+[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047
409+[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618
410+[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290
411+[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851
412+[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965
413+[GH_news]: http://geekhack.org/showwiki.php?title=Island:25759
414+[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272
415+[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060
416+[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483
417+[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0
418+[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions
419+[Phantom]: http://geekhack.org/index.php?topic=26742
420+[GH60]: http://geekhack.org/index.php?topic=34959
421+[GH60_proto]: http://geekhack.org/index.php?topic=37570.0
422+[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801
423+[Sun]: http://en.wikipedia.org/wiki/Sun-3
424+[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS
425+[Infinity]: https://www.massdrop.com/buy/infinity-keyboard-kit
426+[ghost_squid]: http://deskthority.net/wiki/Costar_replacement_controllers#The_Ghost_Squid
427+[cmxt]: http://gaming.coolermaster.com/en/products/keyboard/quickfirext/
428+[ergodox_org]: http://ergodox.org/
429+[cub-uanic]: https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox
430+[mcdox]: https://github.com/DavidMcEwan/mcdox
431+[mcdox_tmk]: https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox
432diff --git a/docs/unicode_and_additional_language_support.md b/docs/unicode_and_additional_language_support.md
433new file mode 100644
434index 0000000000000000000000000000000000000000..562dae4b5c0d34dc89dac4e4f1810ac1bd5efb6f
435--- /dev/null
436+++ b/docs/unicode_and_additional_language_support.md
437@@ -0,0 +1,54 @@
438+## Unicode support
439+
440+There are three Unicode keymap definition method available in QMK:
441+
442+### UNICODE_ENABLE
443+
444+Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in
445+keymap file, where *n* is a 4 digit hexadecimal.
446+
447+### UNICODEMAP_ENABLE
448+
449+Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping
450+table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file.
451+The keycode function is `X(n)` where *n* is the array index of the mapping
452+table.
453+
454+### UCIS_ENABLE
455+
456+TBD
457+
458+Unicode input in QMK works by inputing a sequence of characters to the OS,
459+sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted.
460+
461+This is the current list of Unicode input method in QMK:
462+
463+* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex.
464+* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else.
465diff --git a/docs/unit_testing.md b/docs/unit_testing.md
466new file mode 100644
467index 0000000000000000000000000000000000000000..3eac6250971d10abde8ad0855d7007bb5e3d0e7f
468--- /dev/null
469+++ b/docs/unit_testing.md
470@@ -0,0 +1,68 @@
471+# Unit Testing
472+
473+If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations.
474+
475+Instead I recommend these two books, explaining two different styles of Unit Testing in detail.
476+
477+* "Test Driven Development: By Example: Kent Beck"
478+* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce"
479+
480diff --git a/docs/usb_hid.md b/docs/usb_hid.md
481new file mode 100644
482index 0000000000000000000000000000000000000000..1d0c45869551055bf57e197a2b738317d988432e
483--- /dev/null
484+++ b/docs/usb_hid.md
485@@ -0,0 +1,11 @@
486+# Getting Report Descriptor
487+```
488+ $ cd /sys/bus/usb/drivers/usbhid
489+ $ ls
490+ 1-1.3.4:1.0 1-1.3.4:1.2 bind new_id uevent
491+ 1-1.3.4:1.1 1-1.3.4:1.3 module remove_id unbind
492+ $ echo -n 1-1.4\:1.0 | sudo tee unbind
493+ $ sudo lsusb -vvv -d 046d:c01d
494+ $ echo -n 1-1.4\:1.0 | sudo tee bind
495+```
496+
497diff --git a/docs/usb_nkro.txt b/docs/usb_nkro.txt
498new file mode 100644
499index 0000000000000000000000000000000000000000..d9f1d122921441ce13c8d42c9683e93fe12490d0
500--- /dev/null
501+++ b/docs/usb_nkro.txt
502@@ -0,0 +1,160 @@
503+USB NKRO MEMO
504+=============
505+2010/12/09
506+
507+
508+References
509+----------
510+USB - boot mode, NKRO, compatibility, etc...
511+ http://geekhack.org/showthread.php?t=13162
512+NKey Rollover - Overview, Testing Methodology, and Results
513+ http://geekhack.org/showwiki.php?title=NKey+Rollover+-+Overview+Testing+Methodology+and+Results
514+dfj's NKRO(2010/06)
515+ http://geekhack.org/showpost.php?p=191195&postcount=251
516+ http://geekhack.org/showthread.php?p=204389#post204389
517+
518+
519+Terminology
520+---------
521+NKRO
522+ghost
523+matrix
524+mechanical with diodes
525+membrane
526+
527+
528+OS Support Status
529+-----------------
530+USB NKRO is possible *without* a custom driver.
531+At least following OS's supports.
532+ Windows7 64bit
533+ WindowsXP
534+ Windows2000 SP4
535+ Ubuntu10.4(Linux 2.6)
536+ MacOSX(To be tested)
537+
538+
539+Custom Driver for USB NKRO
540+--------------------------
541+NOT NEEDED
542+at least when using following report formats on Windows, Linux or MacOSX.
543+
544+
545+USB NKRO methods
546+----------------
547+1. Virtual keyboards
548+ Keyboard can increase its KRO by using virtual keyboards with Standard or Extended report.
549+ If the keyboard has 2 virtual keyboard with Standard report(6KRO), it gets 12KRO.
550+ Using this method means the keyboard is a composite device.
551+
552+2. Extended report
553+ It needs large report size for this method to achieve NKRO.
554+ If a keyboard has 101keys, it needs 103byte report. It seems to be inefficient.
555+
556+3. Bitmap report
557+ If the keyboard has less than 128keys, 16byte report will be enough for NKRO.
558+ The 16byte report seems to be reasonable cost to get NKRO.
559+
560+
561+Report Format
562+-------------
563+Other report formats than followings are possible, though these format are typical one.
564+
565+1. Standard 8bytes
566+ modifiers(bitmap) 1byte
567+ reserved 1byte(not used)
568+ keys(array) 1byte*6
569+Standard report can send 6keys plus 8modifiers simultaneously.
570+Standard report is used by most keyboards in the marketplace.
571+Standard report is identical to boot protocol report.
572+Standard report is hard to suffer from compatibility problems.
573+
574+2. Extended standard 16,32,64bytes
575+ modifiers(bitmap) 1byte
576+ reserved 1byte(not used)
577+ keys(array) 1byte*(14,32,62)
578+Extended report can send N-keys by using N+2bytes.
579+Extended report is expected to be compatible with boot protocol.
580+
581+3. Bitmap 16,32,64bytes
582+ keys(bitmap) (16,32)bytes
583+Bitmap report can send at most 128keys by 16bytes and 256keys by 32bytes.
584+Bitmap report can achieve USB NKRO efficiently in terms of report size.
585+Bitmap report needs a deliberation for boot protocol implementation.
586+Bitmap report descriptor sample:
587+ 0x05, 0x01, // Usage Page (Generic Desktop),
588+ 0x09, 0x06, // Usage (Keyboard),
589+ 0xA1, 0x01, // Collection (Application),
590+ // bitmap of modifiers
591+ 0x75, 0x01, // Report Size (1),
592+ 0x95, 0x08, // Report Count (8),
593+ 0x05, 0x07, // Usage Page (Key Codes),
594+ 0x19, 0xE0, // Usage Minimum (224),
595+ 0x29, 0xE7, // Usage Maximum (231),
596+ 0x15, 0x00, // Logical Minimum (0),
597+ 0x25, 0x01, // Logical Maximum (1),
598+ 0x81, 0x02, // Input (Data, Variable, Absolute), ;Modifier byte
599+ // LED output report
600+ 0x95, 0x05, // Report Count (5),
601+ 0x75, 0x01, // Report Size (1),
602diff --git a/docs/vagrant_guide.md b/docs/vagrant_guide.md
603new file mode 100644
604index 0000000000000000000000000000000000000000..61cd0815bf7067b3c940d5860fdfa422235a25b1
605--- /dev/null
606+++ b/docs/vagrant_guide.md
607@@ -0,0 +1,27 @@
608+# Quick Start Directions
609+