Commit graph

754 commits

Author SHA1 Message Date
Nick Winans 478cf94374 refactor(boards): Remove "left" from split keyboard names 2021-09-25 21:17:24 -04:00
Nick Winans 36ced48e53 refactor(boards): Remove split right keyboard names 2021-09-25 21:17:24 -04:00
Peter Johanson 3e6a3758ed refactor(display): Saner font selection/defaults.
* Only select fonts for the default built in status screen
* Leverage theme default fonts, instead of hardcoding theme
  details in each component.
2021-09-25 19:43:20 -04:00
Peter Johanson 2128b2b55f refactor(display): Output/layer/battery thread safety.
* Submit widget updates to display queue.
* Use mutex to control access to shared state for widgets.
2021-09-25 17:17:04 -04:00
Peter Johanson 063d98e3df feat(display): Optional dedicated work queue.
* Add new Kconfig settingsx to allow selecting system or dedicated
  work queue for performing UI updates.
* Allow UI updates to not block other system tasks when display is
  updating, especially important for e-ink displays.
2021-09-25 17:17:04 -04:00
Xudong Zheng 212a05feb3 fix(hog): use OR instead of AND for bitmap 2021-09-23 20:47:40 -04:00
Dom H db4bbbf9eb fix(shield): Update URL in A. Dux metadata 2021-09-23 14:57:40 -04:00
Dom H 80b01c7265 refactor(shield): "Architeuthis Dux" to "A. Dux"
The shorter name is more user-friendly.
2021-09-23 14:57:40 -04:00
Dom H 0c15c2291e feat(shield): Add Architeuthis Dux shield 2021-09-23 14:57:40 -04:00
Peter Johanson a7908a94de fix(hog): encrypt perm for HID report map/ref.
* Workaround for ensuring macOS pairing happens early enough,
  for their stack, we require encryption for the hids report map and
  report ref characteristics as well, to trigger pairing ealier in the
  connection process for macOS.
2021-09-18 15:43:26 -04:00
Pete Johanson c9a671d8d5 fix(kscan): Allow composite driver to handle missing children.
For split keyboards using an IO expander over TRRS/i2c, if the
right half isn't connected, we should be able to gracefully
fallback to the left side still working.
2021-09-14 20:48:28 -04:00
Peter Johanson e42590a049 feat(board): Add Ferris 0.2 boards
* Onboard stm32f072 with mcp23018 IO expander.
* No underglow support yet.
* Miryoku inspired default layout.
2021-09-14 20:48:28 -04:00
Pete Johanson 647110e5e5 feat(drivers): Add mcp23017 driver based on upstream mcp23s17 one.
* Upstream Zephyr has in progress driver, so doing this locally here,
  until we can move over to that driver.
2021-09-14 20:48:28 -04:00
Peter Johanson c7e513634d feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
Peter Johanson 39eb80562d feat(metadata): Add MakerDiary nRF52840 M.2 interconnect
* Add interconnect details.
* Add m60 and nrf52840_m2 metadata files.
2021-09-11 00:50:36 -04:00
Peter Johanson 0c3f1309c6 refactor(boards): Add metadata for boards.
* Standalone and pro-micro format board metadata added.
2021-09-11 00:50:36 -04:00
Peter Johanson 2907704f9f refactor(shields): Add pro-micro shield metadata. 2021-09-11 00:50:36 -04:00
Peter Johanson b52835ffbf feat: Add a few sample hardware metadata files. 2021-09-11 00:50:36 -04:00
Peter Johanson 1d69bdda60 feat: Add hardware metadata schema.
* Initial hardware metadata JSON schema.
* GH Action to validate all schemas for boards/shields.
2021-09-11 00:50:36 -04:00
Dom H 4a5454b0f9 fix(shields): Add note about Cradio pin arrangement 2021-09-08 15:12:58 -04:00
Joel Spadin 82cb762698 refactor(kscan): Demacroify GPIO matrix driver
Refactored the GPIO matrix kscan driver so that only the data and config
structures are defined in the foreach macro. Functionality is unchanged
except for the addition of DT properties to adjust polling speed.

This should make it easier to add other enhancements later, like
improved and customizable debounce behavior.
2021-09-08 14:34:28 -04:00
Peter Johanson e491c282e7 fix(display): Add proper LVGL label dep. 2021-08-27 23:06:28 -04:00
Darryldh a124eb9f9e feat(display): IL0323 driver for EPD displays.
* Basic driver, using the GD7965 driver as a basis, since the ICs
  are very similar.
2021-08-24 22:15:42 -04:00
Martin Aumüller 08078210da fix: Planck rev 6.1
My Planck rev 6.1 would not register any keys without "col2row".
I also had to apply a matrix_transform in order to move them to the
correct position. Peeking into #228 helped for finding this.
I also add transforms for the 2u spacebar layouts.
2021-08-24 21:21:18 -04:00
Peter Johanson 08687b1709 fix(display): Update output status on endpoint selection change. 2021-08-03 00:19:05 -04:00
Peter Johanson d05d7ec2d2 feat(endpoints): Add endpoint select changed event. 2021-08-03 00:19:05 -04:00
Peter Johanson 9d34cf561e fix(usb): USB state changes in system thhread.
* Use a `k_work` to send usb status events from the system
  workqueue thread, not the USB work thread.
