Commit Graph

1148 Commits

Author SHA1 Message Date
Joel Spadin 3eb06f137b feat: Add global macro timing configs
Added ZMK_MACRO_DEFAULT_WAIT_MS and ZMK_MACRO_DEFAULT_TAP_MS to set
global defaults for the wait-ms and tap-ms properties of macros.

Also reduced the default timings for macros, since it's been reported
many times that 100 ms is too slow.
2022-12-20 20:34:25 -06:00
Cem Aksoylar 5cbe572f7d fix(display): Re-default to blank on idle for OLEDs 2022-12-18 16:34:27 -06:00
Cem Aksoylar ebb4cb76d3 fix(boards): Add Zen .conf file for setup script 2022-12-16 17:41:39 -06:00
Darryldh 4a3e783f32
feat(boards): Add Corne-ish zen v2
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-12-16 10:57:25 -06:00
Jerome Olivier 984b16e03b
feat(boards): Add preonic_rev3 board. 2022-12-16 10:52:26 -06:00
hyx0329 4faf6eba97 feat(boards): Add battery sensor for Makerdiary M60 keyboard
Signed-off-by: hyx0329 <hyx0329@163.com>
2022-12-14 12:38:03 -06:00
Peter Johanson 1425d0f2d9 fix(shields): Fix col-offset for splitkb.com corne
Same column offset for both transforms, since we use the same
pins for both, just apply a different transform.

