Commit Graph

1090 Commits

Author SHA1 Message Date
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
Peter Johanson
af98a3fd6e fix(shields): Don't enable SSD1306 automatically.
* Fix Murphpad conditional to ensure SSD1306 driver isn't
  enabled whenever `ZMK_DISPLAY` is enabled.
2021-12-13 17:06:46 -05:00
Kyle McCreery
569a2ee2cc
[New Shield] Murphpad (#806)
* initial commit

* initial commit

* Encode, OLED, and RGB Nice Nano support added as well as refining default keymap.

* tweaking keymap

* Prepared murphpad for PR. Includes adding support for second encoder, OLED, and underglow RGB

* Enabled OLED by default.

* removed naked60 config files

* Per PR feedback from ZMK maintainers, added hardware metadata file and renamed Pro Micro pins.

* removed tabs from keymap and replaced with normal spaces

* Update app/boards/shields/murphpad/murphpad.keymap

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

* Update app/boards/shields/murphpad/murphpad.zmk.yml

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

* Update app/boards/shields/murphpad/murphpad.zmk.yml

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

Co-authored-by: honorless <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Nick Winans <nick@winans.codes>
2021-12-13 14:41:35 -06:00
Felix Sargent
df1ae494c7
Add boardsource5x12 (#1027)
* Initial commit of boardsource5x12

* Added copyright/license header

* Update app/boards/shields/boardsource5x12/Kconfig.defconfig

Co-authored-by: Pete Johanson <peter@peterjohanson.com>

* Update app/boards/shields/boardsource5x12/boardsource5x12.overlay

Co-authored-by: Pete Johanson <peter@peterjohanson.com>

* Update app/boards/shields/boardsource5x12/Kconfig.shield

Co-authored-by: Pete Johanson <peter@peterjohanson.com>

* Update app/boards/shields/boardsource5x12/boardsource5x12.keymap

Co-authored-by: Pete Johanson <peter@peterjohanson.com>

* Swapping keymap for what used in Naked60 as it's another 60 key board, so it keeps it consistent.

* Update app/boards/shields/boardsource5x12/boardsource5x12.keymap

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

* renamed layers in boardsource5-12

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
Co-authored-by: Nick Winans <nick@winans.codes>
2021-12-13 14:24:21 -06:00
Ryan Butler
eca051efa0
Add support for keeb.io fourier split keyboard (#1056)
* Add support for keeb.io fourier

* Update app/boards/shields/fourier/fourier_right.overlay

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

* Update app/boards/shields/fourier/fourier_left.overlay

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

* Convert spaces to tabs in .dtsi

Co-authored-by: Nick Winans <nick@winans.codes>
2021-12-13 13:41:52 -06:00
Sam Mohr
b23934cf94
feat(shields): Add Osprette 2021-12-10 13:20:52 -05:00
Kyle McCreery
a8c7cf4f19
feat(boards): Add S40NC board definition (#1021)
* initial commit

* initial commit

* Encode, OLED, and RGB Nice Nano support added as well as refining default keymap.

* tweaking keymap

* Prepared murphpad for PR. Includes adding support for second encoder, OLED, and underglow RGB

* Enabled OLED by default.

* Initial commit with settings updated to match schematic.

* Removing test directories.

* removed naked60 config files

* Fixed dogbone definitions to be full working for murphpad.

* Preparing S40NC for PR

* Removed the murphpad test files that were not supposed to be a part of this PR.

* Changing licensing to be from The ZMK Contributors.

* Changed the licensing in the keymap file to be from The ZMK Contributors

* Update s40nc.keymap
2021-12-02 17:21:35 -06:00
toddmok
9148ffd05d
feat(shields) Add Redox Shield Support (#1002)
* Add redox shield support

* typo

* Pull request fixes

* requested changes

add underglow, add copyright, remove display

* remove because of no display

* comment fix

* bt clear
2021-12-02 12:51:27 -06:00
Peter Johanson
6ef1e7034f fix(hid): Implicit mods on non-key page events
* Properly send the KEY usage page report for modifier changes
  when there are state changes to other usages pages that
  include implicit modifiers.
2021-12-02 07:18:25 -05:00
ReFil
b877410379 fix(boards): BT60 Formatting tweaks 2021-11-30 15:33:12 -06:00
ReFil
99c5a8ee6f feat(boards): Add BT60 Boards 2021-11-30 15:33:12 -06:00
Josh Johnson
66f90dae3a
feat(shield) Add Chalice support (#1022)
* add chalice

* add split bs transform

* Update app/boards/shields/chalice/chalice.zmk.yml

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

Co-authored-by: Nick Winans <nick@winans.codes>
2021-11-29 11:39:46 -06:00
Cem Aksoylar
b9a35c6ae7 fix(keymaps): Locate shared conf and overlay for split boards. 2021-11-29 07:56:29 -05:00
Nick Winans
0b44321613 fix(shields): Fix typo on Quefrency .zmk.yml 2021-11-29 00:52:57 -05:00
Peter Johanson
54dabffd0d feat(behaviors): Add caps word (&caps_word).
* Add new `&caps_word` behavior that acts like caps lock, but
  releases automatically when any "break" keycode is pressed.
2021-11-28 22:41:35 -05:00
Jonathan Rascher
30ed237533 test(conditional-layers): Add tests for edge cases 2021-11-15 05:49:23 -05:00
Jonathan Rascher
6cd1734851 test(conditional-layers): Add interleaved up/downs 2021-11-15 05:49:23 -05:00
Jonathan Rascher
a908396013 test(conditional-layers): Add multi-config tests 2021-11-15 05:49:23 -05:00
Jonathan Rascher
df110beac4 test(conditional-layers): Add basic unit tests 2021-11-15 05:49:23 -05:00
Jonathan Rascher
e9140b2da9 feat(conditional-layers): Implement feature
This is a generalization of the existing concept of tri-layer support
that's already well known. Essentially, a conditional-layer
configuration activates a particular layer (the then-layer) when one or
more other layers (the if-layers) are activated.

This is commonly used on ortho keyboards to activate a third "adjust"
layer while the primary two layers ("lower" and "raise") are active.
2021-11-15 05:49:23 -05:00
Peter Johanson
f8018b22d0 fix(hid): Basic consumer code fixes for signed logical max.
* Logical max values are signed, so for the report descriptor, use a two
  byte logical max descriptor item to impart proper 0xFF max logical
  value.
2021-11-09 10:38:49 -05:00
Viet (Drake) Tran
c412fad40d
fix(shields): Fix some keycodes in reviung41 keymap
Notice some keycodes are not matched with the expected keys.
2021-11-09 10:26:21 -05:00
jding
4e62319982 feat: hold/tap flavor tap-unless-interrupted
Implements new hold/tap flavor, tap-unless-interrupted
Adds tests
Adds docs
2021-11-09 01:07:05 -05:00
Hai-Ninh Dang
f2e0642291
feat(boards): Add Mikoto board
* Supports selecting from several possible charge currents

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2021-11-09 00:57:24 -05:00
Peter Johanson
0b0b49d626 fix(split): Properly rediscover peripherals.
* Handle disconnects of peripherals, and properly clean up
  and resume discovering for when the peripheral re-appears.
2021-11-04 22:31:56 -04:00
jmding8
73fd4b9230
fix(behavior): Properly break in decision switch statement.
Co-authored-by: jding <jding@roblox.com>
2021-11-01 13:51:12 -04:00
jmding8
19ee7849f8
feat(behaviors) Required keys for tap-hold behaviors
* Add optional `hold-trigger-key-positions` hold-tap configuration
* Leverage configuration for decision making around when to trigger
  hold decision in hold-taps.
* Add docs for new configuration.
* Tests for the new config/decision logic.
2021-11-01 12:37:20 -04:00
Joel Spadin
f946dc6893 feat(kscan): Improve matrix debouncing
Switched the GPIO matrix driver to debouncing using a simple integrator
algorithm. Whenever a key is pressed, we now scan at a rate controlled
by debounce-scan-period-ms (default 1 ms) until all keys are released,
then return to either waiting for an interrupt or polling more slowly.

The timers for key press and release can now be controlled separately,
so debounce-period is deprecated in favor of debounce-press-ms and
debounce-release-ms. Global Kconfig options
ZMK_KSCAN_DEBOUNCE_PRESS_MS and ZMK_KSCAN_DEBOUNCE_RELEASE_MS are also
added to make these easier to set.

Added documentation for debouncing options.
2021-10-26 23:52:13 -04:00
Jonathan Rascher
e3eb77dfc6 refactor(combos): Use ZMK_KEYMAP_EXTRACT_BINDING
Now that PR #506 is merged, we can address this TODO.
2021-10-20 23:36:31 -04:00
Peter Johanson
e6c815f1b0 fix: Properly find boards in user config repos. 2021-10-19 13:29:36 +00:00
Peter Johanson
0dc7d46eb1 fix: Only search for board one not found yet. 2021-10-18 20:08:35 -04:00
Peter Johanson
742f4c2826 fix(keymaps): Properly locate split board keymaps.
* Find the unified keymap filename for onboard controller split
  keyboards.
2021-10-18 20:08:35 -04:00
eyenseo
6f29453041 [squash] implement feedback 2021-10-13 09:51:02 -07:00
eyenseo
51298f1d22 Add ergodash 2021-10-13 09:51:02 -07:00
Richard Kjerstadius
a774ce8555 fix(display): Increase char buffer size to fit all symbols
Recent refactoring of the font handling seems to have broken the display
of the last symbol of the output status widget. From my analysis the
last symbol is truncated because the buffer simply is too small.
Increasing the buffer size to 9 fits all three possible symbols.
2021-10-12 12:00:21 -04:00
git@jrhrsmit.nl
f221ff1dc7 add ranges and descriptions from #669 2021-10-11 09:46:17 -07:00
Nick Winans
f23f427cae fix(underglow): Run clang-format 2021-10-10 17:43:57 -07:00
Simon Malinge
c5b8dd85fd feat(underglow): Add support for configurable min/max brightness
Co-authored-by: jrhrsmit <jasper.770@gmail.com>
2021-10-10 17:43:57 -07:00
Peter Johanson
bc179b1030 feat(hid): Kconfig for basic/full consumer usages.
* Add ZMK_HID_CONSUMER_REPORT_USAGES choice to allow choosing
  between full consumer usage range, with poor OS compat,
  or basic consumer usage range, with broader compat.
2021-10-04 23:01:39 -04:00
Pete Johanson
91ba034896 feat(hid): Configurable NKRO HID report support.
* Add Kconfig settings for NKRO or HKRO (boot compatible), HID
  report types for keyboard page.
* Updated report storage and set/unset for each config.
2021-10-04 23:01:39 -04:00
Aleblazer
063b496c26
feat(boards): Add Zodiark shield 2021-10-03 23:47:23 -04:00
Brandon Xie
3b8244e466
feat(shields): Add Naked60BMP shield 2021-10-03 23:23:54 -04:00
Nick Winans
687e91ab18 feat(boards): Remove usage of pro_micro_a/d nodes 2021-09-25 23:09:21 -04:00
Nick Winans
4a03214e06 feat(boards): Add D18-21 to Pro Micro pin mappings 2021-09-25 23:09:21 -04:00
Peter Johanson
014e5ba93c refactor(boards): Remove leftover right split name 2021-09-26 01:21:49 +00:00
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