aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md147
1 files changed, 85 insertions, 62 deletions
diff --git a/README.md b/README.md
index 3b700970f..39abe7180 100644
--- a/README.md
+++ b/README.md
@@ -66,35 +66,43 @@ You can find some keyboard specific projects under `converter` and `keyboard` di
66 66
67 67
68 68
69Build & Program 69Download and Install
70--------------- 70--------------------
71### Install Tools 71### 1. Install Tools
72First, you need tools to build firmware and program your controller. I assume you are on Windows here. 72First, you need tools to build firmware and program your controller. I assume you are on Windows here.
73 73
741. Install [WinAVR][winavr]. This is old but works well for this purpose. `WinAVR` is a tool set to build firmware including C compiler(gcc) and make commands. You can use [CrossPack][crosspack] instead if you are on Mac. 741. **Toolchain** Install [WinAVR][winavr]. This is old but works well for this purpose. `WinAVR` is a tool set to build firmware including C compiler(gcc) and make commands. You can use [CrossPack][crosspack] instead if you are on Mac.
75 75
762. Install [Atmel FLIP][flip]. `FLIP` is a tool to program(load) firmware into AVR controller(ATMega32u4) via DFU bootloader. ATMega32u4 has DFU bootloader by factory default. You can use [dfu-programmer][dfu-prog] instead if you are on Mac. 762. **Programmer** Install [Atmel FLIP][flip]. `FLIP` is a tool to program(load) firmware into AVR controller via DFU bootloader. AVR USB chips including ATmega32U4 has DFU bootloader by factory default. You can also use [dfu-programmer][dfu-prog] instead if you are on Mac or Linux.
77 77
783. Install driver for DFU bootloader. At first time you start DFU bootloader on Chip 'Found New Hardware Wizard' will come up on Windows. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you shall need to update its driver on 'Device Manager'. You will find the driver in `FLIP` install directory like: C:\Program Files (x86)\Atmel\Flip 3.4.5\usb\. If you use `dfu-programmer` install its driver. 783. **Driver** At first time you start DFU bootloader on Chip 'Found New Hardware Wizard' will come up on Windows. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you shall need to update its driver on 'Device Manager'. You will find the driver in `FLIP` install directory like: C:\Program Files (x86)\Atmel\Flip 3.4.5\usb\. If you use `dfu-programmer` install its driver.
79 79
80If you use PJRC Teensy you don't need step 2 and 3, just get [Teensy loader][teensy-loader]. 80If you use PJRC Teensy you don't need step 2 and 3 above, just get [Teensy loader][teensy-loader].
81 81
82 82
83### Download source 83### 2. Download source
84You can find firmware source at github: https://github.com/tmk/tmk_keyboard 84You can find firmware source at github:
85 85
86If you are familiar with `Git` tools you are recommended to use it. 86- <https://github.com/tmk/tmk_keyboard>
87If not you can download zip archive from: https://github.com/tmk/tmk_keyboard/archive/master.zip
88 87
88If you are familiar with `Git` tools you are recommended to use it but you can also download zip archive from:
89 89
90### Build firmware 90- <https://github.com/tmk/tmk_keyboard/archive/master.zip>
911. Open terminal window to get access to commands. You can use `cmd` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in Run command dialog showing up.
92 91
932. Move to project directory in the firmware source.
94 92
95 cd tmk_keyboard/{keyboard or converter}/<project> 93Build firmware
94--------------
95### 1. Open terminal
96Open terminal window to get access to commands. You can use `cmd` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in 'Run command' dialog showing up.
97
98### 2. Change directory
99Move to project directory in the firmware source.
100
101 cd tmk_keyboard/{'keyboard' or 'converter'}/<project>
102
103### 3. Make
104Build firmware using GNU `make` command. You'll see `<project>_<variant>.hex` file in that directory unless something unexpected occurs in build process.
96 105
973. Build firmware using GNU `make` command. You'll see <project>_<variant>.hex file in that directory unless something unexpected occurs in build process.
98 106
99 mkae -f Makefile.<variant> clean 107 mkae -f Makefile.<variant> clean
100 make -f Makefile.<variant> 108 make -f Makefile.<variant>
@@ -102,36 +110,28 @@ If not you can download zip archive from: https://github.com/tmk/tmk_keyboard/ar
102 110
103 111
104 112
105### Program Controller 113Program Controller
106Sock AVR USB chip including ATmega32U4 has DFU bootloader by factory default, you can use DFU tools for this purpose. `FLIP` is a DFU tool on Windows offered by Atmel. Open source command line DFU tool `dfu-programmer` also supports AVR chips, which run on Linux, Mac OSX and even Windows. If you have a PJRC Teensy you should use `Teensy Loader`. 114------------------
115Now you have **hex** file to program on current directory. This **hex** is only needed to program your controller, other files are used for development and you may leave and forget them.
116
117### 1. Start bootloader
118How to program controller depends on controller chip and its board design. To program AVR USB chips you'll need to start it up in bootloader mode. Most of boards with the chip have a push button to let bootloader come up. Consult with your controller board manual.
119
120### 2. Program with DFU bootloader
121Stock AVR USB chip including ATmega32U4 has DFU bootloader by factory default. `FLIP` is a DFU programmer on Windows offered by Atmel. Open source command line tool `dfu-programmer` also supports AVR chips, it runs on Linux, Mac OSX and even Windows.
107 122
108#### DFU bootloader
109To program AVR chip with DFU bootloader use `FLIP` or `dfu-programmer`. 123To program AVR chip with DFU bootloader use `FLIP` or `dfu-programmer`.
110If you have a proper program command in `Makefile` just type this. 124If you have a proper program command in `Makefile` just type this.
111 125
112`FLIP` has two version of tool, GUI app and command line program. If you want GUI see tutorial section below. 126`FLIP` has two version of tool, GUI app and command line program. If you want GUI see tutorial below.
113To use command line tool run this command. Note that you need to set PATH variable properly. 127To use command line tool run this command. Note that you need to set PATH variable properly.
114 128
115 $ make -f Makefile.<variant> flip 129 $ make -f Makefile.<variant> flip
116 130
117To program with `dfu-programmer` run: 131Or to program with `dfu-programmer` run:
118 132
119 $ make -f Makefile.<variant> dfu 133 $ make -f Makefile.<variant> dfu
120 134
121#### Teensy
122If you have PJRC Teensy see instruction of `Teensy Loader` at: <http://www.pjrc.com/teensy/loader.html>
123Or use this command if you have command line version of Teensy Loader installed.
124
125 $ make -f Makefile.<variant> teensy
126
127
128#### Other programmer
129You may want to use other you favorite programmer like `avrdude` with AVRISPmkII, Aruduino or USBasp. In that case you can still use make target `program` for build with configuring PROGRAM_CMD in Makefile.
130
131 $ make -f Makefile.<variant> program
132
133
134
135#### FLIP GUI tutorial 135#### FLIP GUI tutorial
1361. On menu bar click Device -> Select, then. `ATmega32u4`. 1361. On menu bar click Device -> Select, then. `ATmega32u4`.
1372. On menu bar click Settings -> Communication -> USB, then click 'Open' button on 'USB Port Connection' dialog. 1372. On menu bar click Settings -> Communication -> USB, then click 'Open' button on 'USB Port Connection' dialog.
@@ -148,6 +148,22 @@ See also these instaructions if you need.
148- <http://www.atmel.com/Images/doc7769.pdf> 148- <http://www.atmel.com/Images/doc7769.pdf>
149 149
150 150
151### 3. Program with Teensy Loader
152If you have PJRC Teensy see instruction of `Teensy Loader`.
153
154- <http://www.pjrc.com/teensy/loader.html>
155
156Or use this command if you have command line version of Teensy Loader installed.
157
158 $ make -f Makefile.<variant> teensy
159
160
161### 4. Program with Other programmer
162You may want to use other programmer like `avrdude` with AVRISPmkII, Aruduino or USBasp. In that case you can still use make target `program` for build with configuring `PROGRAM_CMD` in Makefile.
163
164 $ make -f Makefile.<variant> program
165
166
151[winavr]: http://winavr.sourceforge.net/ 167[winavr]: http://winavr.sourceforge.net/
152[crosspack]: http://www.obdev.at/products/crosspack/index.html 168[crosspack]: http://www.obdev.at/products/crosspack/index.html
153[flip]: http://www.atmel.com/tools/FLIP.aspx 169[flip]: http://www.atmel.com/tools/FLIP.aspx
@@ -164,8 +180,14 @@ Makefile Options
164 #MCU = at90usb1286 # Teensy++ 2.0 180 #MCU = at90usb1286 # Teensy++ 2.0
165 F_CPU = 16000000 181 F_CPU = 16000000
166 182
183 # Boot Section Size in *bytes*
184 # Teensy halfKay 512
185 # Atmel DFU loader 4096
186 # LUFA bootloader 4096
187 OPT_DEFS += -DBOOTLOADER_SIZE=4096
188
167### 2. Features 189### 2. Features
168Note that ***comment out*** to disable them. 190Optional. Note that ***comment out*** to disable them.
169 191
170 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 192 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
171 MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 193 MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
@@ -174,46 +196,33 @@ Note that ***comment out*** to disable them.
174 COMMAND_ENABLE = yes # Commands for debug and configuration 196 COMMAND_ENABLE = yes # Commands for debug and configuration
175 SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 197 SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
176 #NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA 198 #NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
177 #PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
178 199
179### 3. Programmer 200### 3. Programmer
180Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. 201Optional. Set proper command for your controller, bootloader and programmer. This command can be used with `make program`. Not needed if you use `FLIP`, `dfu-programmer` or `Teesy Loader`.
181
182 # for PJRC Teensy
183 PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
184 202
185 # for Atmel chip with DFU bootloader 203 # avrdude with AVRISPmkII
186 PROGRAM_CMD = dfu-programmer $(MCU) flash $(TARGET).hex
187
188 # avrdude with other methods
189 PROGRAM_CMD = avrdude -p $(MCU) -c avrispmkII -P USB -U flash:w:$(TARGET).hex 204 PROGRAM_CMD = avrdude -p $(MCU) -c avrispmkII -P USB -U flash:w:$(TARGET).hex
205
206 # avrdude with USBaspLoader
190 PROGRAM_CMD = avrdude -p $(MCU) -c usbasp -U flash:w:$(TARGET).hex 207 PROGRAM_CMD = avrdude -p $(MCU) -c usbasp -U flash:w:$(TARGET).hex
208
209 # avrdude with arduino
191 PROGRAM_CMD = avrdude -p $(MCU) -c arduino -P COM1 -b 57600 -U flash:w:$(TARGET).hex 210 PROGRAM_CMD = avrdude -p $(MCU) -c arduino -P COM1 -b 57600 -U flash:w:$(TARGET).hex
192 211
193 212
194 213
195Config.h Options 214Config.h Options
196---------------- 215----------------
197### 1. USB vendor/product ID and device description 216### 1. Magic command key combination
198 #define VENDOR_ID 0xFEED
199 #define PRODUCT_ID 0xBEEF
200 /* device description */
201 #define MANUFACTURER t.m.k.
202 #define PRODUCT Macway mod
203 #define DESCRIPTION t.m.k. keyboard firmware for Macway mod
204 217
205### 2. Keyboard matrix configuration 218 #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT)))
206 #define MATRIX_ROWS 8
207 #define MATRIX_COLS 8
208 #define MATRIX_HAS_GHOST
209
210### 3. Mouse keys
211
212### 4. PS/2 mouse
213 219
214### 5. COMMAND key combination 220### 2. Mechanical Locking Support for CapsLock
215 221
216 #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT))) 222 /* Mechanical locking CapsLock support. Use KC_LCAP instead of KC_CAPS in keymap */
223 #define CAPSLOCK_LOCKING_ENABLE
224 /* Locking CapsLock resynchronize hack */
225 #define CAPSLOCK_LOCKING_RESYNC_ENABLE
217 226
218 227
219Change your keymap 228Change your keymap
@@ -311,6 +320,20 @@ To enable this feature define these two macros in `config.h` and use `KC_LCAP` f
311Start Your Own Project 320Start Your Own Project
312----------------------- 321-----------------------
313**TBD** 322**TBD**
323### Config.h Options
324#### 1. USB vendor/product ID and device description
325 #define VENDOR_ID 0xFEED
326 #define PRODUCT_ID 0xBEEF
327 /* device description */
328 #define MANUFACTURER t.m.k.
329 #define PRODUCT Macway mod
330 #define DESCRIPTION t.m.k. keyboard firmware for Macway mod
331
332#### 2. Keyboard matrix configuration
333 #define MATRIX_ROWS 8
334 #define MATRIX_COLS 8
335 #define MATRIX_HAS_GHOST
336
314 337
315 338
316 339