2021-08-03 00:19:05 -04:00
Nick Winans cf5c56c4f1 feat(boards): Use the nRF VDDH driver for the nice!nano v2 2021-08-02 21:56:53 -04:00
Nick Winans 1cafbd8069 fix(power): Manually trigger pm_low_power_devices() before sleep 2021-08-02 21:48:42 -04:00
Nick Winans 2b9deb824b feat(power): Update device power management Kconfig 2021-08-02 21:48:42 -04:00
Devon Allie f31ffd8acb
fix(shields): Clean up default corne keymap. 2021-08-02 19:12:11 -04:00
Joel Spadin a6de43e665 feat: Add nrf VDDH battery driver
Added a driver which uses the nRF52's ADC channel on the VDDH pin to
read the battery voltage when using high voltage mode.
2021-07-24 23:39:13 -05:00
Peter Johanson 65ff995033 fix(display): Avoid fault w/ LVGL API usage.
* Increment the tick from within the ISR itself.
* Don't call task handler until in the display callback.

PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Peter Johanson b2d64fe598 refactor(boards): Switch proton_c to newer pinmux approach.
See: https://github.com/zephyrproject-rtos/zephyr/issues/28999
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Pete Johanson d7475f792f fix(boards): Enable pinmux for bdn9_rev2 by default.
See: https://github.com/zephyrproject-rtos/zephyr/issues/28999
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Pete Johanson 6c23bb5c11 fix(tests): Revert default to previous formatter.
* new cbprintf formatter causes issues for our use of string formatting.

See: https://github.com/zephyrproject-rtos/zephyr/pull/29876
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Pete Johanson 2a69f31eb0 refactor(core): Move away from deprecated DT API.
* Move to `DEVICE_DT_INST_DEFINE` everywhere.

See: https://docs.zephyrproject.org/2.5.0/releases/release-notes-2.5.html#deprecated-in-this-release
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
innovaker ad981c3bbd refactor(core): update power API to Zephyr v2.5.0
See: https://github.com/zephyrproject-rtos/zephyr/pull/29410
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
innovaker 71a85a0c8e feat: bump zephyr to v2.5.0+zmk-fixes
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Nick Winans edb3ff1bb1 feat(boards): Add nice!nano v2 2021-07-15 18:52:28 -04:00
Okke Formsma efa497c69b fix(behaviors): Fix timing of delayed hold-tap trigger
A hold-tap timer event would be triggered too soon if the hold-tap
was delayed for longer than its tapping-term. This may cause
accidental hold behavior when the correct behavior would be tap.

By queuing the timer event instead of executing it immediately,
other delayed events get a chance to be processed properly.
2021-06-13 10:44:18 -04:00
David Barr 0f28130493
fix(shields): Cradio v2 keymap/shield improvements
* fix cradio dtsi add new keymap and readme

Co-authored-by: Dom H <dom@hxy.io>
2021-06-10 16:50:13 -04:00
Alexander Krikun e8b42221cf
fix(shields): added right alt and layer quick tap to Jian 2021-06-08 21:09:22 -04:00
Jay Greco f3bb90f9e1
fix(kscan): Fix nibble demux scan errors on encoder row
+ Add a 1us sleep to let the column selection settle in order to avoid spurious keypresses when row capacitance is high (like on the encoder row)
2021-06-08 20:59:35 -04:00
Dom H 4c1a71551b feat(keys): Add LSHIFT and RSHIFT aliases
Using LSHIFT or RSHIFT instead of LSHFT or RSHFT was a common error.
2021-06-08 20:57:40 -04:00
Jonathan Rascher 4e69a32103 fix(combos): Check each combo key, not just last
The current combo completion check only makes sure the last key in the
combo is set. This works when the combo is typed correctly initially, or
when reraising events in a combo of length two. However, it fails for
longer combos since the last event in pressed_keys might be set, but the
first (or subsequent) event in pressed_keys can be NULL thanks to
release_pressed_keys.

Also added a regression test.
2021-06-08 20:35:58 -04:00
Jonathan Rascher eecc12c980 test(combo): Add unit test for complete long combo 2021-06-08 20:35:58 -04:00
Jonathan Rascher bba1599824 refactor(combos): Rename existing long combo test
This test doesn't test a long combo that completes, but rather one
that's incomplete (so the combo doesn't trigger). Renaming to avoid
confusion when we add more long combo tests.
2021-06-08 20:35:58 -04:00
Joel Spadin 0a9efbf85d fix(ble): Ignore out of range profiles
Don't allow selecting a BLE profile that is out of range to avoid
reading/writing past the end of the profiles array.
2021-06-08 20:33:43 -04:00
Nick Winans efcc49f23d
fix(boards): Set nice!60 nRF subfamily for openocd (#816) 2021-06-04 00:33:44 -04:00