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 (4 row) #585

Closed
wants to merge 5 commits into from
Closed

Helix (4 row) #585

wants to merge 5 commits into from

Conversation

maxdubrinsky
Copy link

I've had this branch kicking around for several months, but now that there's a shield definition for the 5 row I figured now was as good a time as any.

  • Adds support for the 4-row Helix v2
  • Fixes a couple bugs with the setup script

If there's anything please let me know, I may have missed something through all of my rebasing/merging.

@innovaker innovaker added enhancement New feature or request shields PRs and issues related to shields labels Jan 6, 2021
@innovaker innovaker requested a review from Nicell January 6, 2021 10:27
Copy link
Member

@Nicell Nicell left a comment

Choose a reason for hiding this comment

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

Thanks for working on this. I believe the helix_4.conf file should have CONFIG_ ZMK_RGB_UNDERGLOW=y but commented out.

Also could you add this shield to the following files?

docs/docs/hardware.md: You should add the Helix 4 Row to this list

docs/static/setup.ps1 and docs/static/setup.sh: Helix 4 Row should be added as a split option for both files.

.github/workflows/build.yml Outdated Show resolved Hide resolved
app/boards/shields/helix_4/Kconfig.defconfig Show resolved Hide resolved
Comment on lines 27 to 28
config DEVICE_POWER_MANAGEMENT
default y
Copy link
Member

Choose a reason for hiding this comment

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

This is already enabled in the main Kconfig I think? Should be able to remove it.

Copy link
Author

Choose a reason for hiding this comment

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

I wasn't sure. When I checked the full config output it was not set, and app/Kconfig has it under ZMK_SLEEP. Is that the one that should be default y?

Comment on lines +32 to +35
config WS2812_STRIP
default y
Copy link
Member

Choose a reason for hiding this comment

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

This is neat. I like it.

app/boards/shields/helix_4/helix_4.dtsi Outdated Show resolved Hide resolved
app/boards/shields/helix_4/helix_4_left.overlay Outdated Show resolved Hide resolved
app/boards/shields/helix_4/helix_4_right.overlay Outdated Show resolved Hide resolved
Comment on lines 124 to 125
21 ) shield_title="Helix (5)" shield="helix"; split="y"; break;;
22 ) shield_title="Helix (4)" shield="helix_4"; split="y"; break;;
Copy link
Member

Choose a reason for hiding this comment

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

I'm wondering if this should be listed as "Helix" and "Helix 4 Row"? It seems to me that this variant is much less popular?

Copy link
Author

Choose a reason for hiding this comment

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

I'm not sure about which is more used, I only know one other person who uses one and he has both so 🤷‍♂️

Either way, how would you feel about merging this into one helix with multiple kscans and transforms? I'm not super familiar with devicetree syntax, so I'm not sure what config values would get set to differentiate between the 4 and 5 row variants of this board from a zmk-config.

Copy link
Member

@Nicell Nicell Jan 7, 2021

Choose a reason for hiding this comment

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

You're right here. It's probably better to have one helix with multiple transforms. I'm thinking just an additional transform might be enough. The Kyria shield has an example of this with the default transform and 5 column transform. Could you look into this?

@maxdubrinsky
Copy link
Author

Thanks for working on this. I believe the helix_4.conf file should have CONFIG_ ZMK_RGB_UNDERGLOW=y but commented out.

Also could you add this shield to the following files?

docs/docs/hardware.md: You should add the Helix 4 Row to this list

docs/static/setup.ps1 and docs/static/setup.sh: Helix 4 Row should be added as a split option for both files.

Definitely, the 4 and 5 row variants are kind of served from the same github repo, but I could specify both 4 and 5 row support. I will update the powershell script, is there something else that needs updating in the bash script?

I've noticed that those main conf files don't actually get included in the build process for splits, I'm assuming that's a bug?

that scene in phantom menace when they make it legal

try some led stuff

steal some functionality

revert some stuff

revert keymap;

revert display changes

add scripts and stuff

remove less-standard keybind

remove rgb since its brokenish

sync with new keymap

fix some config

maybe this fixes rgb

fix config

move to 4 row folder
@maxdubrinsky
Copy link
Author

Sorry for going silent on this, haven't been able to focus on keyboard firmware the past few weeks.

In testing I've found that simply treating my 4-row as a 5-row with a different keymap worked fine. The only difference is an additional row in the keymap transform and another gpio pin enabled in the kscan, not sure if that warrants another stack of config.

Up to you, but I'd be happy to close this/turn this change into a docs update to indicate my solution.

@Nicell
Copy link
Member

Nicell commented Jan 29, 2021

@maxdubrinsky I'm thinking it might be worth it. All it should require is another keymap transform and another DTS file that changes the chosen matrix transform I believe.

@petejohanson
Copy link
Contributor

Thank you, contributor, for your patience with how long review and merge of boards/shields has taken!

There are three recent refactors/changes to boards and shields that require some attention, and then we can finally get this PR merged!

  1. Hardware Metadata
  2. Pro Micro shield DT naming changes
  3. Split changes for BLE advertising

Hardware Metadata

The Problem

When first developing the process around contributing new shields/boards to ZMK, we failed to recognize that several key files (setup scripts, documentation page of supported hardware, and GH Action build.yml file) required changes, often in the same spot, for every PR. This resulted in immediate merge conflicts for every other PR after one was merged, which is a headache for contributors.

The Fix

By adding discrete metadata files that are located with the boards/shields in question, and using that metadata to generate setup scripts, website hardware list, etc., users can contributing new hardware descriptions without the need to change the same files that other contributors are changing.

Next Steps

First, refer to https://zmk.dev/docs/development/hardware-metadata-files to familiarize yourself with the new metadata file format.

Next, you have two options for fixing up your PR:

  1. If comfortable with git rebase, perform an interactive rebase and revert any changes to build.yml, hardware.md, or the setup scripts setup.sh/setup.ps1, and then add the new metadata YAML file. Then force push your branch. Or,
  2. Create a new branch from an up-to-date main, copy in the files for your new hardware, add the metadata file, then commit and push the new branch. Then, edit your open PR to point to your new branch.

Pro Micro shield DT naming changes

In #876, we have simplified the DT naming for the "nexus node" we expose for pro-micro compatible boards, deprecating the use of pro_micro_a, and renaming pro_micro_d node to simply pro_micro. For pro-micro boards and shields, you'll need to adjust your DT to use the proper names.

Please see https://zmk.dev/docs/development/new-shield#shield-overlays for the updated docs on this.

Split Shield Advertising Changes

In addition, if this is a split PR, please see #658 where we have changed our conventions to remove the the name from the right sides, to prevent users attempting to pair with them and causing split sync issues. This also includes removing the " Left" suffix from the naming on the left side. See the changes in that PR for examples of what to change with your split shield.

Getting Help

If you have any questions about any of these changes, please comment here and tag @zmkfirmware/boards-shields or ask in the #boards-shields Discord channel.

@Nicell
Copy link
Member

Nicell commented Jan 30, 2022

Hello! We're closing this PR due to there being no activity since the metadata update to ZMK in September of last year. If you are still interested in updating this PR, please let us know, and we can reopen it and review your changes (hopefully a lot faster this time)!

@Nicell Nicell closed this Jan 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request shields PRs and issues related to shields
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants