-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Ergo S-1 OE #1333
Ergo S-1 OE #1333
Conversation
…nfs where not needed.
Merged In `main` from ZMK upstream, fixed build.
Fixed File Removal
I've received some help, this PR should be in a much better state now. Looking at it again, though, should this be a zmk-config repo instead? The case is available for purchase along with assembly instructions, but there isn't a custom PCB involved in this project. I'm not quite sure which makes the most sense. |
While the Ergo S-1 in a literal sense is 'handwired', i.e, each wire/diode is soldered individually to each switch, the pinout and switch layout is static every time, there is only one Ergo S-1. Unlike say a Dactyl, where the end user can customize the amount of rows, thumb clusters types, etc. Being that the Ergo S-1 is a concave keywell (harder to produce flexible pcb) with pre-defined data pins, and most importantly, one static design, I think it makes sense to have it as a shield personally. The build guide has the user wiring the rows and columns identically each time, and the shield has been coded around that. There's no ambiguity or remapping GPIO pins to accommodate different 'versions' of the Ergo S-1, as there is only one version of it. |
In retrospect, that's technically not true, my bad, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed it and left comments assuming this shield supports underglow, however I couldn't see anything related to LEDs in the project page. If it indeed isn't supported, you can remove the boards/nice_nano.overlay
file and ignore my comments on the .conf and .yml files.
Also, you might want to update the copyright years.
#include <dt-bindings/led/led.h> | ||
|
||
&spi1 { | ||
compatible = "nordic,nrf-spim"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs to be updated for pinctrl changes: https://zmk.dev/blog/2023/04/06/zephyr-3-2#move-to-pinctrl-driver. See another shield like https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/corne/boards/nice_nano.overlay as an example.
Also, you might want to duplicate this file (at least) for nice_nano_v2.overlay
since that is commonly used these days and this file won't add support for v2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might want to add lines like below to let the user enable underglow:
# Uncomment the following lines to enable the RGB Underglow
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
// | | INS | | | | | FN | | | | | | | | | . | ENT | | ||
// | | | | | ||
bindings = < | ||
&bt BT_CLR &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &kp KP_NUM&kp EQL &kp SLASH &kp STAR &trans |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
&bt BT_CLR &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &kp KP_NUM&kp EQL &kp SLASH &kp STAR &trans | |
&bt BT_CLR &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &kp KP_NUM &kp EQUAL &kp SLASH &kp STAR &trans |
Did this compile before with the missing space? Also EQL
-> EQUAL
since the former is deprecated.
url: https://github.com/wizarddata/Ergo-S-1 | ||
requires: [pro_micro] | ||
features: | ||
- keys |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- keys | |
- keys | |
- underglow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at it again, though, should this be a zmk-config repo instead?
I'm going to leave immediately-actionable suggestions in good faith and humor—but the answer to this question is prima facie "yes", and you should probably close this out.
Lack of any feedback for 14 months aside, the PR checklist effectively rules out end-user-assembled handwires unless you squint real hard...even if said end-user has to closely follow a specific set of instructions. Dactyls work the same way.
All that said; should you leave this PR open, perhaps squashing your commits and rewriting the message so it adheres to Conventional Commit guidelines will make the prospect of merging more attractive. It's a guess on my part, but it couldn't hurt.
label = "KSCAN"; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
label = "KSCAN"; |
This attribute is deprecated.
&spi1 { | ||
compatible = "nordic,nrf-spim"; | ||
status = "okay"; | ||
mosi-pin = <6>; | ||
// Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. | ||
sck-pin = <5>; | ||
miso-pin = <7>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Migration to the pinctrl
subsystem as part of the Zephyr 3.2 upgrade, and the &spi3
bus per #1746.
&spi1 { | |
compatible = "nordic,nrf-spim"; | |
status = "okay"; | |
mosi-pin = <6>; | |
// Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. | |
sck-pin = <5>; | |
miso-pin = <7>; | |
&pinctrl { | |
spi3_default: spi3_default { | |
group1 { | |
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | |
}; | |
}; | |
spi3_sleep: spi3_sleep { | |
group1 { | |
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>; | |
low-power-enable; | |
}; | |
}; | |
}; | |
&spi3 { | |
compatible = "nordic,nrf-spim"; | |
status = "okay"; | |
pinctrl-0 = <&spi3_default>; | |
pinctrl-1 = <&spi3_sleep>; | |
pinctrl-names = "default", "sleep"; |
Board/Shield Check-list
.zmk.yml
metadata file added&pro_micro
used in favor of&pro_micro_d/a
if applicable.conf
file has optional extra features commented out