Commit Graph

212 Commits

Author SHA1 Message Date
4d81b10ba7 Added driver to control the external power output
This PR adds support to control the external power output from controllers like nice!nano, nRFMicro etc

I have implemented based on my understanding of Pete suggestion on this feature.

Testing done:

    Tested by enabling and disabling the ext_power from application and verified
    Verified the application does not crash with boards that does not have ext_power support
    Note:
    I did not test this in nice!nano since I don't have the boards. Will get help from others once the behavior PR is up

Next Steps:

    Create a behavior PR to control enable/disable ext_power
2020-10-10 08:11:46 +08:00
a7496ab064 feat(power): Initial deep sleep work.
* New ZMK_SLEEP Kconfig symbol to enable the functionality.
* Switch to PORT events that allows wake from deep sleep.
* Initial basic power management policy, with idle ms,
  and ignoring deep sleep if we detect a USB connection.
2020-10-06 17:24:36 -04:00
bbf5a5905a refactor(usb): Report USB status w/o HID output. 2020-10-04 21:56:09 -04:00
Dev
c68e3d3e42 Add missing licensing header
Fixes #205
2020-10-02 13:14:31 +05:30
307a8d09db feat(usb): Function to access latest USB status.
* To be leveraged by upcoming power
  management work.
2020-10-01 17:18:01 -04:00
191a2d755a chore: clang-format the codebase.
* Use the LLVM style
* Override indent width (8) and column limit (100)
* Fixes #142.
2020-09-14 00:10:34 -04:00
6c8b0b53f0 refactor(bluetooth): More concise names. 2020-09-13 22:33:31 -04:00
39f980a06d feat(bluetooth): Add back profiles, split fixes.
* Add back in profiles, not using Zephyr
  BT identity infrastructure.
* Restore additional `&bt` commands for profile
  operations.
* Fix for split pairing and subscriptions, since
  Zephyr persists subscriptions across connects.
* Remove keymap from peripheral builds, reduces
  firmware size, and avoids unneeded attempts
  to send HID data.
2020-09-13 22:33:29 -04:00
fc0812bd2e fix(bluetooth): Remove identity, minimal bt.
* Simplify the `bt` behavior to one current command
  `BT_CLEAR_BONDS_CMD`.
* Simplify BLE code for split and non-split keyboards.
* Remove keymap processing from split peripheral side.
2020-09-13 22:33:05 -04:00
cf970efb98 feat(bluetooth): Proper bond management, identity support for non-splits
* Add `bt` behavior that can be used to perform certain actions,
  such as next/prev identity, reset identity, etc.
  NOTE: Multiple identities is only supported for non-split shields,
  due to missing Zephyr identity functionality for dual
  central/peripheral devices.
* Proper bond reset tied to action, that honors peripheral bonds,
  so folks can reset and pair to other hosts, without breaking
  bonds between splt halves.
2020-09-13 22:33:05 -04:00
68e72f9275 fix: Switch to single AUTHORS file.* Closes #164 2020-09-10 10:24:23 -04:00
48a3729ffe Merge pull request #146 from okke-formsma/hold-tap
Hold-Tap implementation
2020-09-02 13:55:26 -04:00
c5ca664411 some fixes based on feedback 2020-09-02 15:26:06 +02:00
c33931c72c Initial implementation of hold-tap 2020-09-01 19:41:08 +02:00
6be07b5b24 Merge branch 'main' into CrossR/Sofle 2020-08-29 22:54:43 +01:00
f02fa01e9a fix(test): change the layout 2020-08-28 16:21:31 -04:00
d848034c81 Add keycodes properly. 2020-08-21 22:15:27 +01:00
805ea77005 feat(behaviors): Add &bootloader behavior.
* Allow reset behavior to have a type property.
* Add `bootloader` node that triggers DFU UF2
  bootloader mode using the AdaFruit nrf52
  bootloader.
2020-08-21 11:23:45 -04:00
0d3cfa8596 Merge pull request #99 from petejohanson/core/bluetooth-unpair-magic-combo
Add magic combo for unpairing BT devices on start.
2020-08-18 19:21:43 -04:00
7facb6eee8 fix(keymap): move the toggle layer logic to keymap.c 2020-08-18 14:02:25 -04:00
a82f990d4c feat(keymap): allow users to toggle layers 2020-08-18 14:02:24 -04:00
4402e4fbc7 feeature(bt): Add "unpair combo" on startup.
* Especially for splits, we need the ability to
  unpair all paired devices as  sledgehammer
  if we need to "reset things", and doing so via
  keymaps isn't suitable.
