Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helix rgblight mode update #18

Merged
merged 135 commits into from
Oct 7, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
92f6771
Keyboard: Fix the LAYOUT_iso macro for tada68 (#3943)
skullydazed Sep 19, 2018
71fe973
Keyboard: Add ISO-NOR keymap for TADA68 (#3944)
s-rd Sep 19, 2018
c23233f
Keymap: Talljoe's keymap for oddball keyboards (#3910)
Talljoe Sep 19, 2018
14f691d
Keymap: meagerfindings ergodox (#3920)
meagerfindings Sep 19, 2018
77433b1
Keyboard: Add evil80 keyboard (#3921)
itsdrdick Sep 19, 2018
334e262
Remove redefinition of `_______` in documentation example (#3924)
AnthonyWharton Sep 19, 2018
2bdeccd
Keyboard: Add Prime_EXL prototype to 'handwired' (#3932)
holtenc Sep 19, 2018
14be525
Keymap: rys Tada68 ISO UK layout (#3934)
Sep 19, 2018
5b4bcfa
Keyboard: Move Bathroom Epiphany boards into its own directory (#3936)
mechmerlin Sep 19, 2018
6cab514
Keymap: Initial commit of dshields keymap for the model01 keyboard. (…
shieldsd Sep 19, 2018
4c22e92
Keymap: Fix tada68:iso-nor to match latest ISO_layout (#3946)
s-rd Sep 19, 2018
cfdc23b
Keyboard: Add Quefrency 65 support in configurator (#3950)
nooges Sep 20, 2018
99c1c5b
Keyboard: Added Prime_L, Prime_O and Prime_M, moved Prime_R into prim…
MxBlu Sep 20, 2018
747cf78
Add nano keymap for modding Spooka light (#3953)
nooges Sep 20, 2018
35e7653
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
Sep 22, 2018
57ec309
Keyboard: Panc60 (#3961)
mechmerlin Sep 23, 2018
58b9b22
Circuitry sample for PS/2 Mouse (#3959)
LukMas Sep 23, 2018
ce057ea
Keyboard: HP 46010A converter (#3967)
listofoptions Sep 24, 2018
07d317a
Keyboard: Crkbd: move I2C and Serial defines to keyboard's config.h (…
noroadsleft Sep 24, 2018
9012f4c
Keyboard: Crkbd: Configurator support and readme formatting (#3971)
noroadsleft Sep 24, 2018
b7e25f9
Keyboard: DZ60 Bug: layout_directional is shifted to the left by one …
mechmerlin Sep 25, 2018
e72e4b6
Store Clicky status in EEPROM
drashna May 9, 2018
cfb1b35
Add functions so you can configure programatically
drashna May 31, 2018
a0309db
Add On/Off keycodes
drashna Jun 1, 2018
a54f09d
Keymap: jetpacktuxedo planck keymap (#3896)
jetpacktuxedo Sep 25, 2018
9dc19fd
Keymap: FollowingGhosts v60r layout (#3926)
b3n-l Sep 25, 2018
2b23072
Pin avr-gcc in shell.nix pending release of 8.3.0 (#3922)
jhenahan Sep 25, 2018
6347a65
Keymap: Ergo42: biacco-winjp (#3935)
shimesaba-type0 Sep 25, 2018
118e948
Keyboard: added mehkee96 support -JT (#3957)
johanntang Sep 25, 2018
61f9541
Keymap: Velocikey implemented at userspace, readme is more helpful (#…
Sep 25, 2018
223081b
Keymap: 4x4 pro micro (#3976)
wanleg Sep 25, 2018
627ee05
Keyboard: Remove BACKLIGHT BREATHING as default config for Prime Keyb…
holtenc Sep 25, 2018
4d5705e
Add new RGB matrix effect digital rain aka The Matrix
shieldsd Sep 3, 2018
7f1268f
Keymap: add artbycrunk iris layout (#3964)
artbycrunk Sep 26, 2018
f355174
Keymap: Add Koba's keymap for Ergo42. (#3965)
daisukekoba Sep 26, 2018
722f06f
Keymap: Update whitefox/konstantin keymap (#3980)
vomindoraan Sep 26, 2018
e2eee47
Keyboard: Crkbd stands for Corne Keyboard, not helidox (#3985)
foostan Sep 26, 2018
dbdbbbd
Keyboard: Refactor XMMX keyboard to XMMX and Toad (#3955)
mechmerlin Sep 26, 2018
96648a1
Keymap: mtdjr userspace changes and Nyquist keymap addition (#3940)
mtdjr Sep 26, 2018
c7ce0d2
Moves animation calculation logic out of the for loops
Sep 25, 2018
ec02970
Bugfix for 60_ansi_tsangan and 60_iso_tsangan layouts (#3987)
noroadsleft Sep 27, 2018
12ad59f
Keyboard: Treasure Macropad (#3988)
mechmerlin Sep 27, 2018
f70f45e
RGB Matrix refactoring to open up for new drivers (#3913)
abrasive Sep 27, 2018
13e166d
RAMA U80-A, wilba.tech WT60-A, WT65-A, WT80-A, IS31FL3736 driver (#3925)
Sep 27, 2018
8b2591c
Keymap: Clean-up of dshields keymaps. (#3983)
shieldsd Sep 27, 2018
8ef747a
Treat too-large firmwares as an error, not a warning (#3956)
skullydazed Sep 27, 2018
a65085a
Keyboard: [Fortitude60] LED fix and Serial improvement (#3982)
Pekaso Sep 28, 2018
246d539
Keymap: add clicky support to jetpacktuxedo keymap (#3990)
jetpacktuxedo Sep 28, 2018
edeace2
Make Audio Clicky's randomness a float
drashna Sep 28, 2018
baebbc0
add 'mavrdude' target into tmk_core/avr.mk (#3986)
mtei Sep 28, 2018
96c9ebc
Revert "Split Common: Serial Backlight LED fix (#3586)"
cflee Aug 18, 2018
7d2d0c6
split_common: fix backlight update for serial boards
cflee Aug 18, 2018
b382076
Keyboard: keyboardio model01: rgbmatrix support (#3989)
abrasive Sep 28, 2018
a173eda
Improved dynamic keymaps (#3972)
Sep 28, 2018
31afdd8
Optimize size of JC65/v32a keyboard
drashna Sep 28, 2018
a4bdab6
Optimize size of Hadron keyboard
drashna Sep 28, 2018
8847b2a
Optimize size of Vitamins_Included keyboard
drashna Sep 28, 2018
ebc1432
Optimize size of Pearl keyboard
drashna Sep 28, 2018
9ade35a
Optimize size of USB_USB BLE Converter
drashna Sep 28, 2018
8454fa5
Update Document Templates to reflect newer wording and URLs (#4006)
drashna Sep 28, 2018
fa47f5f
Update to the Userspace documentation (#4005)
drashna Sep 28, 2018
7fe03d0
Update quantum matrix to support both AVR and Chibios ARM (#3968)
yiancar Sep 28, 2018
daa11dc
Changed VID/PID, added commands, refactoring
Sep 28, 2018
f1b2d46
Spell-check update for Userspace documentation
noroadsleft Sep 28, 2018
cb468e0
Keymap: Clicky frequency modulation (#4012)
jetpacktuxedo Sep 28, 2018
e4eeb1e
Fix RGB Matrix feature processing in common_features.mk
drashna Sep 28, 2018
e2dee05
add st-link_cli flashing (#3899)
hsgw Sep 29, 2018
239f024
Massdrop keyboard updates for SEND_STRING, syscalls, stdio, debug pri…
patrickmt Sep 29, 2018
ab83aed
Second attempt to reduce the size of the USB BLE Converter (#4010)
drashna Sep 29, 2018
3d767e4
Disable Moueskeys to reduce Vitamins Included firmware size
drashna Sep 28, 2018
20a10bd
Size fix for Hadron, take 2 (#4009)
drashna Sep 29, 2018
daf0cc6
CTRL keyboard bootloader_jump support
patrickmt Sep 29, 2018
9f8bbe2
Keyboard: converter/hp_46010a: Configurator support (#4017)
noroadsleft Sep 29, 2018
1da2f8d
Keymap: tada68: add shalzz's layout (#4019)
shalzz Sep 29, 2018
4f64951
Keymap: Fixed a possible of buffer overflow. (#4016)
marksard Sep 29, 2018
cd21520
Helix led_test keymap reduce size (#4023)
mtei Sep 29, 2018
68854f0
Keyboard: converter/hp_46010a: rename layout macro to LAYOUT (#4024)
noroadsleft Sep 29, 2018
92d95ba
Keyboard: Add basic support for the YD68 / YD68v2 PCBs. (#4020)
izzy84075 Sep 29, 2018
1705078
Keyboard: Update info.json to match LAYOUT (#4027)
yanfali Sep 29, 2018
3875d6f
Keymap: Added Leader Key Functionality (#4025)
Sep 30, 2018
6734cd9
Keyboard: Zeal60: Fix getting backlight values "id_*_indicator_row_co…
Sep 30, 2018
66ef1e3
RAMA M6-B and IS31FL3218 driver (#4021)
Sep 30, 2018
a7d46f1
Keymap: Add ErgoDone keymap with QWERTY and COLEMAK Mod-DH (#3884)
Erovia Sep 30, 2018
a6c85f1
Keymap: add olligranlund Iris + satan layouts (#4031)
OlliGranlund Sep 30, 2018
a398d2c
Keymap: Add noroadsleft keymap for KC60 (#3876)
noroadsleft Oct 1, 2018
9d94938
Adds default value for TAPPING_TERM if Tap Dance is enabled (#2785)
drashna Oct 1, 2018
3907ed0
Fix YMDK NP21 keyboard to use proper keyboard level functions (#3042)
drashna Oct 1, 2018
45a4a0a
Keyboard: Adding initial luddite keyboard framework (#4029)
Oct 1, 2018
285ed08
Keyboard: Rename macropad to treasure/type9 (#4035)
mechmerlin Oct 1, 2018
b3f6aa9
Correct small typo
char Oct 1, 2018
da6c581
Make digital rain RGB matrix effect #define configurable.
shieldsd Sep 28, 2018
4318797
Add user level to default_layer_state_set
drashna Aug 27, 2018
e885c79
Add Function level EECONFIG code for EEPROM (#3084)
drashna Oct 2, 2018
26f4e70
Add tap_code function (#3784)
drashna Oct 2, 2018
f5ae376
Add send_unicode_hex_string function (#3828)
drashna Oct 2, 2018
1512a6b
Keymap: Update to drashna keymaps and userspace (#3992)
drashna Oct 2, 2018
713ec91
Add C hint to inline code
yanfali Oct 2, 2018
abcf64e
Keyboard: DZ60 cleanup (#3994)
noroadsleft Oct 2, 2018
9f2e397
Keyboard: Add support for the KBD4x (#4036)
sevenseacat Oct 2, 2018
1a33054
Reduce firmware size of KBD8x to fix Travis Compile issues
drashna Oct 2, 2018
5c2ac73
Keymap: Adding my DZ60, Satan, XD75 kemaps and updates to userspace (…
JarredSteenvoorden Oct 2, 2018
66b7937
Keymap: Personal XD75 keymap added. (#4045)
BramVer Oct 2, 2018
9aecf4c
Adds a method allowing to set custom colors to the rgb matrix
Oct 1, 2018
1741e39
New keyboard: Baguette (#4047)
yiancar Oct 2, 2018
37cfd2c
add JP keycode for MacOSX (#4033)
takashiski Oct 3, 2018
2d671a7
Enable support for Linux Mint 18 with linux_install.sh (#4042)
Chris-Johnston Oct 3, 2018
76f0b3c
Add missing F-keys to ergodox_infinity input_club
jdmarble Oct 3, 2018
d435dab
Keyboard: Mint60: Configurator support and readme cleanup (#4057)
noroadsleft Oct 3, 2018
b9c5030
Keyboard: KBD4x: corrected info.json file (#4056)
noroadsleft Oct 3, 2018
b1c2849
Keymap: Add RGB matrix keypress effects and reduce firmware size. (#4…
shieldsd Oct 3, 2018
4d1d1b7
Keyboard: Added JN68M keyboard to handwired (#4053)
MxBlu Oct 3, 2018
404db1d
handwired/ibm122m: refactor and Configurator support (#4054)
noroadsleft Oct 3, 2018
5368235
Keyboard: Add namecard keyboard (#4044)
takashiski Oct 3, 2018
e58ea88
Keyboard: Added split backspace layout for the b.mini (#4051)
MxBlu Oct 3, 2018
f01133d
Keyboard: Add handwired/pteron config and keymaps (#4060)
FSund Oct 3, 2018
d55468c
Keyboard: Added dactyl-manuform 4x6 and keymap. (#4058)
FSund Oct 3, 2018
9c4b6d2
Keyboard: Adding Split Space support for Mechmini 1 (#4052)
Pittyolo Oct 3, 2018
ac27b62
Keyboard: add info.json for qmk configurator (#4063)
takashiski Oct 3, 2018
0d61e61
process_ucis: Add a callback for success (#4067)
martinakcsilla Oct 3, 2018
f13ca59
rn42 compilation error fix (#4050)
Enochen Oct 3, 2018
dad579c
Add mousekey_send to (un)register_code
drashna Oct 4, 2018
26adf37
Keymap: Added personal userspace and keymaps. (#4073)
SpacebarRacecar Oct 4, 2018
0c3137d
rgb_matrix: continue calling rgb_matrix_indicators() when toggled off
abrasive Sep 15, 2018
b4f26a4
Keyboard: DZ60: add Plate B layouts (#4076)
noroadsleft Oct 5, 2018
13d6720
Keyboard: set SAFE_RANGE (#4078)
eucalyn Oct 5, 2018
ac7b2d9
ARM SWD guide
yiancar Oct 4, 2018
27e216f
Keymap: Add french iso layout for dz60 (thomasviaud) (#4080)
thomasviaud Oct 5, 2018
54b61b5
E6V2 LE HHKB love (#4079)
johu Oct 5, 2018
f1003aa
Keyboard: Helix five_rows keymap reduced size (#4082)
mtei Oct 5, 2018
2c1402a
Keymap: Added Planck keymap: jcorrado (#4083)
jcorrado Oct 5, 2018
a97dfa2
Helix each keymap's using rgblight mode symbol instead magic number
mtei Oct 6, 2018
177d7fd
Helix pico keymaps: make rgblight modes selectable.
mtei Oct 6, 2018
559f36e
Helix rev2 keymaps: make rgblight modes selectable.
mtei Oct 6, 2018
695f525
fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGB…
mtei Oct 6, 2018
289e93c
Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
mtei Oct 6, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 11 additions & 13 deletions common_features.mk
Original file line number Diff line number Diff line change
Expand Up @@ -114,37 +114,35 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif

ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
RGB_MATRIX_ENABLE ?= no
VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 custom
ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
OPT_DEFS += -DIS31FL3731
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731.c
SRC += i2c_master.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
CIE1931_CURVE = yes
endif

ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
RGB_MATRIX_ENABLE = IS31FL3731
endif

ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731)
OPT_DEFS += -DRGB_MATRIX_ENABLE
OPT_DEFS += -DIS31FL3731
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731.c
SRC += i2c_master.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
CIE1931_CURVE = yes
endif

ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733)
OPT_DEFS += -DRGB_MATRIX_ENABLE
OPT_DEFS += -DIS31FL3733
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3733.c
SRC += i2c_master.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
CIE1931_CURVE = yes
endif

ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
Expand Down
1 change: 1 addition & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)

* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
Expand Down
1 change: 1 addition & 0 deletions docs/_summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)

* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
Expand Down
87 changes: 87 additions & 0 deletions docs/arm_debugging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# ARM Debugging usign Eclipse

This page describes how to setup debugging for ARM MCUs using an SWD adapter and open-source/free tools. In this guide we will install GNU MCU Eclipse IDE for C/C++ Developers and OpenOCD together with all the necessary dependencies.

This guide is catered towards advance users and assumes you can compile an ARM compatible keyboard on your machine using the MAKE flow.

## Installing the software

The main objective here is to get the MCU Eclipse IDE correcly installed on our machine. The necesarry instructions are derived from [this](https://gnu-mcu-eclipse.github.io/install/) install guide.

### The xPack Manager

This tool is a software package manager and it is used to help us get the necesarry depencencies.

XPM runs using Node.js so grab that form [here](https://nodejs.org/en/). After installation, open a terminal and type `npm -v`. A reply with the version number means that the instalation was successful.

XPM instalation instructions can be found [here](https://www.npmjs.com/package/xpm) and are OS specific. Entering `xpm --version` to your terminal should return the software version.

### The ARM Toolchain

Using XPM it is very easy to install the ARM toolchain. Enter the command `xpm install --global @gnu-mcu-eclipse/arm-none-eabi-gcc`.

### Windows build tools

If you are using windows you need to install this!

`xpm install --global @gnu-mcu-eclipse/windows-build-tools`

### Programer/Debugger Drivers

Now its the time to install your programer's drivers. This tutorial was made using an ST-Link v2 which you can get from almost anywhere.
If you have an ST-Link the drivers can be found [here](https://www.st.com/en/development-tools/stsw-link009.html) otherwise consult the manufuturer of your tool.

### OpenOCD

This dependency allows SWD access from GDB and it is essential for debugging. Run `xpm install --global @gnu-mcu-eclipse/openocd`.

### Java

Java is needed by Eclipse so please download it from [here](https://www.oracle.com/technetwork/java/javase/downloads/index.html).

### GNU MCU Eclipse IDE

Now its finally time to install the IDE. Use the Release page [here](https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/) to get the latest version.

## Configuring Eclipse

Open up the Eclipse IDE we just downloaded. To import our QMK directory select File -> Import -> C/C++ -> Existing code as Makefile Project. Select next and use Browse to select your QMK folder. In the tool-chain list select ARM Cross GCC and select Finish.

Now you can see the QMK folder on the left hand side. Right click it and select Properties. On the left hand side, expand MCU and select ARM Toolchain Paths. Press xPack and OK. Repeat for OpenOCD Path and if you are on windows for Build Tool Path. Select Apply and Close.

Now its time to install the necessary MCU packages. Go to Packs perspective by selecting Window -> Open Perspective -> Others -> Packs. Now select the yellow refresh symbol next to the Packs tab. This will take a long time as it is requesting the MCU definitions from various places. If some of the links fail you can probably select Ignore.

When this finishes you must find the MCU which we will be building/debugging for. In this example I will be using the STM32F3 series MCUs. On the left, select STMicroelectonics -> STM32F3 Series. On the middle window we can see the pack. Right click and select Install. Once that is done we can go back to the default perspective, Window -> Open Perspective -> Others -> C/C++.

We need to let eclipse know the device we intent to build QMK on. Right click on the QMK folder -> Properties -> C/C++ Build -> Settings. Select the Devices tab and under devices select the appropriate variant of your MCU. For my example it is STM32F303CC

While we are here let's setup the build command as well. Select C/C++ Build and then the Behavior tab. On the build command, replace `all` with your necessary make command. For example for a rev6 Planck with the default keymap this would be `planck/rev6:default`. Select Apply and Close.

## Building

If you have setup everything correctly pressing the hammer button should build the firmware for you and a .bin file should appear.

## Debugging

### Connecting the Debugger

ARM MCUs use the Single Wire Debug (SWD) protocol which comprises of the clock (SWCLK) signal and the data (SWDIO) signal. Connecting this two wires and ground should be enough to allow full manipulation of the MCU. Here we assume that the keyboard will be powered though USB. The RESET signal is not necessary as we can manually assert it using the reset button. For a more advance setup, the SWO signal can be used which pipes printf and scanf asynchronously to the host but for our setup we will ignore it.

NOTE: Make sure the SWCLK and SWDIO pins are not used in the matrix of your keyboard. If they are you can temporarily switch them for some other pins.

### Configuring the Debugger

Right click on your QMK folder, select Debug As -> Debug Configuration. Here double click on GDB OpenOCD Debugging. Select the debugger tab and enter the configuration necessary for your MCU. This might take some fiddling and googleing to find out. The default script for the STM32F3 is called stm32f3discovery.cfg. To let OpenOCD know, in the Config options enter `-f board/stm32f3discovery.cfg`.

NOTE: In my case this configuration script requires editing to disable the reset assertion. The locations of the scripts can be found in the actual executable field usually under the path `openocd/version/.content/scripts/board`. Here I edited `reset_config srst_only` to `reset_config none`.

Select Apply and Close.

### Running the Debugger.

Reset your keyboard.

Press the bug icon and if all goes well you should soon find yourself in the debug perspective. Here the program counter will pause at the beginning of the main function and way for you to press Play. Most of the features of all debuggers work on ARM MCUs but for exact details google is your friend!


Happy debugging!
Loading