-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Move to zephyr v4.1 #3060
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
base: main
Are you sure you want to change the base?
Move to zephyr v4.1 #3060
Conversation
56ada2e
to
bfa1389
Compare
24df0f6
to
0621a27
Compare
vbatt: vbatt { | ||
compatible = "zmk,battery-voltage-divider"; | ||
io-channels = <&adc 2>; | ||
output-ohms = <2000000>; |
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.
Was deleting this intentional? I noticed this while editing all the boards using zmk,battery-voltage-divider for one of my two approaches for implementing fuel gauge API support.
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.
Yes, because this board is moved over to using multiple versions, so the specific settings on that come from the version specific overlays. The prop is still set, it's just coming from somewhere else.
ddd566a
to
9eaec16
Compare
551b4f8
to
3f59fba
Compare
Great to see this making progress, thanks for all your hard work on ZMK! I wanted to move to
To emulate the falling edge interrupts in software, each GPIO port needs a On the very good news side, I've seen dramatically better power consumption – about 25% lower at idle than before total (≈240uA to ≈180uA), about 40% lower with keys held forcing scanning (at the same 1ms scan interval, my initial, much better results were due to the 5ms default scan interval), and similar – hard to tell but slightly higher if anything – during my "average" typing – with the amount of time spent idle for most users, I expect this to be a significant, though variable, overall power savings if it holds true across multiple SoCs and matrix configurations. |
3338b5a
to
4a86543
Compare
Move to Zephyr v4.1.0, with various build/compilation fixes needed for basic use.
Add ability to assign a keyboard `input` device to a physical layout, or use a chosen `zmk,matrix-input`.
Pass NULL user_data to input callbacks.
Handle additional read callback invocation once all matching characteristic have been read.
Be sure we don't get back any uninitialized data by initializing the channel data to 0 before calling into the sensor API.
Input callbacks now have a user_data parameter, adjust accordingly.
Small fixes and remove commented dead code left after the split refactor.
Minor changes to snapshots based on newer Zephyr version.
Migrate Adv360 Pro left/right to HWMv2.
Refactor the MoErgo Glove80 left/right to HWMv2.
Migrate Mikoto to HWMv2, with non-exact matching, tweaks to I2C selection to imply it for the 7.2.0 revision for the fuel gauge.
Move Tofu65 2.0 to HMWv2, with ID of just `tofu65`.
Remove dz60rgb, it's no longer readily available and we have other current stm32 reference designs for testing.
Move Corneish Zen to HMWv2, with IDs of `corneish_zen_left`/`corneish_zen_right`.
* Add a new .dtsi for setting up nRF52 boot mode/retained memory settings * Adjust XIAO BLE to use the new include file * Add boot mode to to the nice!nano
Enable boot mode for nice!60 board.
Move the ZMK metadata files for upstream Zephyr boards to align with the HWMv2 directory structure that uses the vendor ID for the parent directofy for a board directory.
By convention, avoid enabling ZMK Display by default on shields that may be built with under-resourced controllers (e.g. nRF52833 based ones).
Avoid using WS2812_LED_STRIP, since that Kconfig was renamed/split into SPI/GPIO/I2S symbols.
Adjust the .conf/.overlay files to match the proper naming for the XIAO rp2040 board. Also add the necessary Kconfig/DTS bits for supporting bootloader using retained memory/boot mode retention.
Updated LVGL is bumping our stack size, so adjust the system work queue and dedicated display queue stack sizes as needed to account for this.
When thread names are enabled, pass a name to the dedicated display queue for better tracibility when using the thread analyzer.
7c371cb
to
c67bc03
Compare
Can confirm |
Install Zephyr deps using the newer `west packages pip --install`. Signed-off-by: Peter Johanson <[email protected]>
Add necessary DTS/Kconfig settings to upstream RP2040 boards so they can use the ZMK bootloader functionality using the boot mode retention infrastructure.
c67bc03
to
d209263
Compare
Update all links to the Zephyr docs to the 4.1.0 versions to match our Zephyr version in use.
Some optional modules, like libmetal, which is used on nRF5340, specfically require CMake v3, so add a note in the native toolchain setup about this.
Opening this as a draft for now, as there is still work to be done here, along extensive testing, but at this point I want a place where progress, testing results, etc can be tracked.
This is considered beta level at this point, so basic support questions will not be answered on this PR/branch. I welcome testing by anyone willing to, given this level of readiness. TIA.
Prelim Blog Post
@nmunnich prepared an update post, which I am working to round out and finalize: https://deploy-preview-3060--zmk.netlify.app/blog/2025-xx-xx-zephyr-4-1
Testing steps
Local dev
gh pr checkout 3060
west update
GitHub Actions
Make two edits in the branch of your config repo:
Update.github/workflowr/build.yaml
to contain:Update
config/west.yaml
according to the https://zmk.dev/docs/features/beta-testing/ instructions to test this PR.Outstanding Items
libmetal
gets used)PR check-list