* Allows shields to define a collection of key
  positions that if all held 2 seconds after
  startup, will unpair all existing pairs for the
  device.
2020-08-18 13:17:10 -04:00
fbaeb95601 Add better default keymap for lily58 2020-08-02 20:46:56 -05:00
f548f2a87c Initial stab at mod-tap improvements.
* Not working: Roll over + mod-tap with multiple
  mod-tap bindings!
2020-07-31 00:07:16 -04:00
cf8c7856ff Add the ability to capture event and release later 2020-07-30 00:13:32 -04:00
2f1c3dd538 Remove unneeded macro. 2020-07-29 00:12:35 -04:00
05d7bd30f3 Merge pull request #66 from Nicell/keycodes/f-keys-prsc
Add F keys and a few other missing HID keycodes
2020-07-27 09:18:22 -04:00
885176e748 Add a few more keys 2020-07-26 22:31:11 -05:00
5bbd20b527 Add F keys and print screen 2020-07-26 22:23:26 -05:00
4e5a819f3a Merge pull request #64 from Nicell/feature/rgb_underglow
Initial RGB Underglow implementation
2020-07-26 21:43:43 -04:00
5b862655b4 Whitespace fix. 2020-07-25 23:17:33 -04:00
d80063ff51 Initial display support. 2020-07-25 23:10:40 -04:00
564f787280 Add suggested changes 2020-07-25 14:53:42 -05:00
ca569c8143 Initial RGB Underglow implementation 2020-07-24 22:37:00 -05:00
34ff6190bd Initial behavior for key presses on encoder rotate 2020-07-22 14:54:18 -04:00
4d73938cb5 More sensor keymap work. 2020-07-22 10:10:04 -04:00
adfa1b5443 Initial work on sensor bindings. 2020-07-22 02:13:52 -04:00
eb0bf2337e More cleanup of BLE split code. 2020-07-17 22:43:40 -04:00
be537d0656 Lots of work on split peripheral/central logic. 2020-07-17 22:43:40 -04:00
a165db6358 Initial work on split central support. 2020-07-17 22:43:40 -04:00
3796f76c56 Initial exploration of split BLE service.
* Service for split peripheral to report
  position state to split central.
* Updated advertising info.
* Behavior for split BT until we have a proper
  event system.
2020-07-17 22:43:40 -04:00
7c5fb7adb5 Use SYS_INIT for BLE and USB init. 2020-07-07 10:20:23 -04:00
4c5ed99381 Merge pull request #42 from petejohanson/core/event-manager-refactor
Refactor to generic event manager, ditch "global behaviors" as a concept.
2020-06-30 16:42:52 -04:00
a62a2f8c5c Cleanup, license headers. 2020-06-30 16:13:03 -04:00
57e061ac91 Lots of cleanup of old events/behavior mash. 2020-06-30 15:21:42 -04:00
b23a73e488 Fix back/forward slash keycodes. 2020-06-30 13:34:24 -04:00
96ec16da92 Modifier event, tweaks for linker script. 2020-06-30 10:43:09 -04:00
9a991bf019 Initial event manager work, and two first events.
* Add initial event manager implementation,
  roughly mimicking Nordic's API.
* Add `position_state_changed` and
  `keycode_state_changed` events.
* Hook up HID and keymap to new events
  instead of using behaviour global event
  crazy.
2020-06-30 00:31:09 -04:00
5ffd95694f Kyria left/right overlays, matrix transform fixes
* Refactor Kyria into separate left/right "revisions"
  of the Kyria shield, and include central
  kyria.dtsi file with common definition.
* Fixes for keymaps to work fully with matrix
  transforms that override effective rows/columns.
* Add ability for matrix transform to do row/col
  offsets, which is needed for split keyboards.
2020-06-27 00:16:15 -04:00
c457d9880d Merge pull request #32 from petejohanson/core/refactor-keymap-to-behaviors
Refactor keymap to behaviors
2020-06-25 14:39:08 -04:00