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

Adds support for XD84 Pro #9750

Merged
merged 21 commits into from
Nov 4, 2020
Merged

Adds support for XD84 Pro #9750

merged 21 commits into from
Nov 4, 2020

Conversation

katawajojo
Copy link
Contributor

Adds QMK support for KPRepublic's XD84 Pro PCB.
Includes ANSI, ISO, and VIA (ANSI layout only currently) Support.

Description

Adds support for KPRepublic's XD84 Pro PCB.
The PCB's silkscreen refers to this board as "XD84 v2.0"

I've also created a VIA pull request as well.

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

Checklist

  • My code follows the code style of this project.
  • 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).

Adds QMK support for KPRepublic's XD84 Pro PCB.
Includes ANSI, ISO, and VIA (ANSI layout only currently) Support.
keyboards/xd84pro/keymaps/via/rules.mk Outdated Show resolved Hide resolved
keyboards/xd84pro/readme.md Outdated Show resolved Hide resolved
keyboards/xd84pro/readme.md Outdated Show resolved Hide resolved
keyboards/xd84pro/rules.mk Outdated Show resolved Hide resolved
keyboards/xd84pro/rules.mk Outdated Show resolved Hide resolved
keyboards/xd84pro/xd84pro.c Outdated Show resolved Hide resolved
@fauxpark fauxpark added keyboard via Adds via keymap and/or updates keyboard for via support labels Jul 18, 2020
@fauxpark fauxpark requested a review from a team July 18, 2020 12:47
@katawajojo
Copy link
Contributor Author

Thanks for the suggestions, I’ll take care of them when I wake up in the morning.

@sigprof
Copy link
Contributor

sigprof commented Jul 18, 2020

You should make a LAYOUT_all macro (and the corresponding entry in info.json) which includes all possible key positions. At the moment there are two missing parts:

  1. According to the vendor documentation (1, 2), this PCB supports splitting the 2U Backspace key into 2×1U keys. You should figure out the matrix positions of those keys (one of them probably occupies some of remaining positions on the last row, the other is most likely the same as the 2U Backspace) and add them to LAYOUT_all.

  2. This PCB, like other XD* PCBs, not just has three distinct matrix positions for the ANSI backslash, ISO NUHS and Enter, but actually supports installing 1U+1.25U keys in the place normally occupied by the 2.25U ANSI Enter. Again, you should check how those matrix positions are connected (although in this case the fact that the 1.25U part of ANSI Enter is connected in parallel to the normal ANSI Enter pads is even visible on this shop photo), and add all those 3 keys to LAYOUT_all.

The rest of LAYOUT_all should be the same as LAYOUT_75_iso (so that the NUBS key would be present).

After adding this LAYOUT_all macro you should use it in the via keymap to make a layout which could work for both ISO and ANSI out of the box (this should be possible on this PCB, even the ANSI backslash and ISO NUHS could be made distinct). For the split Backspace you could just assign KC_BSPC to both halves of the 2U Backspace.

@stale
Copy link

stale bot commented Sep 2, 2020

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 awaiting review, breaking_change, in progress, or on hold to prevent the issue from being re-flagged.

@Popkornium18
Copy link

@katawajojo are you still planning to make the requested changes? If not I might give it a go, since I picked up this board thinking it was supported 🤦

@katawajojo
Copy link
Contributor Author

Sorry! I've been working on these changes, but I've also been hella busy with school coming up and work. Give me like, a day or two to finish these up, and update the pull.

@katawajojo
Copy link
Contributor Author

katawajojo commented Sep 5, 2020

Okay, so I'm going to remove the VIA stuff for now, as I need to do some research on doing that all properly. I have every layout mapped and ready, I'm just not sure how to go about properly creating the LAYOUT_all macro.

Side note: this keyboard has a backlighting issue that's resolved with the pull request #9575. Applying the code from this pull request fixes the flickering backlight.

Attached is the matrix layout for all keys, and all supported configurations of the board.
matrix+layouts.txt

@stale stale bot removed the awaiting changes label Sep 5, 2020
Removing VIA for the time being. I'll need to sit and figure this one out.
@Popkornium18
Copy link

Side note: this keyboard has a backlighting issue that's resolved with the pull request #9575. Applying the code from this pull request fixes the flickering backlight.

It doesn't fix the problem for me 🤔

@katawajojo
Copy link
Contributor Author

katawajojo commented Sep 5, 2020

Side note: this keyboard has a backlighting issue that's resolved with the pull request #9575. Applying the code from this pull request fixes the flickering backlight.

It doesn't fix the problem for me 🤔

Odd, as this fixed the flickering issue on both XD84 Pro boards I have.

Side thought: Do you have the RGB underglow cycling through effects at all? or is it just a solid color and brightness?

@drashna drashna requested a review from a team September 7, 2020 01:43
@katawajojo katawajojo requested review from fauxpark and removed request for a team September 7, 2020 04:35
@Popkornium18
Copy link

Popkornium18 commented Sep 7, 2020

Side thought: Do you have the RGB underglow cycling through effects at all? or is it just a solid color and brightness?

