aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ergodox
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox')
-rw-r--r--keyboards/ergodox/Makefile33
-rw-r--r--keyboards/ergodox/ez/Makefile77
-rw-r--r--keyboards/ergodox/ez/rules.mk76
-rw-r--r--keyboards/ergodox/infinity/Makefile78
-rw-r--r--keyboards/ergodox/infinity/rules.mk77
-rw-r--r--keyboards/ergodox/readme.md12
-rw-r--r--keyboards/ergodox/rules.mk28
7 files changed, 192 insertions, 189 deletions
diff --git a/keyboards/ergodox/Makefile b/keyboards/ergodox/Makefile
index 05fb588d1..716535005 100644
--- a/keyboards/ergodox/Makefile
+++ b/keyboards/ergodox/Makefile
@@ -1,34 +1,5 @@
1#----------------------------------------------------------------------------
2# On command line:
3#
4# make = Make software.
5#
6# make clean = Clean out built project files.
7#
8# That's pretty much all you need. To compile, always go make clean,
9# followed by make.
10#
11# For advanced users only:
12# make teensy = Download the hex file to the device, using teensy_loader_cli.
13# (must have teensy_loader_cli installed).
14#
15#----------------------------------------------------------------------------
16SUBPROJECT_DEFAULT = ez 1SUBPROJECT_DEFAULT = ez
17 2
18# Build Options 3ifndef MAKEFILE_INCLUDED
19# comment out to disable the options.
20#
21BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
22MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
23EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
24CONSOLE_ENABLE ?= no # Console for debug(+400)
25COMMAND_ENABLE ?= yes # Commands for debug and configuration
26CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
27SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
28NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
29MIDI_ENABLE ?= no # MIDI controls
30UNICODE_ENABLE ?= yes # Unicode
31
32ifndef QUANTUM_DIR
33 include ../../Makefile 4 include ../../Makefile
34endif 5endif \ No newline at end of file
diff --git a/keyboards/ergodox/ez/Makefile b/keyboards/ergodox/ez/Makefile
index 37e554b30..191c6bb66 100644
--- a/keyboards/ergodox/ez/Makefile
+++ b/keyboards/ergodox/ez/Makefile
@@ -1,76 +1,3 @@
1#---------------------------------------------------------------------------- 1ifndef MAKEFILE_INCLUDED
2# On command line:
3#
4# make = Make software.
5#
6# make clean = Clean out built project files.
7#
8# That's pretty much all you need. To compile, always go make clean,
9# followed by make.
10#
11# For advanced users only:
12# make teensy = Download the hex file to the device, using teensy_loader_cli.
13# (must have teensy_loader_cli installed).
14#
15#----------------------------------------------------------------------------
16
17# # project specific files
18SRC = twimaster.c \
19 matrix.c
20
21# MCU name
22MCU = atmega32u4
23
24# Processor frequency.
25# This will define a symbol, F_CPU, in all source code files equal to the
26# processor frequency in Hz. You can then use this symbol in your source code to
27# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
28# automatically to create a 32-bit value in your source code.
29#
30# This will be an integer division of F_USB below, as it is sourced by
31# F_USB after it has run through any CPU prescalers. Note that this value
32# does not *change* the processor frequency - it should merely be updated to
33# reflect the processor speed set externally so that the code can use accurate
34# software delays.
35F_CPU = 16000000
36
37
38#
39# LUFA specific
40#
41# Target architecture (see library "Board Types" documentation).
42ARCH = AVR8
43
44# Input clock frequency.
45# This will define a symbol, F_USB, in all source code files equal to the
46# input clock frequency (before any prescaling is performed) in Hz. This value may
47# differ from F_CPU if prescaling is used on the latter, and is required as the
48# raw input clock is fed directly to the PLL sections of the AVR for high speed
49# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
50# at the end, this will be done automatically to create a 32-bit value in your
51# source code.
52#
53# If no clock division is performed on the input clock inside the AVR (via the
54# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
55F_USB = $(F_CPU)
56
57# Interrupt driven control endpoint task(+60)
58OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
59
60
61# Boot Section Size in *bytes*
62# Teensy halfKay 512
63# Teensy++ halfKay 1024
64# Atmel DFU loader 4096
65# LUFA bootloader 4096
66# USBaspLoader 2048
67OPT_DEFS += -DBOOTLOADER_SIZE=512
68
69
70# Build Options
71# comment out to disable the options.
72#
73
74ifndef QUANTUM_DIR
75 include ../../../Makefile 2 include ../../../Makefile
76endif 3endif \ No newline at end of file
diff --git a/keyboards/ergodox/ez/rules.mk b/keyboards/ergodox/ez/rules.mk
new file mode 100644
index 000000000..37e554b30
--- /dev/null
+++ b/keyboards/ergodox/ez/rules.mk
@@ -0,0 +1,76 @@
1#----------------------------------------------------------------------------
2# On command line:
3#
4# make = Make software.
5#
6# make clean = Clean out built project files.
7#
8# That's pretty much all you need. To compile, always go make clean,
9# followed by make.
10#
11# For advanced users only:
12# make teensy = Download the hex file to the device, using teensy_loader_cli.
13# (must have teensy_loader_cli installed).
14#
15#----------------------------------------------------------------------------
16
17# # project specific files
18SRC = twimaster.c \
19 matrix.c
20
21# MCU name
22MCU = atmega32u4
23
24# Processor frequency.
25# This will define a symbol, F_CPU, in all source code files equal to the
26# processor frequency in Hz. You can then use this symbol in your source code to
27# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
28# automatically to create a 32-bit value in your source code.
29#
30# This will be an integer division of F_USB below, as it is sourced by
31# F_USB after it has run through any CPU prescalers. Note that this value
32# does not *change* the processor frequency - it should merely be updated to
33# reflect the processor speed set externally so that the code can use accurate
34# software delays.
35F_CPU = 16000000
36
37
38#
39# LUFA specific
40#
41# Target architecture (see library "Board Types" documentation).
42ARCH = AVR8
43
44# Input clock frequency.
45# This will define a symbol, F_USB, in all source code files equal to the
46# input clock frequency (before any prescaling is performed) in Hz. This value may
47# differ from F_CPU if prescaling is used on the latter, and is required as the
48# raw input clock is fed directly to the PLL sections of the AVR for high speed
49# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
50# at the end, this will be done automatically to create a 32-bit value in your
51# source code.
52#
53# If no clock division is performed on the input clock inside the AVR (via the
54# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
55F_USB = $(F_CPU)
56
57# Interrupt driven control endpoint task(+60)
58OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
59
60
61# Boot Section Size in *bytes*
62# Teensy halfKay 512
63# Teensy++ halfKay 1024
64# Atmel DFU loader 4096
65# LUFA bootloader 4096
66# USBaspLoader 2048
67OPT_DEFS += -DBOOTLOADER_SIZE=512
68
69
70# Build Options
71# comment out to disable the options.
72#
73
74ifndef QUANTUM_DIR
75 include ../../../Makefile
76endif
diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile
index ccb735a48..191c6bb66 100644
--- a/keyboards/ergodox/infinity/Makefile
+++ b/keyboards/ergodox/infinity/Makefile
@@ -1,77 +1,3 @@
1# project specific files 1ifndef MAKEFILE_INCLUDED
2SRC = matrix.c \
3 led.c
4
5## chip/board settings
6# - the next two should match the directories in
7# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
8# - For Teensies, FAMILY = KINETIS and SERIES is either
9# KL2x (LC) or K20x (3.0,3.1,3.2).
10# - For Infinity KB, SERIES = K20x
11MCU_FAMILY = KINETIS
12MCU_SERIES = K20x
13
14# Linker script to use
15# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
16# or <this_dir>/ld/
17# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
18# - LDSCRIPT =
19# - MKL26Z64 for Teensy LC
20# - MK20DX128 for Teensy 3.0
21# - MK20DX256 for Teensy 3.1 and 3.2
22# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
23# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
24MCU_LDSCRIPT = MK20DX256BLDR8
25
26# Startup code to use
27# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
28# - STARTUP =
29# - kl2x for Teensy LC
30# - k20x5 for Teensy 3.0 and Infinity 60%
31# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
32MCU_STARTUP = k20x7
33
34# Board: it should exist either in <chibios>/os/hal/boards/
35# or <this_dir>/boards
36# - BOARD =
37# - PJRC_TEENSY_LC for Teensy LC
38# - PJRC_TEENSY_3 for Teensy 3.0
39# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
40# - MCHCK_K20 for Infinity KB
41#BOARD = MCHCK_K20
42BOARD = PJRC_TEENSY_3_1
43
44# Cortex version
45# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
46MCU = cortex-m4
47
48# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
49# I.e. 6 for Teensy LC; 7 for Teensy 3.x
50ARMV = 7
51
52# Vector table for application
53# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
56
57# Build Options
58# comment out to disable the options.
59#
60CUSTOM_MATRIX ?= yes # Custom matrix file
61SERIAL_LINK_ENABLE = yes
62VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
63LCD_ENABLE ?= yes
64LED_ENABLE ?= yes
65LCD_BACKLIGHT_ENABLE ?= yes
66
67ifndef QUANTUM_DIR
68 include ../../../Makefile 2 include ../../../Makefile
69endif 3endif \ No newline at end of file
70
71ifdef LCD_ENABLE
72include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk
73endif
74
75ifdef LED_ENABLE
76include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk
77endif
diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk
new file mode 100644
index 000000000..ccb735a48
--- /dev/null
+++ b/keyboards/ergodox/infinity/rules.mk
@@ -0,0 +1,77 @@
1# project specific files
2SRC = matrix.c \
3 led.c
4
5## chip/board settings
6# - the next two should match the directories in
7# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
8# - For Teensies, FAMILY = KINETIS and SERIES is either
9# KL2x (LC) or K20x (3.0,3.1,3.2).
10# - For Infinity KB, SERIES = K20x
11MCU_FAMILY = KINETIS
12MCU_SERIES = K20x
13
14# Linker script to use
15# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
16# or <this_dir>/ld/
17# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
18# - LDSCRIPT =
19# - MKL26Z64 for Teensy LC
20# - MK20DX128 for Teensy 3.0
21# - MK20DX256 for Teensy 3.1 and 3.2
22# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
23# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
24MCU_LDSCRIPT = MK20DX256BLDR8
25
26# Startup code to use
27# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
28# - STARTUP =
29# - kl2x for Teensy LC
30# - k20x5 for Teensy 3.0 and Infinity 60%
31# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
32MCU_STARTUP = k20x7
33
34# Board: it should exist either in <chibios>/os/hal/boards/
35# or <this_dir>/boards
36# - BOARD =
37# - PJRC_TEENSY_LC for Teensy LC
38# - PJRC_TEENSY_3 for Teensy 3.0
39# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
40# - MCHCK_K20 for Infinity KB
41#BOARD = MCHCK_K20
42BOARD = PJRC_TEENSY_3_1
43
44# Cortex version
45# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
46MCU = cortex-m4
47
48# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
49# I.e. 6 for Teensy LC; 7 for Teensy 3.x
50ARMV = 7
51
52# Vector table for application
53# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
54# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
55OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
56
57# Build Options
58# comment out to disable the options.
59#
60CUSTOM_MATRIX ?= yes # Custom matrix file
61SERIAL_LINK_ENABLE = yes
62VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
63LCD_ENABLE ?= yes
64LED_ENABLE ?= yes
65LCD_BACKLIGHT_ENABLE ?= yes
66
67ifndef QUANTUM_DIR
68 include ../../../Makefile
69endif
70
71ifdef LCD_ENABLE
72include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk
73endif
74
75ifdef LED_ENABLE
76include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk
77endif
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md
index b113ca7dd..3bbe98fd6 100644
--- a/keyboards/ergodox/readme.md
+++ b/keyboards/ergodox/readme.md
@@ -72,9 +72,7 @@ Some distributions provide a binary, maybe called `teensy-loader-cli`).
72 72
73To flash the firmware: 73To flash the firmware:
74 74
75 - Build the firmware with `make keymap=keymapname`, for example `make 75 - Build the firmware with `make keymapname`, for example `make default`
76 keymap=default`
77
78 - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g. 76 - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g.
79 `ergodox_ez_default.hex` 77 `ergodox_ez_default.hex`
80 78
@@ -92,21 +90,21 @@ To flash the firmware:
92The Infinity is two completely independent keyboards, and needs to be flashed 90The Infinity is two completely independent keyboards, and needs to be flashed
93for the left and right halves seperately. To flash them: 91for the left and right halves seperately. To flash them:
94 92
95 - Build the firmware with `make keymap=keymapname subproject=infinity` 93 - Build the firmware with `make infinity-keymapname`
96 94
97 - Plug in the left hand keyboard only. 95 - Plug in the left hand keyboard only.
98 96
99 - Press the program button (back of keyboard, above thumb pad). 97 - Press the program button (back of keyboard, above thumb pad).
100 98
101 - Install the firmware with `sudo make dfu-util keymap=keymapname subproject=infinity` 99 - Install the firmware with `sudo make infinity-keymapname-dfu-util`
102 100
103 - Build left hand firmware with `make keymap=keymapname subproject=infinity MASTER=right` 101 - Build left hand firmware with `make infinity-keymapname MASTER=right`
104 102
105 - Plug in the right hand keyboard only. 103 - Plug in the right hand keyboard only.
106 104
107 - Press the program button (back of keyboard, above thumb pad). 105 - Press the program button (back of keyboard, above thumb pad).
108 106
109 - Install the firmware with `sudo make dfu-util keymap=keymapname subproject=infinity MASTER=right` 107 - Install the firmware with `sudo make infinity-keymapname-dfu-util MASTER=right`
110 108
111More information on the Infinity firmware is available in the [TMK/chibios for 109More information on the Infinity firmware is available in the [TMK/chibios for
112Input Club Infinity Ergodox](https://github.com/fredizzimo/infinity_ergodox/blob/master/README.md) 110Input Club Infinity Ergodox](https://github.com/fredizzimo/infinity_ergodox/blob/master/README.md)
diff --git a/keyboards/ergodox/rules.mk b/keyboards/ergodox/rules.mk
new file mode 100644
index 000000000..ac63d4eff
--- /dev/null
+++ b/keyboards/ergodox/rules.mk
@@ -0,0 +1,28 @@
1#----------------------------------------------------------------------------
2# On command line:
3#
4# make = Make software.
5#
6# make clean = Clean out built project files.
7#
8# That's pretty much all you need. To compile, always go make clean,
9# followed by make.
10#
11# For advanced users only:
12# make teensy = Download the hex file to the device, using teensy_loader_cli.
13# (must have teensy_loader_cli installed).
14#
15#----------------------------------------------------------------------------
16# Build Options
17# comment out to disable the options.
18#
19BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
20MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
21EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
22CONSOLE_ENABLE ?= no # Console for debug(+400)
23COMMAND_ENABLE ?= yes # Commands for debug and configuration
24CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
25SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
26NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27MIDI_ENABLE ?= no # MIDI controls
28UNICODE_ENABLE ?= yes # Unicode