aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox/readme.md165
-rw-r--r--readme.md4
2 files changed, 144 insertions, 25 deletions
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md
index a96e415de..3bbe98fd6 100644
--- a/keyboards/ergodox/readme.md
+++ b/keyboards/ergodox/readme.md
@@ -1,33 +1,137 @@
1# Getting started 1# The Easy Way
2 2
3There are two main ways you could customize the ErgoDox (EZ and Infinity) 3If you can find firmware someone else has made that does what you want, that
4is the easiest way to customize your ErgoDox. It requires no programming
5experience or the setup of a build environment.
4 6
5## The Easy Way: Use an existing firmware file and just flash it (ErgoDox EZ only) 7Quickstart:
6 8
71. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Some Linux distributions already provide a binary (may be called `teensy-loader-cli`), so you may prefer to use this. 9 - Find and download an existing firmware
82. Find a firmware file you like. There are [dozens of community-contributed keymaps](http://qmk.fm/keyboards/ergodox/) you can browse and download. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. 10 [from Other Firmware Options](#other-firmware-options)
93. Download the firmware file
104. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded.
11 11
12## More technical: compile an existing keymap, or create your own totally custom firmware by editing the source files. 12 - Then flash the firmware to your [ErgoDox Ez](#ergodox-ez)
13 or [ErgoDox Infinity](#ergodox-infinity)
13 14
14This requires a little bit of familiarity with coding. 15# Customizing Keymaps
15If you are just compiling an existing keymap and don't want to create your own, you can skip step 4, 5 and 8.
16 16
171. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) 17There are many existing keymaps in the "keymaps" directory. If you just want
182. Clone the repository (download it) 18to use one of them, you don't need to modify keymaps and can just build and
193. Set up a build environment as per the readme. 19flash the firmware as described below. These directories each have a
204. Copy `keyboards/ergodox/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) 20"readme.md" file which describe them.
215. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. See below for more tips on sharing your work.
226. Compile your firmware by running `make keymap_name`. For example, `make german`. This will result in a hex file, which will be called `ergodox_ez_keymap_name.hex`, e.g. `ergodox_ez_german.hex`. For **Infinity ErgoDox** you need to add `infinity` to the make command like this `make infinity-german`.
237. **ErgoDox EZ** - Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. If you prefer you can automatically flash the hex file after successful build by running `make keymap_name-teensy`.
24 21
25 **Infinity ErgoDox** - Flash the firmware by running `make infinity-keymap_name-dfu-util` 22If none of the existing keymaps suit you, you can create your own custom
268. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics. 23keymap. This will require some experience with coding. Follow these steps
24to customize a keymap:
27 25
28Good luck! :) 26 - Read the [qmk firmware README](https://github.com/jackhumbert/qmk_firmware) from top to bottom. Then come back here. :)
29 27
30## Contributing your keymap 28 - Clone the qmk_firmware repository
29
30 - Set up your build environment (see below).
31
32 - Make a new directory under "keymaps" to hold your customizations.
33
34 - Copy an existing keymap that is close to what you want, such as
35 "keymaps/default/keymap.c".
36
37 - Use an editor to modify the new "keymap.c". See "Finding the keycodes you
38 need" below). Try to edit the comments as well, so the "text graphics"
39 represent your layout correctly.
40
41 - Compile your new firmware (see below)
42
43 - Flash your firmware (see below)
44
45 - Test the changes.
46
47 - Submit your keymap as a pull request to the qmk_firmware repository so
48 others can use it. You will want to add a "readme.md" that describes the
49 keymap.
50
51# Build Dependencies
52
53Before you can build, you will need the build dependencies. There is a script
54to try to do this for Linux:
55
56 - Run the `util/install_dependencies.sh` script as root.
57
58For the Infinity, you need the chibios submodules to be checked out or you
59will receive errors about the build process being unable to find the chibios
60files. Check them out with:
61
62 - Go to the top level repo directory and run: `git submodule update --init --recursive`
63
64# Flashing Firmware
65
66## ErgoDox Ez
67
68The Ez uses the [Teensy Loader](https://www.pjrc.com/teensy/loader.html).
69
70Linux users need to modify udev rules as described on the Teensy Linux page.
71Some distributions provide a binary, maybe called `teensy-loader-cli`).
72
73To flash the firmware:
74
75 - Build the firmware with `make keymapname`, for example `make default`
76 - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g.
77 `ergodox_ez_default.hex`
78
79 - Start the teensy loader.
80
81 - Load the .hex file into it.
82
83 - Press the Reset button by inserting a paperclip gently into the reset hole
84 in the top right corder.
85
86 - Click the button in the Teensy app to download the firmware.
87
88## ErgoDox Infinity
89
90The Infinity is two completely independent keyboards, and needs to be flashed
91for the left and right halves seperately. To flash them:
92
93 - Build the firmware with `make infinity-keymapname`
94
95 - Plug in the left hand keyboard only.
96
97 - Press the program button (back of keyboard, above thumb pad).
98
99 - Install the firmware with `sudo make infinity-keymapname-dfu-util`
100
101 - Build left hand firmware with `make infinity-keymapname MASTER=right`
102
103 - Plug in the right hand keyboard only.
104
105 - Press the program button (back of keyboard, above thumb pad).
106
107 - Install the firmware with `sudo make infinity-keymapname-dfu-util MASTER=right`
108
109More information on the Infinity firmware is available in the [TMK/chibios for
110Input Club Infinity Ergodox](https://github.com/fredizzimo/infinity_ergodox/blob/master/README.md)
111
112### Infinity Master/Two Halves
113
114The Infinity is two completely independent keyboards, that can connect together.
115You have a few options in how you flash the firmware:
116
117- Flash the left half, rebuild the firmware with "MASTER=right" and then flash
118 the right half. This allows you to plug in either half directly to the
119 computer and is what the above instructions do.
120
121- Flash the left half, then flash the same firmware on the right. This only
122 works when the left half is plugged directly to the computer and the keymap
123 is mirrored. It saves the small extra step of rebuilding with
124 "MASTER=right".
125
126- The same as the previous one but with "MASTER=right" when you build the
127 firmware, then flash the same firmware to both halves. You just have to
128 directly connect the right half to the computer.
129
130- For minor changes such as changing only the keymap without having updated
131 any part of the firmware code itself, you can program only the MASTER half.
132 It is safest to program both halves though.
133
134# Contributing your keymap
31 135
32The QMK firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed dozens of user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox. To make it easy for these people to use your layout, I recommend submitting your PR in the following format. 136The QMK firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed dozens of user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox. To make it easy for these people to use your layout, I recommend submitting your PR in the following format.
33 137
@@ -36,11 +140,26 @@ The QMK firmware is open-source, so it would be wonderful to have your contribut
363. `readme.md` - a readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :) 1403. `readme.md` - a readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :)
374. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link, just like I did with the default layout. 1414. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your readme can just embed the graphic as a link, just like I did with the default layout.
38 142
39 143# Finding the keycodes you need
40## Finding the keycodes you need
41 144
42Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`. 145Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`.
43 146
44That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot). 147That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot).
45 148
46If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out. 149If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out.
150
151# Other Firmware Options
152
153There are external tools for customizing the layout, but those do not use
154the featurs of this qmk firmware. These sites include:
155
156 - [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) for Ez
157 - [Input Club configurator](https://input.club/configurator-ergodox) for Infinity, provides left and right files
158
159You can also find an existing firmware that you like, for example from:
160
161 - [Dozens of community-contributed keymaps](http://qmk.fm/keyboards/ergodox/)
162
163This qmk firmware also provides the ability to customize keymaps, but requires
164a toolchain to build the firmware. See below for instructions on building
165firmware and customizing keymaps.
diff --git a/readme.md b/readme.md
index f03c99bba..473fd6a7c 100644
--- a/readme.md
+++ b/readme.md
@@ -54,10 +54,10 @@ Here are the steps
541. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). 541. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/).
552. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following 552. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following
56 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first 56 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first
57 2. From within the Git bash run ´git rm --cached -r .` 57 2. From within the Git bash run `git rm --cached -r .`
58 3. Followed by `git reset --hard` 58 3. Followed by `git reset --hard`
593. Start the "Bash On Ubuntu On Windows" from the start menu 593. Start the "Bash On Ubuntu On Windows" from the start menu
604. With the bash open, navigate to your git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. 604. With the bash open, navigate to your Git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive.
615. Run `sudo util/install_dependencies.sh`. 615. Run `sudo util/install_dependencies.sh`.
626. After a while the installation will finish, and you are good to go 626. After a while the installation will finish, and you are good to go
63 63