Fixes: 1570
2022-12-13 20:46:26 -06:00
JW2586 617136b45e
feat(shields): Added Waterfowl shield 2022-12-10 23:51:41 -05:00
Joel Spadin 01500b085e
fix(boards): Add nRF5340 DK metadata file (#1579) 2022-12-10 22:21:54 -06:00
Kyle McCreery 70aa4fa824
feat(boards): Add PillBug board, blackpill interconnect.
* Add blackbill interconnect metadata.
* Add config/overlay for upstream blackpill boards to work with ZMK.
* Add pillbug board.
* Updated new shield docs.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-12-10 22:01:37 -06:00
Joel Spadin 36ee1f4e0a fix(boards): Fix nRF5340 DK issues
- Fixed a stack overflow when enabling Bluetooth.
- Increased the I2C buffer size to support displays.
2022-12-10 21:56:14 -06:00
Pavlos Vinieratos 2b235ae281
fix(boards): Add encoder config to bdn9_rev2.conf 2022-12-10 19:33:50 -06:00
Peter Johanson 63b29ccd32 feat(shields): Add ZMK Uno shield.
* Support underglow, backlight, display, encoder, etc.
2022-12-10 17:40:57 -06:00
Peter Johanson 12329b388e feat(boards): Add Arduino Uno interconnect, nrf52840dk config. 2022-12-10 17:40:57 -06:00
Cem Aksoylar 58eb7a3305 feat(display): Add config to show battery level in percentage 2022-12-10 17:08:37 -06:00
Joel Spadin 593db85378 feat(boards): Add support for nRF5340 DK
Added overlays to support building for the nRF5340 development kit.

Also added some documentation on how to build and flash ZMK for dual-
chip Bluetooth configurations, with an example for the nRF5340.
2022-12-08 01:00:48 -06:00
Albert Y 6550c043c4
refactor: Update cradio keymap with better indentation and additional features 2022-11-25 23:02:28 -06:00
Xudong Zheng c7fdce863a fix(usb): add USB_DC_CLEAR_HALT to supported states
See https://manpages.debian.org/testing/linux-manual-4.9/usb_clear_halt.9 for
information on halted USB endpoints
2022-11-17 22:52:32 -06:00
Peter Johanson 9f90dd1fc7 fix(boards): Fix XIAO BLE voltage divider config.
* Use proper resistor value for the `output-ohms` property.
2022-11-17 22:46:12 -06:00
jhorology 768fc4a5e5 fix: HID report descriptor 2022-11-10 22:15:06 -06:00
Peter Johanson a9048956b5 feat(shields): Add splitkb.com Aurora Corne. 2022-11-10 21:05:26 -06:00
Peter Johanson 2364960f84 feat(shields): Add splitkb.com Aurora Sweep. 2022-11-04 12:13:16 -05:00
Okke Formsma a61eac9139
fix(behaviors): make tap dances work on a combo
* Tap dance event handler goes after combos
* Add test
2022-11-01 15:13:19 -05:00
HookyQR d393247e15
fix(display): Set bits per pixel and color depth on n!v 2022-10-30 19:50:21 -05:00
Jay Greco 41fdd07315 feat(boards): Add nullbits SNAP shield 2022-10-25 07:50:56 -05:00
Nick Winans d3d5b8eb8a
fix(displays): Adjust alignment and spacing
* Adjust alignment and spacing
* Fix char array lengths
2022-10-21 23:10:55 -04:00
ebastler c9eb63199a
feat(keymaps): add NUHS/NUBS alias for Non-US-Backslash/Non-US-Hash 2022-10-17 21:48:19 -04:00
Robert U ef2e6e9156
feat(behaviors): Add mod-morph `keep-mods`
* Update docs for mod-morph
* Add unit tests for mod-morph
* Add keep-mods to DT binding

Co-authored-by: Martin Aumüller <aumuell@reserv.at>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-10-14 20:40:28 -05:00
Nick Winans 18b8b9b3a5
fix(shields): Disable idle blanking on nice!view 2022-10-14 11:39:47 -05:00
Peter Johanson 605d88f266 feat(ble): Default a few configs for DIS GATT svc.
Default values for DIS GATT characteristics for:

* Vendor ID
* Product ID
* Manufacturer
* Model
2022-10-05 11:34:37 -04:00
Pavel Glushkov 1e25ee77d2
fear(boards): Add nrfmicro_13_52833 board
* Add nrfmicro_13_52833 board definition.

Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-10-02 22:01:55 -04:00
zhiayang cc3d5529fd
feat(drivers): Driver for MAX7318 GPIO expander (#1295)
Add driver for max7318 i2c gpio expander

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-09-29 21:22:01 -04:00
Nick Winans 3d3c45bc80
feature(shields): Add nice!view
* Use two shield system, nice_view, and nice_view_adapter
* Build system fixes for interconnect use.
2022-09-29 21:11:26 -04:00
Peter Johanson 9782518397 feature(drivers): Option for read wait on matrix.
* Add a new Kconfig option, `ZMK_KSCAN_MATRIX_WAIT_BEFORE_INPUTS`
  to delay reading inputs after setting an output active.
2022-09-29 01:06:54 -04:00
ReFil b655554b03
refactor(boards): CRBN and Planck keymap fixes
* Update planck_rev6.keymap

Third layer was causing problems so i moved reset and bootloader to second layer

* BT_sel functions

A customer requested this so we added it

* Update crbn.keymap

Co-authored-by: Nick Winans <nick@winans.codes>
2022-09-22 15:14:09 -04:00
ReFil cc6dd5fc49 chore(lighting): fix deprecation
Removed deprecated macros, replace with correct Zephyr 3 implementation
2022-09-13 09:51:46 -04:00
John Drogo 6124d254f9 fix(usb): add USB_DC_RESUME to supported states
All credit for this one goes to @xudongzheng (thanks for helping debug
this!). Should fix the issue where keyboards go unresponsive after their
host machine wakes from sleep due to the USB driver entering an error
state. I was able to both reliably reproduce the issue before the patch
goes in and confirmed it no longer occurs post patch.

The `USB_DC_RESUME` state indicates the host event has resumed the connection.
Adding it to the list of valid connection states to prevent the error
when waking from sleep.

Zephyr API Link:
https://docs.zephyrproject.org/apidoc/latest/group____usb__device__controller__api.html#gac09e3e0af1a2b41a5bfbad91f900baf7

fixes #1372
2022-09-11 13:00:20 -04:00
Ben 41bfc56e13
feat(board): add puchi_ble_v1 to boards
* feat(board): Add Puchi-BLE v1 board
2022-09-05 18:15:24 -04:00
Elliot Pahl ce7a0e2b6c
feat(shields): Add Eternal Keypad
* Add Eternal Keypad

Co-authored-by: Duccio <ducciobreschi@gmail.com>
2022-09-05 18:07:02 -04:00
Shreyas 391f80f069
feat(hid): Add C_AC_DESKTOP_SHOW_ALL_APPLICATIONS
* support for C_AC_DESKTOP_SHOW_ALL_APPLICATIONS

Co-authored-by: Shreyas Kale <shreyaskale@Shreyass-MacBook-Pro.local>
2022-08-22 00:27:47 -04:00
Pete Johanson fc511e40cc
fix(behaviors): Fixing erroneous combo triggering, hold-taps sticking
* This is a very simple fix to a rather complicated issue. Essentially,
hold-taps will "release" (raise) their captured keys before actually
telling the event manager they have captured a key. This means the event
manager ends up assigning the `last_listener_index` to the hold-tap
subscription rather than the combo. So when the combo calls
`ZMK_EVENT_RELEASE` it raises after the hold-tap instead of after the
combo as the combo code expects.
* The corresponding test (which fails without this change) has also been added.
* An event can be captured and released in the same event handler, before
the last_listener_index would have been updated. This causes some handlers
to be triggered multiple times.
* The solution is to update the last_listener_index before calling the next
event handler, so capturing and releasing within an event handler is harmless.
* Also see discussion at https://github.com/zmkfirmware/zmk/pull/1401
* If our handler dedides our undedided hold-tap,
  return early before continuing.
* Fix incorrect pointer logic, resulting in combo
  candidate filtering leaving incorrect timeout details.

Co-authored-by: Andrew Rae <ajrae.nv@gmail.com>
Co-authored-by: okke <okke@formsma.nl>
2022-08-03 20:09:50 -04:00
Jason Hazel be0d49b62d
feat(shields) add support for Spaceman Pancake (#1400)
* add support for Spaceman Pancake

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: Jason Hazel <jhazel@matrixmediaservices.com>
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-07-27 11:39:42 -04:00
Peter Johanson 90b45a1284 feat(display): Blank on idle optionally.
* Add new defaulted-on Kconfig option to control if displays
  are blanked/unblanked on idle/activity.
2022-07-26 14:12:38 -04:00
Peter Johanson e3efffa9a8 refactor(display): Move clear to unblank for EPD driver. 2022-07-26 14:12:38 -04:00
Peter Johanson c4a47c08de fix(display): Initialize display on queue as well. 2022-07-26 14:12:38 -04:00
Peter Johanson 08c43feaaf feat(kscan): Kconfig for optional scan delay.
Add optional Kconfig setting to delay scanning after each
output column is set, and inputs are read, to allow inputs
to "settle" after the last column is set back to inactive.
2022-07-15 11:07:08 -04:00
Cem Aksoylar 6180643581 fix(shields): Remove uses of deprecated pro_micro_a/d nodes 2022-07-03 09:11:23 -04:00
Nick Conway edec4595ae fix(behaviors): Fix mod morph description 2022-07-03 09:11:00 -04:00
Kurtis Lew ef3eb339ed feat(shields): Add RGB support to 2% Milk
Co-Authored-By: treezoob <98245530+treezoob@users.noreply.github.com>
2022-06-26 12:07:54 -07:00
Peter Johanson da209c453e refactor(shields): Remove res max Kconfigs
* Horizontal/Vertical resolution max is now defaulted
  from the DTS chosen display automatically, so
  remove the duplication in our shield Kconfig.
2022-06-26 00:27:04 -04:00
ReFil 90e070b427
feat(underglow): Add RGB auto off timeout on idle and on usb disconnect
Two new options for functionality to enable/disable RGB for
USB status or idle events.

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: ReFil <harryherring@gmail.com>
2022-06-25 10:56:36 -04:00
ReFil 38e079ef37 fix(backlight): Improve initial power on behaviour 2022-06-25 00:37:00 -04:00
Peter Johanson 709441412a fix: Don't exclude segger, needed for DKs. 2022-06-22 16:37:22 -04:00
Peter Johanson d7bd81e5c4 fix(usb): Correctly detect USB connection status.
* Fix detection of USB power vs. configuration, to ensure endpoint
  selection works properly with power-only USB attached.
2022-06-16 00:50:04 -04:00
Kurtis Lew db43757461 fix(shields): Fix indentation in two_percent_milk.keymap 2022-06-14 19:51:35 -04:00
Peter Johanson 3d2bd01747 fix(split): Raise release events on disconnect.
* When a peripheral disconnects from a centraly, raise position events
  to release any active positions from that
  peripheral.
2022-06-12 22:53:02 -04:00
WSTRN 53bec710d8
fix(displays): Proper battery charge icon sizing 2022-06-09 13:54:36 -04:00
Peter Johanson 4af3d272fc fix(keymaps): Handle matching `then-layer`s.
* Proporly handle multiple  conditonal layers w/ the same target
  `then-layer` values.
* Move handling to work callback, to avoid re-entrance for cascading
  layers enabling other layers.
2022-06-07 23:41:52 -04:00
Peter Johanson 11ac8c4782 fix(build): Fix for proper string variable check.
* Properly load variable for comparison for shield name substring
  calculations.
2022-06-07 19:43:23 -04:00
Peter Johanson b5e73204e8 fix(drivers): Avoid build failures for GPIO driver
* Avoid defining the ZMK GPIO drivers lib if none of the drivers  are
  selected.
2022-06-05 17:57:35 -04:00
Peter Johanson 505c481f6a fix: Fixed conf file loading.
* Properly locate conf files for the shield dir name.
2022-06-05 01:45:22 -04:00
Peter Johanson 1e8224c296 feat(behaviors): Add DEL/BSPC to continue list.
* Continue caps word on delete/backspace by
  default now.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2022-06-04 01:38:42 -04:00
Peter Johanson b3c9c18fee feat(behaviors): Continue on mods in caps word.
* Continue caps word when mods are changed, and
  match the continue list on combination of
    explicit and implicit modifiers.
2022-06-04 01:38:42 -04:00
Peter Johanson d01bc6afc6 fix(build): Another check w/ upstrream shields.
* Properly handle not finding a shield in the board roots.
2022-06-04 05:26:14 +00:00
Peter Johanson 9a9aef78c7 refactor: Remove unneeded left/right conf files. 2022-06-04 00:44:13 -04:00
Peter Johanson 02a85e5d54 chore: Add Hummingbiard/XIAO BLE to core coverage. 2022-06-04 00:44:13 -04:00
Peter Johanson 532c4b9267 refactor(build): Fixes for config/overlay loading.
* Move to ZephyrBuildConfig package based on Zephyr best practices.
* Support multiple shields properly, e.g. -DSHIELD="foo bar", which
  allows using existing upstream shields like `ssd1306_128x64` along
  with another ZMK shield.
* Properly *add* the "ZMK config" .conf file to the conf file list,
  so that existing board .conf files in `app/boards/<board>.conf` are
  properly honored still. Needed for overrides to usptream boards when
  combined with a local `<shield>.conf` file.
2022-06-04 00:44:13 -04:00
Peter Johanson 6a86cd0547 feat(gpio): Add 595 shift register driver.
* Use SPI for sending serial data.
* Supports 1-4 shift registers chained together by
  setting `ngios` property appropriately.
2022-06-03 22:45:04 -04:00
Caleb Goates 6dc436cb23 test(behavior): Add alt-tab test and modded alpha test for toggle key
Uses multiple toggles of modifier keys overlapping each other.
2022-06-03 00:04:41 -04:00
Caleb Goates 0d5bb100ba feat(behavior): Add key toggle 2022-06-03 00:04:41 -04:00
Okke Formsma c5922fae56 refactor(hid): add mask to HID_USAGE_PAGE macro 2022-06-03 00:04:41 -04:00
Okke Formsma 57fca34dc0 refactor(hid): Move hid logic into hid.c
Move the logic for picking the correct hid function into hid.c.
2022-06-03 00:04:41 -04:00
ClicketySplit 9f79cc2c7b
fix(shields): Add 'chosen' display node for leeloo, README path fix.
* Update to include 'chosen' node for OLEDs.
* Updated to correct direction of folder separators.
2022-05-29 23:55:06 -04:00
Peter Johanson 4f503246a3 refactor(split): cmake split clean up.
* Cleaner cmake setup for split build.
2022-05-29 19:18:09 -04:00
Peter Johanson 2b9a0ce2a5 refactor(shields): Move to generic central role config.
* Use new `ZMK_SPLIT_ROLE_CENTRAL` config instead of BLE
  specific Kconfig setting.
2022-05-29 19:18:09 -04:00
Peter Johanson 6539b3ae25 refactor(split): Clean up Kconfig organization.
* Seperated configs for split role (central/peripheral)
  and transport (BLE only for now).
* Split the configs to align on structure.
2022-05-29 19:18:09 -04:00
Kurtis Lew 0bde987ae2 Update kscan_gpio_get_extra_flags 2022-05-19 11:24:01 -04:00
Kurtis Lew 6f1adfbe14 Address further review by @petejohanson 2022-05-19 11:24:01 -04:00
Kurtis Lew 4dfcadb1ed Remove unnecessary LOG_DBG 2022-05-19 11:24:01 -04:00
Kurtis Lew fec99c7d5e Update kscan_direct_gpio.c
- Fix logic in getting pulls from ACTIVE_LOW vs. ACTIVE_HIGH DT flags
- Add pulls on init
2022-05-19 11:24:01 -04:00
Kurtis Lew f39c821d19 Simplify kscan_gpio_get_flags
Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2022-05-19 11:24:01 -04:00
Kurtis Lew f369f2cc46 feat(kscan): Add toggle-mode to updated direct-wire kscan 2022-05-19 11:24:01 -04:00
Peter Johanson 5b5b3ff2eb fix(tests): Fix hex formatting. 2022-05-19 10:55:23 -04:00
Peter Johanson 64dadfb336 refactor(tests): Move remaining tests to posix 64.
* Update docs and fix up a few lingering tests
  to consistently use native_posix_64 target.
2022-05-19 10:55:23 -04:00
Peter Johanson 16ab6df18d feat(display): Add new peripheral status/display
* Add new API/status to track state of the
  peripheral connection to the central.
* Add new peripheral status widget for displaying
  the current status of the connection to
  the central.
2022-05-17 13:09:21 -04:00
Peter Johanson 0a40f922b5 refactor(split): Seperate peripheral BLE handling.
* Move foundational BLE code for split
  peripherals to a dedicated file to avoid
  tons of conditionals and awkward code.
2022-05-17 13:09:21 -04:00
Cem Aksoylar 25f89ee6ab feat(battery): Add Kconfig setting for battery level report interval 2022-05-17 12:03:57 -04:00
Joel Spadin 0738b4b2b0 refactor(kscan): Match direct GPIO driver to matrix driver
Rewrote the direct GPIO kscan driver to match the improvements made to
the matrix driver in 82cb762698 and
f946dc6893. It now uses the same
debouncing system as the matrix driver.
2022-05-17 01:20:20 -04:00
Nick Winans 54747a52f9 fix(sleep): use pm_power_state_force for proper device power management 2022-05-17 00:30:47 -04:00
Stefán Páll Sturluson d7ba7a1bee
fix(codes): typo in C_SUBTITLES. 2022-05-17 00:29:53 -04:00
zhiayang 19cc96b86d fix(boards): Fix battery ADC channel for Mikoto 2022-05-09 11:31:58 -04:00
Peter Johanson eca37b6219 fix(boards): Add flash/settings for XIAO BLE
* Ensure flash/NVS/settings configs are enabled.
2022-05-08 17:19:18 -04:00
Peter Johanson 41dc774848 fix(boards): Fix key position 4 flakiness w/ RGB
* Remove MISO pin from pinctrl for BDN9 rev2 board, to avoid
  the 4th switch being set up for an alternate function, which
  was causing spurious key press events to be triggered.
2022-05-05 22:58:56 -04:00
Nick Winans d33b35513b feat(usb): Set default HID interval to 1ms (1000Hz) 2022-04-29 21:51:38 -04:00
Andrew Rae b5efc7a7eb
feat(behaviors): Add `global-quick-tap` 2022-04-27 13:33:22 +01:00
Joel Spadin 11ab52582c refactor(battery): Auto enable battery drivers
CONFIG_ZMK_BATTERY_NRF_VDDH and CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER are
now automatically enabled if a DT node with the matching "compatible"
property is present and enabled, so they no longer need to be manually
set for each board.
2022-04-25 22:34:04 -04:00
Joel Spadin 6d6efa32f5 refactor(kscan): Auto enable kscan drivers
The key scanning drivers are now automatically enabled when a DT node
with the matching "compatible" property is present and enabled, so they
no longer need to be manually set for each board.
2022-04-25 22:28:53 -04:00
Joel Spadin a3a9510e47 refactor(kscan): Use GPIO DT spec macros in matrix driver 2022-04-25 22:28:53 -04:00
Nick Winans 2c7e5b9232 refactor(ble): Use auto phy/conn for split 2022-04-24 18:29:18 -04:00
Luigi311 13014d3f28 Remove descriptions and defaults for already set variables
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2022-04-24 18:29:18 -04:00
Luigi311 7443a917cb Add ble connection interval support
Signed-off-by: Luigi311 <luigi311.lg@gmail.com>
2022-04-24 18:29:18 -04:00
Peter Johanson 486174fc41 fix(split): Raise split notification stack size.
* Larger stack for split peripheral notifications
  to avois stack overflow with logging on.
2022-04-24 15:08:04 -04:00
Peter Johanson 9f222fe700 fix: Exclude `sof` module to avoid build breakage. 2022-04-19 13:42:24 -04:00
Peter Johanson d0176f3685 fix(boards): Enable battery driver for XIAO BLE. 2022-04-19 01:28:22 +00:00
Joel Spadin f91472fbe5 fix(battery): Warn if using deprecated battery label 2022-04-17 11:30:57 -04:00
Joel Spadin 388e345c28 feat(battery)!: Add chosen node for battery
battery.c now uses the zmk,battery chosen node to select a battery
sensor. Using the node labeled "BATTERY" is maintained for backwards
compatibility but is now deprecated. Custom boards should switch to
using the chosen node.

# Conflicts:
#	app/boards/arm/bluemicro840/bluemicro840_v1.dts
#	app/boards/arm/nice60/nice60.dts
#	app/boards/arm/nrfmicro/nrfmicro_13.dts

# Conflicts:
#	app/boards/arm/bluemicro840/bluemicro840_v1.dts
2022-04-17 11:30:57 -04:00
Nick Winans d08463e483 fix(ble): Restore manual connection params 2022-04-15 12:25:15 -04:00
Peter Johanson 40cd8da743 fix(usb): Split HID from core USB, logging fix.
* Split core USB init from USB HID init.
* Tweak logging to avoid "log loop" causing
  spurious buffer messages on startup.
2022-04-13 13:07:59 -04:00
Peter Johanson 789fd03f8b fix: Properly use zmkfirmware Zephyr version. 2022-04-12 10:55:05 -04:00
Peter Johanson 1dccb7fe50 fix(hid): Use a full valid range for consumer page
* Switch to a logical max for the consumer page
  that avoid signed issue, and still allows
  full range of documented consumer page
  values.
2022-04-10 22:32:09 -04:00
Peter Johanson 22c487f276 feat(boards): Add BDN9 rev2 RGB support 2022-04-09 21:57:22 -04:00
Peter Johanson b44410ac44 feat(shields): Add Hummingbird shield
* Reference shield for the Seeed(uino) XIAO interconnect.
2022-04-06 16:26:55 -04:00
DoctorNefario 20a72263b2
fix(behaviors): Prevent accidental transparent behavior return values.
Needed because k_work_reschedule can return positive success codes.
2022-04-06 11:00:01 -04:00
Kurtis Lew 7e844bc269 fix(behaviors): Remove `behavior_hold_tap_data`
Related to discussion during development of tap-dance behavior:
https://github.com/zmkfirmware/zmk/pull/1139#discussion_r810564682

This PR suggests to remove the `struct behavior_hold_tap_data` because is not used to store data for each hold tap.
2022-04-06 09:27:39 -04:00
Peter Johanson 3eb3548a00 refactor(tests): Use GH Actions matrix for tests.
* To parallelize our tests, generate a dynamic matrix
  of tests to run.
2022-04-04 23:36:51 -04:00
Peter Johanson af4753cae1 fix(behaviors): Missed refactor for PM callback. 2022-04-03 04:37:42 +00:00
Peter Johanson f4fb5c6fba fix(build): Add local vendor prefix file.
Properly document `zmk` local vendor prefix.
2022-04-03 00:10:29 -04:00
Peter Johanson 953f5212a8 refactor(tests): Move to native_posix_64 target.
* Allows removing multilib from docker images
* Run properly in aarch64 host docker
  containers for testing on Rasberry Pi.
* Small sticky-keys fix to initialize w/ correct
  constant for max uin32_t value.
2022-04-03 00:10:29 -04:00
Peter Johanson 97e62f2da5 feat(boards): Add Seeed(uino) XIAO interconnect
* Document the Seeed(uino) XIAO interconnect
* Add metadata files for two upstream boards, XIAO and XIAO BLE.
* Add conf and overlay files to properly configure the boards
  for ZMK use.
2022-04-03 00:10:29 -04:00
Peter Johanson 9368f6200c fix(display): Add zephyr,display chosen nodes. 2022-04-03 00:10:29 -04:00
Peter Johanson 5015a88545 fix(split): Proper role checking in BT callbacks.
* Properly react to events only for connections
  with the correct role.
2022-04-03 00:10:29 -04:00
Peter Johanson 917c6a0660 fix(power): Fix ext power generic driver.
* Adjust for device API changes to fetch
  ext power driver instance from settings
  callback.
* New PM action callback API.
2022-04-03 00:10:29 -04:00
Peter Johanson 4eb8f8cd23 refactor(boards): Use Zephyr UF2 generation. 2022-04-03 00:10:29 -04:00
Peter Johanson cc51562f78 fix(boards): Move ARM clock config to DTS. 2022-04-03 00:10:29 -04:00
Peter Johanson 9203ae217b fix(activity): Use proper PM state for sleep. 2022-04-03 00:10:29 -04:00
Peter Johanson 94ac100b6b refactor: Move to Zephyr v3.0.0 + ZMK fixes. 2022-04-03 00:10:29 -04:00
Peter Johanson df2e993300 feat(ble): Disable `BT_GATT_AUTO_SEC_REQ`.
* Better compatibility w/ some operating systems, we already
  set security level on connects.
2022-04-03 00:10:29 -04:00
Peter Johanson ded79ba422 fix: Remove deprecated pinmux code. 2022-04-03 00:10:29 -04:00
Peter Johanson 4df83a9c0d refactor: Move away from deprecated PM callback. 2022-04-03 00:10:29 -04:00
Peter Johanson bf2fc68070 fix(underglow): Add newly required color-mapping prop. 2022-04-03 00:10:29 -04:00
Peter Johanson 8afe124153 fix(tests): Fix snapshots to account for formatting changes. 2022-04-03 00:10:29 -04:00
Peter Johanson c5ab8a9444 refactor: Move the DT based CDC ACM setup. 2022-04-03 00:10:29 -04:00
Peter Johanson 2c5d5fde51 refactor: `k_work_queue` API updates. 2022-04-03 00:10:29 -04:00
Peter Johanson 79ab60dfe5 refactor: Move to new PM API/Kconfig settings. 2022-04-03 00:10:29 -04:00
Peter Johanson 6287819fcc refactor: Move to USB_DEVICE_STACK symbol.
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.7.html#changes-in-this-release
2022-04-03 00:10:29 -04:00
Peter Johanson 3528e1b497 refactor: Move to newer API for IO channels.
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.6.html#api-changes
2022-04-03 00:10:29 -04:00
Peter Johanson 40d8470664 refactor: Handle HID macro/API changes in Zephyr. 2022-04-03 00:10:29 -04:00
Peter Johanson 53dae35710 refactor: Move to `k_work_delayable` API.
* Move to new `k_work_delayable` APIs introduced in Zephyr 2.6.

See: https://docs.zephyrproject.org/latest/releases/release-notes-2.6.html#api-changes
2022-04-03 00:10:29 -04:00
Peter Johanson 20fcd35026 fix(docs): AVR, not AMR. 2022-03-29 22:01:15 -04:00
Peter Johanson 7453ce20a8 fix(docs): Whitespace clean-up. 2022-03-29 21:46:23 -04:00
rhhub b6238fa464
fix(docs): Emphasize AMR processor incompatibility with ZMK 2022-03-29 21:45:21 -04:00
ClicketySplit 97e50c39d5 Added BT Configuration Management to Raise Layer
Added Function Keys, and some Navigation Keys to Lower Layer.
2022-03-27 15:52:06 -05:00
ClicketySplit bbfe4b98dc Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit 8c66072f93 Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit e6a19ab7bc Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit 7385ef57bb Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit fddea99cf4 Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit 53ac073737 Updated copyright year. 2022-03-27 15:52:06 -05:00
ClicketySplit 89d5c496cb Deleted as recommended. 2022-03-27 15:52:06 -05:00
ClicketySplit 4e4ed73e17 Deleted as recommended. 2022-03-27 15:52:06 -05:00
ClicketySplit bc0c49b087 Deleted as recommended. 2022-03-27 15:52:06 -05:00
ClicketySplit c97f7a1044 Update app/boards/shields/leeloo/Kconfig.defconfig
Co-authored-by: Nick Winans <nick@winans.codes>
2022-03-27 15:52:06 -05:00
ClicketySplit ab5517b858 The inaugural commit for Leeloo's firmware. 2022-03-27 15:52:06 -05:00
Peter Johanson 35e73d40f5 fix(boards): Enable direct polling for BDN9.
* BDN9 Rev2 requires direct polling,
  interrupts don't work as expected.
2022-03-24 03:51:08 +00:00
Peter Johanson 3a6a249ad0 feat(behaviors): Add macro support.
* Fine grainted press/release/tap actions.
* TIming between actions can be controlled.
* Processed async, to avoid blocking.
2022-03-23 23:42:54 -04:00
Kurtis Lew 32ebe2cfb5
feat(behaviors): Add Tap-Dance behavior 2022-03-16 01:08:42 -04:00
okke ad5a12a7bc fix(behaviors): Fix bug in nested sticky keys
If multiple sticky keys with quick release were nested, only the first one
was properly released. This fix makes sure all of them are released properly.

Fixes https://github.com/zmkfirmware/zmk/issues/1149
2022-03-15 23:04:45 -04:00
Krzysztof Gutkowski 459972fddd fix(boards): Adjust matrix for BT60v1 to fix the broken right Shift key
according to the diagram from the board creators, it should be RC(3,12)
instead of RC(3,13)
2022-03-14 13:01:54 -05:00
Aaron Nunley d6a2290d5e Added support for 2% Milk (Updated with metadata)
Update app/boards/shields/two_percent_milk/two_percent_milk.overlay

Co-Authored-By: Nick Winans <nick@winans.codes>
2022-03-14 01:26:24 -05:00
Carlos Filoteo 2b4d5dd7d9
feat(shields): Add elephant42 Shield Support (#1009)
* Initial Elephant42 implementation

* Add underglow feature

* Fix keymap

* Copy corne defconfig for OLED and LED

* Fix matrix positions

* Add nice_nano_v2.overlay

* Usability improvements to keymap

* Update LED length

* Delete nice_nano v1 overlay

* Remove unused conf files

* Add copyright/license headers

* PR feedback

* Try fixing formatting again

* Minor format

* More missed tabs

* Format
2022-03-14 00:51:55 -05:00
Nick Winans a1a8c30f7f Remove deprecated key codes from bat43 keymap 2022-03-14 00:43:03 -05:00
dnaq 745338dc10 feat(shield): Add Bat43 shield
See https://kbd.dailycraft.jp/bat43/ for details.
2022-03-14 00:43:03 -05:00
Kurt f1b5dc4081
fix(shields): Proper arrow comments in reference keymap
swapped the up and down arrows to reflect the bindings
2022-03-05 13:01:41 -05:00
Peter Johanson 1d5b48cb52 fix(shields): Add missing kyria_rev2.keymap
Needed for setup.sh script, which assumes the shield ID name, not
the shield dir name for downloading.
2022-02-20 16:24:55 +00:00
Peter Johanson 7b1b979461 fix(shields): Proper siblings for Kyria Rev2. 2022-02-20 16:11:50 +00:00
Peter Johanson b54128331e feat(shields): Add Kyria Rev2 shield.
* New matrix pin selections.
* New encoder pins.
2022-02-19 23:48:06 -05:00
okke cfd0d3d81a Behaviors: Add 'ignore-modifiers' option to sticky keys
To combine multiple sticky modifiers, the sticky keys must ignore
other (sticky) modifier keypresses.

This behavior is important for "callum-style mods", where all modifiers
are sticky mods.

Fixes #829
2022-02-07 14:45:07 -05:00
Peter Johanson e2a90974e3 fix(lighting): Proper split backlight support.
Ensure the backlight behavior is run globally.
2022-02-06 21:04:42 -05:00
Alessandro Bortolin 13a4515300 feat(backlight): add command to cycle brightness 2022-02-05 23:40:18 -05:00
Alessandro Bortolin 2c0fe3934d feat(backlight): add tests 2022-02-05 23:40:18 -05:00
Alessandro Bortolin ce843825e8 refactor(backlight): code cleanup 2022-02-05 23:40:18 -05:00
ReFil 5614a8bb80 feat(backlight): initial split support 2022-02-05 23:40:18 -05:00
Alessandro Bortolin 85b2d30bd5 feat(lighting): add backlight behavior 2022-02-05 23:40:18 -05:00
Lucas Uyezu 4a1254bc27 Add support for Knob Goblin shield 2022-02-03 12:02:45 -06:00
Nick Winans edbbbc7540
feat(ci): Use metadata for builds
* Build per board
* Nightly builds of all boards
* Detect board changes and build those changed
* Core set of boards/shields built otherwise.
2022-02-03 00:15:50 -05:00
Peter Johanson 7430750428 refactor(splits): Minor cleanups to periph invocation
* Add strlcpy from public domain version.
* Leverage strlcpy to detect truncation of behavior dev strs, and log.
* Use `offsetof` for cleaner detection on peripheral side.
2022-01-31 23:03:34 -05:00
Peter Johanson b8700eaaa1 fix(split): Fix an off-by-one error in split svc.
* Properly check end of behavior device string for null terminator.
2022-01-31 23:03:34 -05:00
Peter Johanson dbefe92ea0 fix(split): Slightly improved logging on peripherals. 2022-01-31 23:03:34 -05:00
Peter Johanson fa110488b0 fix(split): Add define for local source.
* Add `ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL` and use
  it consinstently to fix bug w/ local `&reset`, `&bootloader`, etc.
2022-01-31 23:03:34 -05:00
Peter Johanson 4d55e60adb refactor(behaviors): Always add reset behaviors.
* Don'd omit unreferenced reset behaviors, so they are always
  available in split peripherals.
2022-01-31 23:03:34 -05:00
Peter Johanson 9297c5f2b4 refactor(splits): Use index for event source.
* Track peripherals by indexes slot, with all appropiate peripheral
  state stored in the slot.
* Event sources tracked by peripheral slot index.
2022-01-31 23:03:34 -05:00
Peter Johanson e8540f17fc fix: Ensure power and underglow behaviors built.
* Remove `/omit-if-no-ref/` from the behavior nodes.
2022-01-31 23:03:34 -05:00
Peter Johanson ce3471d4fe fix(split): Add queue for running remote behaviors 2022-01-31 23:03:34 -05:00
Peter Johanson d486304f79 fix(underglow): Handle cycling effects on splits.
* Convert relative effect cycling to absolute effect selection.
2022-01-31 23:03:34 -05:00
Pete Johanson 0febaa142a refactor(split): Clean up split GATT discovery.
* Use Zephyr auto CCC discovery instead of doing it ourselves.
* Split service versus characteristic discovery into dedicated
  steps in the flow.
* Fix for not searching properly when connecting to a peripheral
  a second time.
2022-01-31 23:03:34 -05:00
Pete Johanson 47f873b038 feature(split): behavior locality support.
* GATT characteristic allowing passng data + behavior
  label to invoke the behavior on the peripheral side.
* Behaviors have a locality setting to specify where they run.
* Build reset/power/RGB on peripheral.
2022-01-31 23:03:34 -05:00
Temur Beissov c74ae45e17
Lotus58 (#1090)
* lotus58 shield added

* lotus58 default keymap

* lotus58 keymap legend update

* Lotus58 keymap fix

* lotus58 keymap update

* lotus58 kb name fixed

* lotus58 keymap update
PR fix
2022-01-31 13:02:19 -06:00
Peter Johanson 52b1fd5dd3 fix(behaviors): Capture mods for `&key_repeat`
* When tracking the last keycode, also capture the currently held
  explicit modifiers to use when replaying the key later.
2022-01-30 22:47:34 -05:00
Peter Johanson 70bb7c9334 feat(behaviors): `&key_repeat` behavior + tests.
* Add new `&key_repeat` behavior that captures and re-sends
  the most recently triggered keycode.

Closes: #853
2022-01-30 22:47:34 -05:00
Peter Johanson ed48d1ae89 fix(ble): Restore BLE SC passkey entry for pairing.
* Handle capturing numeric inputs while pairing and sending
  final passkey once six digits entered.
2022-01-30 22:41:41 -05:00
Sam Mohr 4c317e0feb
Add support for the Clog (#1092)
* Add support for the Clog

* format DTSI definition

* add a default keymap

* update copyright year, reduce conf to minimum
2022-01-30 14:55:22 -06:00
iangus 4039a50ec3
Add Contra shield (#633)
* Add Contra Shield (#1)

* Add bluetooth control layer to contra keymap (#2)

* fix contra keymap issues

* add bluetooth control layer

* clean up contra files

* add contra.conf file

* add missing bracket for default_layer

* update copyright year to 2021

* add contra metadata file

* refactor pro micro overlay for new syntax
2022-01-30 13:48:35 -06:00
David Fiander 970e63bec6
fix(boards): Properly use dfu-util to flash DZ60 2022-01-12 21:36:08 -05:00
zhiayang d29236141e
fix(boards): Proper active high and init delay for Mikoto ext-power 2022-01-11 16:07:30 -05:00
okke f692d64d05 test: print test output immediately and decrease indenting 2022-01-04 23:59:25 -05:00
okke d59797ba13 test: Change length of fail and pend messages
This makes scanning the output from "west test" easier, as the different states get different output lengths.
2022-01-04 23:59:25 -05:00
okke f767abe136 chore: make west scripts more pythonic and apply Black 2022-01-04 23:59:25 -05:00
Midge 't Hoen e0620f1a2d Bump init delay to 50ms for nico-nano 2022-01-03 14:39:42 -06:00
Lucas Yunkyu Lee 2666bd622c fix(keymaps): add row-offset property to matrix-transform 2021-12-20 06:14:35 -05:00
Alexander Krikun 7b023affbd
Add support for the Jiran (#1048)
* initial files to get stuff working

* Keymap by Ladniy

* Format update to new standards

* keymap update

* header

* Fixed transform, removed left and right .conf files

* Apply suggestions from code review

Formatting

Co-authored-by: Nick Winans <nick@winans.codes>

Co-authored-by: Nick Winans <nick@winans.codes>
2021-12-14 11:32:59 -06:00