No I was using the cycling effect. With the underglow disabled the flickering goes away. 🤔

@katawajojo
Copy link
Contributor Author

Side thought: Do you have the RGB underglow cycling through effects at all? or is it just a solid color and brightness?

No I was using the cycling effect. With the underglow disabled the flickering goes away. 🤔

Okay, yeah, underglow effects can still cause issues with backlight flickering. If you read through that pull request, it mentions this. Iirc, this is just a bug within QMK itself.

keyboards/xd84pro/config.h Outdated Show resolved Hide resolved
keyboards/xd84pro/config.h Outdated Show resolved Hide resolved
keyboards/xd84pro/rules.mk Outdated Show resolved Hide resolved
keyboards/xd84pro/info.json Outdated Show resolved Hide resolved
keyboards/xd84pro/info.json Outdated Show resolved Hide resolved
@katawajojo
Copy link
Contributor Author

For future knowledge, should I forgo using "key_count" in the info.json?

@fauxpark
Copy link
Member

Yep. It's not really necessary as you can just count the number of elements in the layout array.

@katawajojo
Copy link
Contributor Author

Yep. It's not really necessary as you can just count the number of elements in the layout array.

Huh! I never thought about that. Good to know, thanks! c:

Copy link
Member

@fauxpark fauxpark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, one last thing then I think this is good to go.

keyboards/xd84pro/info.json Outdated Show resolved Hide resolved
@fauxpark fauxpark requested review from noroadsleft and a team October 29, 2020 18:29
@katawajojo
Copy link
Contributor Author

I also just updated the VIA .json file and updated the VIA pull request as well. This should complete the VIA and QMK port for this PCB.

@katawajojo
Copy link
Contributor Author

Any update on this?

@fauxpark
Copy link
Member

fauxpark commented Nov 4, 2020

Thanks!

@fauxpark fauxpark merged commit d46fa22 into qmk:master Nov 4, 2020
ringmaster pushed a commit to ringmaster/qmk_firmware that referenced this pull request Nov 5, 2020
Co-authored-by: Ryan <[email protected]>
Co-authored-by: katawajojo <vibri@localhost>
Co-authored-by: katawajojo <[email protected]>
barrettclark pushed a commit to barrettclark/qmk_firmware that referenced this pull request Nov 5, 2020
* upstream/master: (153 commits)
  [Keymap] add brandonschlack userspace and keymaps (qmk#10411)
  [Keymap] add ai03/polaris:mekberg (qmk#10508)
  CLI: Add `qmk clean` (qmk#10785)
  Adds support for XD84 Pro (qmk#9750)
  Freyr refactor (qmk#10833)
  KC60 refactor (qmk#10834)
  [Keyboard] Fixes for PloopyCo mouse and readmes (qmk#10841)
  Enable extrakeys, mousekeys for all VIA keymaps. (qmk#10740)
  Add OLED support for Riblee F411 (qmk#10778)
  NK65 eeprom compatibility with 128KB and 256KB (qmk#10804)
  Add support for Noxary Vulcan (qmk#10822)
  Enable media keys support for Canoe VIA keymap (qmk#10829)
  Phantom refactor (qmk#10805)
  `qmk info`: Add `--ascii` flag (qmk#10793)
  [Keymap] Corrected the dvorak layout for kinesis advantage (qmk#10808)
  [Keyboard] Fix keyboard matrix scan rate with F072 (qmk#10226)
  [Keyboard] nullbitsco/nibble Configurator rework (qmk#10814)
  [Keyboard] VIA Support: Exent 65% (qmk#10797)
  [Keyboard] Add keebsforall/freebird60 (qmk#10774)
  add 65_ansi_split_bs to default community layouts (qmk#10770)
  ...
nicsuzor added a commit to nicsuzor/qmk_firmware that referenced this pull request Nov 14, 2020
* upstream/master: (48 commits)
  [Keymap] idobo:egstad (qmk#10783)
  Adding few Korean translated files (qmk#5895)
  [Keyboard] Keebwerk MEGA Initial commit (qmk#10777)
  Indicator LEDs as config (qmk#10816)
  add missing physical layout options and VIA support for Sesame (qmk#10471)
  [Keyboard] Fix unused variables in mschwingen modelm (qmk#10811)
  Add big spacebar defaults to Underscore33 (qmk#10731)
  Add qmk info -l to show the layouts too (qmk#10882)
  New command: qmk lint (qmk#10761)
  Updates to Talljoe's Keymaps (qmk#10115)
  [Keymap] bcat keymaps and userspace (qmk#10705)
  add dp60 indicator mode (qmk#8801)
  E85 backlight & LED indicator updates (qmk#10678)
  Add support for 4 IS31FL3731 devices (qmk#10860)
  [Keymap] add brandonschlack userspace and keymaps (qmk#10411)
  [Keymap] add ai03/polaris:mekberg (qmk#10508)
  CLI: Add `qmk clean` (qmk#10785)
  Adds support for XD84 Pro (qmk#9750)
  Freyr refactor (qmk#10833)
  KC60 refactor (qmk#10834)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
keyboard via Adds via keymap and/or updates keyboard for via support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants