aboutsummaryrefslogtreecommitdiff
path: root/docs/newbs_building_firmware.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/newbs_building_firmware.md')
-rw-r--r--docs/newbs_building_firmware.md32
1 files changed, 28 insertions, 4 deletions
diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md
index ef1297556..181761c71 100644
--- a/docs/newbs_building_firmware.md
+++ b/docs/newbs_building_firmware.md
@@ -9,7 +9,7 @@ If you have closed and reopened your terminal window since following the first p
9Start by navigating to the `keymaps` folder for your keyboard. 9Start by navigating to the `keymaps` folder for your keyboard.
10 10
11{% hint style='info' %} 11{% hint style='info' %}
12If you are on macOS or Windows there are commands you can use to easily open the `keymaps` folder. 12If you are on macOS or Windows there are commands you can use to easily open the keymaps folder.
13 13
14macOS: 14macOS:
15 15
@@ -22,17 +22,17 @@ Windows:
22 22
23## Create a Copy Of The `default` Keymap 23## Create a Copy Of The `default` Keymap
24 24
25Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your github username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character. 25Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your GitHub username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character.
26 26
27## Open `keymap.c` In Your Favorite Text Editor 27## Open `keymap.c` In Your Favorite Text Editor
28 28
29Inside the `keymap.c` file you'll find the structure that controls how your keyboard behaves. At the top there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this: 29Open up your `keymap.c`. Inside this file you'll find the structure that controls how your keyboard behaves. At the top of `keymap.c` there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this:
30 30
31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 32
33This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer. 33This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer.
34 34
35{% hint style='warning' %} 35{% hint style='warn' %}
36When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. 36When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is.
37{% endhint %} 37{% endhint %}
38 38
@@ -47,3 +47,27 @@ How to complete this step is entirely up to you. Make the one change that's been
47{% hint style='info' %} 47{% hint style='info' %}
48While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. 48While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise.
49{% endhint %} 49{% endhint %}
50
51## Build Your Firmware
52
53When your changes to the keymap are complete you will need to build the firmware. To do so go back to your terminal window and run the build command:
54
55 make <my_keyboard>:<my_keymap>
56
57For example, if your keymap is named "xyverz" and you're building a keymap for a rev5 planck, you'll use this command:
58
59 make planck/rev5:xyverz
60
61While this compiles you will have a lot of output going to the screen informing you of what files are being compiled. It should end with output that looks similar to this:
62
63```
64Linking: .build/planck_rev5_xyverz.elf [OK]
65Creating load file for flashing: .build/planck_rev5_xyverz.hex [OK]
66Copying planck_rev5_xyverz.hex to qmk_firmware folder [OK]
67Checking file size of planck_rev5_xyverz.hex [OK]
68 * File size is fine - 18392/28672
69```
70
71## Flash Your Firmware
72
73Move on to [Flashing Firmware](newbs_flashing.md) to learn how to write your new firmware to your keyboard.