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

Updated QMK to include latest features and fixed resulting bugs #18

Closed
wants to merge 694 commits into from

Conversation

xp-dv
Copy link

@xp-dv xp-dv commented Jun 9, 2022

Purpose

This is for new GMMK 2 owners to have a working, updated version of QMK without the wait for the next complete official release. I know these exact features are in development in other branches of this repo. This is to prevent frustration for new GMMK 2 owners. I started these fixes because I was frustrated and confused that Caps Word didn't work on my new GMMK 2 96% despite being listed as a core feature on QMK's documentation.

Description

Merged qmk/qmk_firmware (most recent version as of 5 June, 2022) and GloriousThrall/qmk_firmware and fixed merge conflicts (all trivial).

Attempted to compile after merge was successful but got this error: (gmmk/gmmk2/p96/ansi: led_config: ansi.c: Unable to parse g_led_config matrix data).

Error fixed by reformatting the led config array in gmmk/gmmk2/p96/ansi/ansi.c , gmmk/gmmk2/p96/iso/iso.c , gmmk/gmmk2/p65/ansi/ansi.c , and gmmk/gmmk2/p65/ansi/ansi.c. (See commits for additional info)

Changed SPI mode back to 0 or else RGB will not turn on. (It was set to 3 temporarily as a bug fix by qmk/qmk-firmware)

Found compile error in gmmk/gmmk2/p96/iso/iso.c. Fixed by deleting code I believe was copy-pasted in by mistake (Erroneous code is found in https://github.com/GloriousThrall/qmk_firmware/blob/gmmk_v2_keyboard/keyboards/gmmk/gmmk2/p96/iso/iso.c, but not in https://github.com/GloriousThrall/qmk_firmware/blob/glorious_gmmk2/keyboards/gmmk/gmmk2/p96/iso/iso.c)

QMK compile successful and no errors for all possible firmware combinations (96, 65, ansi, iso). Flash to new GMMK 2 96% keyboard successful and functional for both ansi and iso.

The changes made by myself are what is listed above. The rest of the commits and changes are just what was carried over from the merge.

Note: I do not own a GMMK 2 65%, so I cannot test if flash is successful on that platform. However, given that I only made the changes above and all compiling was successful, there should be no issue.
Note: I ran into problems with my repo and PRing so the commit history was manually edited/organized.

This would not have been possible if it weren't for @filterpaper. HUGE thank you for the help.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

  • No outside issues fixed or closed by me.

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

hunner and others added 30 commits April 30, 2022 08:56
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
* keyboards/ryanskidmore/rskeys100: add rskeys100 draft firmware

* keyboards/ryanskidmore/rskeys100: fix firmware

* ryanskidmore/rskeys100: fix remaining bugs

* keyboards/ryanskidmore/rskeys100: finishing touches on firmware

* keyboards/ryanskidmore/rskeys100: migrate from full replacement matrix scanning to lite, move rgb matrix enable call to keymap

* keyboards/ryanskidmore/rskeys100: remove undefines, clarify comments

* ryanskidmore/rskeys100: remove unused imports

* keyboards/ryanskidmore/rskeys100: pr feedback
Co-authored-by: Jonavin <=>
* initial ibis commit

* updates etc

* layout updates to fix mismatched keys

* Apply suggestions from code review

Co-authored-by: Joel Challis <[email protected]>

* Update keyboards/hineybush/ibis/info.json

Co-authored-by: Joel Challis <[email protected]>

* Update keyboards/hineybush/ibis/readme.md

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Ryan <[email protected]>
* Fix for key -> LED mapping

* Revert whitespace changes

* Revert whitespace changes 2

Co-authored-by: theVDude <[email protected]>
@maxmousee
Copy link

I tested this on my GMMK 2 65% ANSI and it seems to be working fine! :)

ethwu pushed a commit to ethwu/qmk_firmware that referenced this pull request Jun 28, 2022
* [keyboard] Initial support for Anne Pro 2

* [keyboard][AnnePro2] Keymap:update to a reasonable keymap with caps+hjkl => arrow

