Skip to content

Commit 11284ba

Browse files
committed
Merge branch 'master' of https://github.com/qmk/qmk_firmware
* 'master' of https://github.com/qmk/qmk_firmware: (87 commits) [Keyboard] KBD67: enable bootmagic lite by default (qmk#4931) [Keymap] Adding keymap for Nyquist (qmk#4918) Optimize/Update the new_project script (qmk#4920) Remove lfkeyboards parent rules.mk as its only required for mini1800 [Keyboard] Add BDN9 (qmk#4919) [Keyboard] Add KBD67 Hotswap Support (qmk#4916) Fixup the clueboard 66 info.json Clueboard refresh (qmk#4902) Give the keymap folder the proper name Fix layouts/default/66_iso keymap [Keyboard] Add DataHand keyboard support (qmk#4847) [Keymap] Add a compile-time provided macro and assign to _FL (qmk#4908) Added info.json for TGR Alice Always read two bytes from the endpoint if we have two bytes to read Rename i2c_slave functions so it can coexist with i2c_master (qmk#4875) Fix for ISO layout in tada68:rys (qmk#4906) [Keyboard] Added TGR Alice keyboard support (qmk#4896) handwired/retro_refit: refactor, Configurator support and readme update (qmk#4899) Initial fixes for vagrant (qmk#4900) Tidy up IS_{,HOST_}LED_{ON,OFF} macros (qmk#4894) ...
2 parents 981cea7 + 5d1ea88 commit 11284ba

File tree

785 files changed

+17172
-10258
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

785 files changed

+17172
-10258
lines changed

Vagrantfile

+18-13
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
# vi: set ft=ruby :
33

44
Vagrant.configure(2) do |config|
5-
# VMware/Virtualbox 64 bit
6-
config.vm.box = "phusion/ubuntu-14.04-amd64"
5+
# define a name instead of just 'default'
6+
config.vm.define "qmk_firmware"
7+
8+
# VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
9+
config.vm.box = "bento/ubuntu-16.04"
710

811
# This section allows you to customize the Virtualbox VM
912
# settings, ie showing the GUI or upping the memory
@@ -15,13 +18,16 @@ Vagrant.configure(2) do |config|
1518
# your Teensy via the VM rather than your host OS
1619
#vb.customize ['modifyvm', :id, '--usb', 'on']
1720
#vb.customize ['usbfilter', 'add', '0',
18-
# '--target', :id,
19-
# '--name', 'teensy',
20-
# '--vendorid', '0x16c0',
21-
# '--productid','0x0478'
22-
# ]
21+
# '--target', :id,
22+
# '--name', 'teensy',
23+
# '--vendorid', '0x16c0',
24+
# '--productid','0x0478'
25+
# ]
2326
# Customize the amount of memory on the VM:
2427
vb.memory = "512"
28+
# Uncomment the below lines if you have time sync
29+
# issues with make and incremental builds
30+
#vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
2531
end
2632

2733
# This section allows you to customize the VMware VM
@@ -56,19 +62,18 @@ Vagrant.configure(2) do |config|
5662
# This script ensures the required packages for AVR programming are installed
5763
# It also ensures the system always gets the latest updates when powered on
5864
# If this causes issues you can run a 'vagrant destroy' and then
59-
# add a # before ,args: and run 'vagrant up' to get a working
65+
# add a # before ,run: (or change "always" to "once") and run 'vagrant up' to get a working
6066
# non-updated box and then attempt to troubleshoot or open a Github issue
61-
62-
config.vm.provision "shell", run: "always", path: "./util/qmk_install.sh", args: "-update"
67+
config.vm.provision "shell", inline: "/bin/sh -c 'yes | /vagrant/util/qmk_install.sh'", run: "always"
6368

6469
config.vm.post_up_message = <<-EOT
6570
6671
Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
6772
located at /vagrant
68-
To compile the .hex files use make command inside this directory.
73+
To compile the .hex files use make command inside this directory, e.g.
74+
cd /vagrant
75+
make <keyboard>:default
6976
70-
QMK's make format recently changed to use folder locations and colons:
71-
make project_folder:keymap[:target]
7277
Examples:
7378
make planck/rev4:default:dfu
7479
make planck:default

build_keyboard.mk

+54-33
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ include common.mk
1616
KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
1717
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
1818
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
19+
STM32_PATH := quantum/stm32
1920

2021
# Force expansion
2122
TARGET := $(TARGET)
@@ -72,6 +73,7 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/)","")
7273
KEYBOARD_PATHS += $(KEYBOARD_PATH_1)
7374
endif
7475

76+
7577
# Pull in rules.mk files from all our subfolders
7678
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
7779
include $(KEYBOARD_PATH_5)/rules.mk
@@ -89,6 +91,58 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
8991
include $(KEYBOARD_PATH_1)/rules.mk
9092
endif
9193

94+
95+
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
96+
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
97+
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
98+
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
99+
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
100+
101+
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
102+
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
103+
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
104+
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
105+
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
106+
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
107+
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
108+
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
109+
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
110+
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
111+
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
112+
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
113+
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
114+
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
115+
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
116+
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
117+
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
118+
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
119+
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
120+
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
121+
else ifneq ($(LAYOUTS),)
122+
include build_layout.mk
123+
else
124+
$(error Could not find keymap)
125+
# this state should never be reached
126+
endif
127+
128+
ifeq ($(strip $(CTPC)), yes)
129+
CONVERT_TO_PROTON_C=yes
130+
endif
131+
132+
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
133+
TARGET := $(TARGET)_proton_c
134+
include $(STM32_PATH)/proton_c.mk
135+
OPT_DEFS += -DCONVERT_TO_PROTON_C
136+
endif
137+
138+
include quantum/mcu_selection.mk
139+
140+
ifdef MCU_FAMILY
141+
OPT_DEFS += -DQMK_STM32
142+
KEYBOARD_PATHS += $(STM32_PATH)
143+
endif
144+
145+
92146
# Find all the C source files to be compiled in subfolders.
93147
KEYBOARD_SRC :=
94148

@@ -227,39 +281,6 @@ PROJECT_DEFS := $(OPT_DEFS)
227281
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
228282
PROJECT_CONFIG := $(CONFIG_H)
229283

230-
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
231-
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
232-
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
233-
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
234-
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
235-
236-
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
237-
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
238-
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
239-
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
240-
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
241-
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
242-
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
243-
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
244-
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
245-
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
246-
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
247-
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
248-
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
249-
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
250-
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
251-
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
252-
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
253-
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
254-
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
255-
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
256-
else ifneq ($(LAYOUTS),)
257-
include build_layout.mk
258-
else
259-
$(error Could not find keymap)
260-
# this state should never be reached
261-
endif
262-
263284
# Userspace setup and definitions
264285
ifeq ("$(USER_NAME)","")
265286
USER_NAME := $(KEYMAP)

common_features.mk

+18-3
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ QUANTUM_SRC:= \
254254
$(QUANTUM_DIR)/keymap_common.c \
255255
$(QUANTUM_DIR)/keycode_config.c
256256

257+
# Include the standard or split matrix code if needed
257258
ifneq ($(strip $(CUSTOM_MATRIX)), yes)
258259
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
259260
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c
@@ -262,11 +263,25 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
262263
endif
263264
endif
264265

266+
# Include the standard debounce code if needed
267+
ifneq ($(strip $(CUSTOM_DEBOUNCE)), yes)
268+
QUANTUM_SRC += $(QUANTUM_DIR)/debounce.c
269+
endif
270+
265271
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
266272
OPT_DEFS += -DSPLIT_KEYBOARD
273+
274+
# Include files used by all split keyboards
267275
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
268-
$(QUANTUM_DIR)/split_common/split_util.c
269-
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/i2c.c
270-
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/serial.c
276+
$(QUANTUM_DIR)/split_common/split_util.c
277+
278+
# Determine which (if any) transport files are required
279+
ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
280+
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c
281+
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
282+
# Unused functions are pruned away, which is why we can add both drivers here without bloat.
283+
QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/i2c.c \
284+
$(QUANTUM_DIR)/split_common/serial.c
285+
endif
271286
COMMON_VPATH += $(QUANTUM_PATH)/split_common
272287
endif

docs/_sidebar.md

-100
This file was deleted.

docs/_summary.md

+2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@
8181
* [ISP Flashing Guide](isp_flashing_guide.md)
8282
* [ARM Debugging Guide](arm_debugging.md)
8383
* [I2C Driver](i2c_driver.md)
84+
* [GPIO Controls](internals_gpio_control.md)
85+
* [Proton C Conversion](proton_c_conversion.md)
8486

8587
* For a Deeper Understanding
8688
* [How Keyboards Work](how_keyboards_work.md)

docs/config_options.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ If you define these options you will disable the associated feature, which can s
109109
* `#define NO_ACTION_ONESHOT`
110110
* disable one-shot modifiers
111111
* `#define NO_ACTION_MACRO`
112-
* disable all macro handling
112+
* disable old style macro handling: MACRO() & action_get_macro
113113
* `#define NO_ACTION_FUNCTION`
114-
* disable the action function (deprecated)
114+
* disable calling of action_function() from the fn_actions array (deprecated)
115115

116116
## Features That Can Be Enabled
117117

@@ -143,7 +143,7 @@ If you define these options you will enable the associated feature, which may in
143143
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
144144
* `#define LEADER_TIMEOUT 300`
145145
* how long before the leader key times out
146-
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
146+
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
147147
* `#define LEADER_PER_KEY_TIMING`
148148
* sets the timer for leader key chords to run on each key press rather than overall
149149
* `#define LEADER_KEY_STRICT_KEY_PROCESSING`
@@ -197,6 +197,9 @@ If you define these options you will enable the associated feature, which may in
197197

198198
Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk
199199

200+
* `SPLIT_TRANSPORT = custom`
201+
* Allows replacing the standard split communication routines with a custom one. ARM based split keyboards must use this at present.
202+
200203
### Setting Handedness
201204

202205
One thing to remember, the side that the USB port is plugged into is always the master half. The side not plugged into USB is the slave.
@@ -208,7 +211,7 @@ There are a few different ways to set handedness for split keyboards (listed in
208211
3. Set `MASTER_RIGHT`: Half that is plugged into the USB port is determined to be the master and right half (inverse of the default)
209212
4. Default: The side that is plugged into the USB port is the master half and is assumed to be the left half. The slave side is the right half
210213

211-
* `#define SPLIT_HAND_PIN B7`
214+
* `#define SPLIT_HAND_PIN B7`
212215
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
213216

214217
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined)
@@ -302,6 +305,10 @@ Use these to enable or disable building certain features. The more you have enab
302305
* Current options are AdafruitEzKey, AdafruitBLE, RN42
303306
* `SPLIT_KEYBOARD`
304307
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
308+
* `CUSTOM_MATRIX`
309+
* Allows replacing the standard matrix scanning routine with a custom one.
310+
* `CUSTOM_DEBOUNCE`
311+
* Allows replacing the standard key debouncing routine with a custom one.
305312
* `WAIT_FOR_USB`
306313
* Forces the keyboard to wait for a USB connection to be established before it starts up
307314
* `NO_USB_STARTUP_CHECK`

0 commit comments

Comments
 (0)