* :(

* changed to use HSI

* support for annepro2 c18

* keyboard/annepro2: Very stupid matrix scan bug fix.

* typo

* swap COL14/13

* keyboard/annepro2: startup secondary LED MCU

* keyboard/annepro2: typo fix

* Add IO Values

* Disable Combo feature

* Update default keymap to Anne Pro 2 Official Keymap

* keyboard/annepro2: keymap layer name changes

* keyboard/annepro2 BLE Support

* Fix keymap comment

FN1 ESC was listed as ~ instead of `

* keyboard/annepro2: Bluetooth path

* Keyboard annepro2 bidir led comms (GloriousThrall#5)

* Added bidirectional shine comms and moved led functionality to new file

* Added bidirectional shine comms and moved led functionality to new file

* Restore original functionality to existing keymaps using new shine commands

* Fix dangling bracketless if statements

* PR cleanup

* add custom keycodes to switch led profiles

* Optimize code

* switch to prev profile before turning leds off

* Add persistent led support with eeprom (GloriousThrall#9)

* adding HT32 support to chibios SPI master driver

* add support for W25X20CL SPI eeprom

* add makefile flag for eeprom feature

* add spi support to keyboard startup and config

* example keymap using eeprom profile loading

* Cleanup to fix C15 eeprom/spi build errors (GloriousThrall#11)

* Cleanup to fix C15 eeprom/spi build errors

* add newline at eof

* LED Masking support for Shine

Introduce companion update to ledSetMask and ledClearMask.
In keymap `codetector` there is example of how to map caps_lock
to the caps_lock key light on the keyboard.

* [AnnePro2]: update bluetooth connection

* Merge the custom keys enums on annepro2.h (GloriousThrall#13)

* Keyboard annepro2 ble caps lock (GloriousThrall#12)

* Move matrix_scan_kb out of board.c to annepro2.c

* add buffer clear after init and caplock polling

* Add support for LED intensity (GloriousThrall#15)

* Improve logic for switching off and on of LEDs (GloriousThrall#16)

* Implement animation speed (GloriousThrall#17)

* Include logic to send solid colors as foreground to shine and add sample profiles (GloriousThrall#14)

Include the logic to send a solid color from qmk to shine. That solid color will act as a foreground (will override the current profile) until reset (witch will reactivate the current profile).
This functionality depends on changes made for shine as well.

Include 3 new profiles:

    default-full-caps -> same as default, but with the logic of using the red foreground color on caps lock.
    default-layer-indicators -> same as default, but with the logic of red foreground on caps lock, green foreground on FN1 and blue foreground on FN2.
    thomazmoura -> my own profile as a sample of an over-engineered advanced case scenario.

* Implement reactive lighting effects (GloriousThrall#18)

* Added multiarrow keymap (GloriousThrall#19)

* Add LED documentation (GloriousThrall#26)

* add LED documentation

* add LED documentation to other default profiles

* Implement QMK's IAP default keybind (GloriousThrall#29)

* Add keymap for going into IAP

* switch to default QMK keybind for IAP mode

* implement bluetooth IAP mode

* Make default config more like Obins stock default (GloriousThrall#30)

* Add new message type for resetting foreground color (GloriousThrall#31)

* annepro2(bluetooth): add media keys support (GloriousThrall#41)

* Asynchronous, robust serial protocol. (GloriousThrall#39)

* bla personal ap2-c18 keymap.

* Bidirectional, asynchronous message-based communication with Shine.

- Requires a matching Shine version.
- Protocol is resiliant to loosing bytes during communication, chips won't lock
  waiting for bytes that aren't coming.
- Chips resynchronize in event of loosing a byte using a AA0D header.

Regressions:
- Key masking/locking doesn't work right now. (did it work before?)
- Not all user keymaps build against it.

* Clang-format + code to ease reducing speed of LED UART.

- Did clang-format --style=file -i on multiple files according to
  coding_conventions_c.md

- Added separate serial speed for IAP boot and Led communication, it's possible
  that reducing this to 9600 helped someone with faulty HW. With this code they
  can do it with simple replacing of a value.

* Main chip can set/clear foreground using a mask mechanism.

- Some preparations for selective colouring.

* Selective mask works - tested on capslock.

- Migrated personal keymaps to new status API.

* Clear the foreground colors to show profile when it's modified.

- Show example of achieving selective caps-lock painting + foreground painting
  for layers.
- annepro2LedMaskSetRow is implemented, but still requires testing.

* Implement the QMK side of led blinking to indicate the command was received.

- This stupidly blinks the key when user presses one of the bluetooth commands
to let the user know that the command was received and forwarded to the BT chip.

- TODO: Row/col key positions are hardcoded and not taken from the keymap.

* Reduce memory footprint.

Applying code review suggestions. Moved msgId to globals - preparing for
transmission without copying payload when no retries are necessary.

Added empty readme.md files - required by QMK lint.

Co-authored-by: Tomasz bla Fortuna <[email protected]>

* Let the LED chip settle a bit before waking it from the bootloader. (GloriousThrall#42)

At least for one person that helps to reliably get the LEDs working without
disconnecting/reconnecting the power to the board multiple times.

Co-authored-by: Tomasz bla Fortuna <[email protected]>

* annepro2: rename KEYMAP to LAYOUT, as required by new version of QMK

* annepro2: update ChibiOS configuration files

* annepro2: fix undefined reference to dprint and timer_read32

* annepro2: update ChibiOS MCU name

* update spi driver, fix bad merging with master

* annepro2: add readme and info.json

* annepro2: make code compatible with QMK coding conventions

* tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2)

* AnnePro2: removed core changes

* AnnePro2: Leave only default keymaps

Missing keymaps will be restored in another PR

* annepro2: add licence information

* annepro2: satisfy qmk lint

* annepro2: fix drashna's suggestions

* annepro2: fix matrix

* annepro2: apply code review suggestions

* annepro2: apply remaining code review suggestions

* annepro2: update info.json

* annepro2: remove include

* annepro2: rename keymap to layout

* annepro2: fix typing

* annepro2: apply suggestions from tzarc's code review

Co-authored-by: Nick Brassel <[email protected]>

* annepro2: more fixes

* annepro2: apply suggestions from code review

Co-authored-by: Joel Challis <[email protected]>

* annepro2: rename file

* more fixes

* Apply suggestions from @tzarc code review

Co-authored-by: Nick Brassel <[email protected]>

* Update keyboards/annepro2/protocol.h

Co-authored-by: Nick Brassel <[email protected]>

* Update keyboards/annepro2/chconf.h

Co-authored-by: Nick Brassel <[email protected]>

* apply CR suggestions

* upgrade readme

* IAP

* update IAP comments, defines

* led fix

* init fix

* annepro2: GPIO cleanup

* annepro2: ioline

* change waiting time

* Start develop for 2022q2

* [Core] Squeeze AVR some more with `-mrelax` and `-mcall-prologues` (qmk#16269)

* Rework generate-api CLI command to use .build directory (qmk#16441)

* Remove `send_unicode_hex_string()` (qmk#16518)

* Change data driven "str" type to represent a quoted string literal (qmk#16516)

* Change data driven "str" type to represent a quoted string literal

* Update docs

* Map data driven `DESCRIPTION` as string literal (qmk#16523)

* update bootloader

* Revert "Merge pull request GloriousThrall#2 from qmk/develop"

This reverts commit 9c76065, reversing
changes made to 240745d.

* Revert "update bootloader"

This reverts commit 240745d.

* fix rules.mk

* change PROGRAM_CMD

Co-authored-by: codetector <[email protected]>
Co-authored-by: Fagl4 <[email protected]>
Co-authored-by: Jakob Gillich <[email protected]>
Co-authored-by: tech2077 <[email protected]>
Co-authored-by: jcdeA <[email protected]>
Co-authored-by: Thomaz Moura <[email protected]>
Co-authored-by: Darkhan <[email protected]>
Co-authored-by: Paco <[email protected]>
Co-authored-by: jmarmstrong1207 <[email protected]>
Co-authored-by: 1Conan <[email protected]>
Co-authored-by: Tomasz bla Fortuna <[email protected]>
Co-authored-by: Tomasz bla Fortuna <[email protected]>
Co-authored-by: Nick Brassel <[email protected]>
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: QMK Bot <[email protected]>
Co-authored-by: Stefan Kerkmann <[email protected]>
Co-authored-by: Ryan <[email protected]>
@maxmousee
Copy link

FYI @GR4NDIVI4ST3R I was able to flash VIA using this as well! Great job :)

@ro8inmorgan
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

@maxmousee
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

@ro8inmorgan
Copy link

ro8inmorgan commented Jul 9, 2022

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

In case you have other issues I forked this git with my fixes added on top of it like correct RGB, eeprom saving and underglow aligned correctly
https://github.com/ro8inmorgan/qmk_firmware

@maxmousee
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

In case you have other issues I forked this git with my fixes added on top of it like correct RGB, eeprom saving and underglow aligned correctly https://github.com/ro8inmorgan/qmk_firmware

Thank you very much! :)

@ro8inmorgan
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

In case you have other issues I forked this git with my fixes added on top of it like correct RGB, eeprom saving and underglow aligned correctly https://github.com/ro8inmorgan/qmk_firmware

Thank you very much! :)

Your welcome! Make sure to flash it with the glorious_gmmk2 branch as per instructions on the glorious site. There are all my fixes merged. I also enabled more effects and removed one effect that crashes the board.

@maxmousee
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

In case you have other issues I forked this git with my fixes added on top of it like correct RGB, eeprom saving and underglow aligned correctly https://github.com/ro8inmorgan/qmk_firmware

Thank you very much! :)

Your welcome! Make sure to flash it with the glorious_gmmk2 branch as per instructions on the glorious site. There are all my fixes merged. I also enabled more effects and removed one effect that crashes the board.

Do you know if there's a way to get the correct via design for it? Currently it's using the GMMK Pro design and it's so wrong it's barely usable for reassigning any key :(

@ro8inmorgan
Copy link

GMMK2 compact RGB does not turn back on after disconnecting USB on latest commit on branch gmmk2_p65

For me, it works fine:)

In case you have other issues I forked this git with my fixes added on top of it like correct RGB, eeprom saving and underglow aligned correctly https://github.com/ro8inmorgan/qmk_firmware

Thank you very much! :)

Your welcome! Make sure to flash it with the glorious_gmmk2 branch as per instructions on the glorious site. There are all my fixes merged. I also enabled more effects and removed one effect that crashes the board.

Do you know if there's a way to get the correct via design for it? Currently it's using the GMMK Pro design and it's so wrong it's barely usable for reassigning any key :(

Haven't looked much into VIA to be honest. I think you can make your own json key file for it. I run all my customisations from code. To be honest its not too hard just look into a few keymaps tutorials. You will be happy you did,.

@xp-dv
Copy link
Author

xp-dv commented Jul 10, 2022

@ro8inmorgan did you pull from the branch on my actual repo (glorious_gmmk2 branch) or did you just copy the changes? I can't really tell what you changed differently. All I did was pull from master and fix the layout issues. There's not really much I could have messed up that wasn't already messed up from the start.

@ro8inmorgan
Copy link

@ro8inmorgan did you pull from the branch on my actual repo (glorious_gmmk2 branch) or did you just copy the changes? I can't really tell what you changed differently. All I did was pull from master and fix the layout issues. There's not really much I could have messed up that wasn't already messed up from the start.

@GR4NDIVI4ST3R
In this repo the gmmk2_p65 branch the RGB works(altough underglow is wrong) but somehow the EEPROM code is messed up. RGB works after flashing but once disconnecting usb and reconnecting it doesn't work again. The glorious_gmmk2 branch has all messed up RGB like for the ESC key red is assigned to driver 1 and green and blue to driver 0 etc.

I forked this repository and mixed both branches to create a working version. Also I fixed the underglow plus removed the fractal effect which was causing a crash. Also enabled the reactive effects by default.
I don't know about the other boards, I'm specifically targeting the GMMK2 Compact as that's the one I have.

@xp-dv
Copy link
Author

xp-dv commented Jul 15, 2022 via email

@guilleortas
Copy link

guilleortas commented Aug 31, 2022

Hello @ro8inmorgan, I tested your fork on the glorious_gmmk2 branch and everything seems to be working, but VIA detects my GMMK 2 65% ISO as a GMMK Pro, even after loading the appropriate design file, so nothing matches in the layout. I have posted a comment on a merged PR on the official QMK repo with the same results. Any ideas?

@xp-dv
Copy link
Author

xp-dv commented Sep 8, 2022

@guilleortas and everyone who has commented so far, please do not post any further communication here, unless it relates to this specific pull request. Problems with the parent branch should not be discussed here. The VIA issue is one such problem. I appreciate everyone trying to fix GMMK's broken firmware, but that is not a problem with my pull request. This kind of thing gets pull requests denied.

@guilleortas
Copy link

guilleortas commented Sep 8, 2022

@GR4NDIVI4ST3R my comment was specific about this PR, unless I didn't understand correctly. Peer review is the whole point of open source, if it doesn't work for the majority the PR should be denied

@github-actions
Copy link

Thank you for your contribution!
This pull request has been automatically marked as stale because it has not had activity in the last 45 days. It will be closed in 30 days if no further activity occurs. Please feel free to give a status update now, or re-open when it's ready.
For maintainers: Please label with bug, awaiting review, breaking_change, in progress, or on hold to prevent the issue from being re-flagged.

@github-actions github-actions bot added the stale label Oct 24, 2022
@github-actions
Copy link

Thank you for your contribution!
This pull request has been automatically closed because it has not had activity in the last 30 days. Please feel free to give a status update now, ping for review, or re-open when it's ready.
// [stale-action-closed]

@github-actions github-actions bot closed this Nov 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.