Commit graph

571 commits

Author SHA1 Message Date
innovaker
f4596fc784 refactor(hid): Refactor keypad report to use a configurable integer array
Replace NKRO bit array with configurable integer (DV) array.
2020-10-27 22:36:26 +00:00
Jay Greco
8a98212a02 Update demux kscan driver as per PR feedback
- Remove kscan_gpio_irq_callback
- Remove kscan_gpio_irq_callback_handler
- Remove irq_callbacks
+ Add TODO noting timer and sleep state interactions
2020-10-27 12:44:59 -07:00
Jay Greco
1a6fe846e4 Update NIBBLE keyboard name as per PR feedback
- Revert accidental VS code settings change
2020-10-27 12:44:59 -07:00
Jay Greco
d90592aac5 Add NIBBLE shield
+ Added required files for nullbits NIBBLE
2020-10-27 12:44:59 -07:00
Jay Greco
1522c91d73 Add new kscan_gpio_demux driver
+ zmk,kscan_gpio_demux is now a compatible kscan option
+ kscan_gpio_demux is based heavily off of the implementation of
kscan_gpio_matrix, modified to address cols using an n-to-1
demultiplexer chip instead of discrete IO
+ Added zmk,kscan_gpio_demux.yaml file
* modified CMakeLists to include new source files
2020-10-27 18:58:58 +00:00
Pete Johanson
c707ab45ef
Merge pull request #297 from Nicell/boards/reviung41
Add Reviung41 Shield Definitions
2020-10-27 00:27:17 -04:00
Pete Johanson
07cf103747
Merge pull request #303 from innovaker/kscan-mock-32
feat(kscan_mock): Increase max number of events
2020-10-27 00:03:23 -04:00
Nick
a008731103 Implement Kconfig and enhance error checks 2020-10-26 16:01:57 -05:00
innovaker
9c4b766bc6 feat(kscan_mock): Increase max number of events
This is necessary for testing a large number of events (e.g. every key code) within a single build/pass.

The u8_t limitation became apparent during end-to-end testing of #21.
2020-10-25 20:36:03 +00:00
Nick
7296b96797 Add Reviung41 Shield Definitions 2020-10-24 21:08:00 -05:00
Nick
63007fb6c1 fix: clang-format 2020-10-24 18:54:56 -05:00
Nick
adb07926b1 Remove newlib dep 2020-10-24 18:52:34 -05:00
Nigel Rodriguez
9d624740d9 Fix wrong comment tokens 2020-10-24 12:40:49 +08:00
Nigel Rodriguez
6a9a6e6d8e Add Boardsource 3x4 shield 2020-10-24 12:21:15 +08:00
Nick
a67a8cd3b8 Check if fetch channel is supported 2020-10-23 22:37:44 -05:00
Nick
6047415b1c Fix build for boards without voltage divider 2020-10-23 01:19:47 -05:00
Nick
8efcd80f3a Add missing ADC and fix formatting 2020-10-23 00:57:32 -05:00
Nick Winans
70ffcca3b4
Merge branch 'main' into bluetooth/battery-reporting 2020-10-23 00:55:50 -05:00
Nick
162c6b77db clang-format and add missing defconfig values 2020-10-23 00:50:39 -05:00
Nick
3082455aec Refactor driver to use Sensor API 2020-10-23 00:45:59 -05:00
Carey
6aae667826 merge changes from master 2020-10-20 21:47:49 -05:00
Pete Johanson
ef37f17796
Merge pull request #109 from Nicell/underglow/state-persistence
Add RGB underglow state Kconfig and settings
2020-10-18 22:29:55 -04:00
Pete Johanson
36d3d01a22 feat(usb): Add proper USB product ID.
* Use openmoko product ID from:
  https://github.com/openmoko/openmoko-usb-oui/pull/15
2020-10-18 13:24:37 -04:00
Pete Johanson
3ecd7e42ab
Merge pull request #282 from petejohanson/ble/advertising-power-savings
BLE: Only advertise when needed.
2020-10-18 00:32:48 -04:00
Pete Johanson
9d512eaef0 fix(bluetooth): Add adv data in non-peripherals. 2020-10-16 09:49:28 -04:00
Pete Johanson
b07475b7d4 fix(bluetooth): Stop adv on connected profile. 2020-10-16 00:56:05 -04:00
Pete Johanson
818f0a1f91 fix(bluetooth): Advertise name + appearance.
* Properly put device name and GAP appearance
  in advertising packets, for proper display in
  macOS, Android, etc.
* Closes #124
2020-10-16 00:48:53 -04:00
Pete Johanson
e468677c4e fix(shields): Proper cradio Kconfig setup. 2020-10-15 20:29:00 -04:00
Pete Johanson
ed28f5a6a3
Merge pull request #224 from davidphilipbarr/cradio
Cradio
2020-10-15 17:21:23 -04:00
Pete Johanson
204d1300ba fix(ble): Only advertise when needed.* Once we have a peer connected to for the active profile, don't continue advertising. 2020-10-15 00:51:21 -04:00
Pete Johanson
3186a553a5 fix(shields): Add default qaz.conf file. 2020-10-13 21:00:54 -04:00
Pete Johanson
59e8c58051
fix: Copyright header for cradio.dtsi 2020-10-13 00:11:08 -04:00
Pete Johanson
f35d9f8f69
Merge pull request #258 from megamind4089/dev/ext-power-behavior
New behavior for ext power control
2020-10-13 00:01:32 -04:00
Pete Johanson
eee8eb6e77 fix: Single author file copyright header fix. 2020-10-12 13:04:24 -04:00
Pete Johanson
6d9aa4f5ea fix: Updated copyright headers to single author file. 2020-10-12 13:03:10 -04:00
Mega Mind
2e649b7fd4 Fix compilation errors and minor tweaks 2020-10-13 00:09:57 +08:00
Mega Mind
4adcb396ff Rebased and fixed nasty code 2020-10-12 23:54:56 +08:00
Pete Johanson
a2b4a08ddc
Merge pull request #226 from mubeenkhan94/tg4x-shield-dev
Add TG4X rev 2.1 shield
2020-10-12 11:49:54 -04:00
Mega Mind
5d1c083959 Added toggle and removed a param 2020-10-12 23:42:01 +08:00
Mega Mind
b5e1c8a7ad New behavior for ext power control 2020-10-12 23:42:01 +08:00
Pete Johanson
367dcd4820
Merge pull request #267 from nuxiom/fix-matrix-polling
Fix matrix polling conditional macro
2020-10-12 10:38:34 -04:00
Mubeen Khan
d45e7b3c11
Merge pull request #7 from zmkfirmware/main
Update to stay even with upstream main
2020-10-11 23:17:04 -05:00
Kellen Carey
8b9b247592 allow ble to be enabled if split transport is ble 2020-10-11 20:11:19 -07:00
Kellen Carey
8e298ec701 happy with layout, need to improve interactions 2020-10-11 18:05:27 -07:00
Kellen Carey
7a2314ef59 refactor kconfig to look nicer 2020-10-11 17:36:32 -07:00
Joel Spadin
7798c974f6 fix: don't leak bt_conn refs
bt_conn_lookup_addr_le() gives us a new reference that must be released
with bt_conn_unref()
2020-10-11 17:04:34 -05:00
Nuxiom
1c0c02e097
Reformatted according to clang-format lint 2020-10-11 17:51:06 +11:00
Nuxiom
78cb6c8b21
Fix kscan_gpio_irq_callback_handler_##n conditional macro 2020-10-11 17:33:07 +11:00
Mubeen Khan
7fc7a35117 Revised keymap to Qwerty 2020-10-10 16:51:17 -05:00
Okke Formsma
d38740cebf
Add timestamps to position and behavior events (#147)
* Add timestamps to position events and behaviors.

- Take original event timestamps into consideration so nested tap-holds have proper timing.
- Add position and timestamp to keycode state changed event so the one-shot behavior can properly identify other keypresses and timings.
- Add timestamp to position events received from peripheral

* reduce number of arguments to behaviors
2020-10-10 17:32:53 -04:00
Mubeen Khan
4fd6c14ae9
Merge pull request #4 from zmkfirmware/main
make even with main
2020-10-10 16:32:16 -05:00
Pete Johanson
e1dcf1514f
Merge pull request #242 from megamind4089/feature/ext-power
[RDY] Driver to control the external power output
2020-10-09 20:40:48 -04:00
Mega Mind
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
Kellen Carey
a695d0d359 oops 2020-10-09 12:18:57 -07:00
Kellen Carey
0b125c028c address pr comments 2020-10-09 11:48:06 -07:00
David Barr
01b0bad7a2
update headers, spruce up keymap, streamline dtsi. 2020-10-09 17:05:09 +01:00
David Barr
2b09174ec1
update header again based on corne 2020-10-08 11:22:34 +01:00
David Barr
ad77df5989
capital C 2020-10-08 11:20:22 +01:00
David Barr
a629aa0b42
Update Kconfig.defconfig 2020-10-08 11:17:53 +01:00
David Barr
eeac54e9a4
Update cradio_left.overlay 2020-10-08 11:16:28 +01:00
David Barr
55c1f51b31
update header 2020-10-08 11:16:08 +01:00
David Barr
a3cdab9e9f
update header 2020-10-08 11:14:46 +01:00
David Barr
24e73f6861
Update cradio.dtsi 2020-10-08 11:12:04 +01:00
David Barr
95b94009a9
remove dupe copyright 2020-10-08 11:11:40 +01:00
David Barr
7d582b6b8e
remove dupe copyright 2020-10-08 11:11:01 +01:00
David Barr
426b25892f
rename gpio to direct polling 2020-10-08 11:09:35 +01:00
Kellen Carey
ca29c40206 clean up keymap 2020-10-07 21:22:08 -07:00
Kellen Carey
f3eaa7e424 working shield, need to improve default keymap 2020-10-07 20:40:04 -07:00
David Barr
d5d8d79a76
Update cradio_right.overlay 2020-10-07 16:23:59 +01:00
Pete Johanson
12b9a37005
Merge pull request #211 from petejohanson/core/keymap-port-event-exploration
Use PORT events for kscan matrix interrupts, add option for deep sleep.
2020-10-06 17:32:35 -04:00
Pete Johanson
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
Pete Johanson
ce59223efe fix(shields): Typo in makerdiary URL. 2020-10-05 23:40:29 -04:00
Mega Mind
b8cb5f939a M60 keymap update and misc changes
* Updated M60 keymap
* Make nrfjproj as default runner
* Remove the polling config
2020-10-05 21:24:39 +08:00
Mega Mind
e2299836bc Update contributors in all keymap files 2020-10-05 21:23:38 +08:00
Mega Mind
9d06c730ba Added Makerdiary M60 keyboard 2020-10-05 21:23:38 +08:00
Mega Mind
c54decd144 Added Makerdiary M.2 module 2020-10-05 21:23:38 +08:00
Pete Johanson
7d222e1553
Merge pull request #237 from ChaosinaCan/direct-gpio-fix
Fix direct GPIO when using interrupts
2020-10-04 23:04:16 -04:00
Pete Johanson
9be566603e feat(kscan): Use PORT events for kscan matrix interrupts
* Lower power usage compared to regular interrupts on nrf52.
2020-10-04 22:03:21 -04:00
Pete Johanson
bbf5a5905a refactor(usb): Report USB status w/o HID output. 2020-10-04 21:56:09 -04:00
Joel Spadin
4121b07f7f fix(kscan): fix direct GPIO when using interrupts
Fixed initializing interrupts for direct GPIO when
CONFIG_ZMK_KSCAN_DIRECT_POLLING is not enabled. IS_ENABLED() is needed to map
the possibly-undefined value to 0 or 1 so COND_CODE_0() and COND_CODE_1() work.
2020-10-04 14:07:20 -05:00
Joel Spadin
fc5915b200 improvement(kscan): use ARRAY_SIZE macro 2020-10-04 14:07:14 -05:00
Joel Spadin
f6f8abe055 fix(ec11): allow more than one encoder
Fixes "device.h:101:11: error: redefinition of '__device_ec11'" in firmware that
has more than one encoder.
2020-10-03 14:05:05 -05:00
David Barr
260044ae5e
Delete default.keymap 2020-10-02 14:17:35 +01:00
David Barr
38a418a1d1
updates as per PR changes (i hope) 2020-10-02 14:16:59 +01:00
Dev
c68e3d3e42 Add missing licensing header
Fixes #205
2020-10-02 13:14:31 +05:30
Pete Johanson
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
Pete Johanson
028dfae92e chore: Fix remaining formatting issues. 2020-10-01 11:43:00 -04:00
Pete Johanson
e993378b2a chore: Fix some accidental formatting issues. 2020-10-01 11:24:57 -04:00
Pete Johanson
300b753ced
Merge pull request #212 from shurikai/zmk-202
Add polling (instead of interrupt) based matrix kscan detection, to avoid interrupt limits on stm32
2020-10-01 00:36:29 -04:00
Mubeen Khan
16df1522c2 Add TG4X rev 2.1 shield 2020-09-30 21:35:51 -05:00
David Barr
17bee0223a remove ds_store files 2020-09-30 17:12:39 +01:00
David Barr
a3d0c03726 rename cradios to cradio 2020-09-30 16:20:41 +01:00
Pete Johanson
182a6dca1f fix(bluetooth): Proper max paired/conns.
* Proper max values for both split central, and
  non-split keyboards.
2020-09-29 12:21:06 -04:00
Jason Chestnut
c2a861c0e6 Modify preprocessor directives to use basic #if !defined() rather than Zephyr macros where appropriate. 2020-09-28 08:24:51 -04:00
jason
9392c4f9ff Fix preprocessor flag issues for pull request. 2020-09-27 21:27:30 -04:00
Noah Thornton
9afd44b9d4 Provide context on Quefrency physical PCB layouts
The Quefrency board has two options for each left and right half,
resulting in 4 unique combinations. This has been noted in the
overlay and dtsi files.
2020-09-26 22:10:14 -05:00
Noah Thornton
24b638dfa3
Apply suggestions from code review
Revise copyright header

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2020-09-26 21:09:19 -05:00
Noah Thornton
7f7c7037b0 Add quefrency shield 2020-09-26 11:59:12 -07:00
Jason Chestnut
cfc75a118e Fix merge error. 2020-09-25 11:51:14 -04:00
Jason Chestnut
cca8337f05 Add support to GPIO matrix driver for matrix polling, rather than interrupt-based IO.
- Add ZMK_KSCAN_MATRIX_POLLING config flag to Kconfig
  - Update matrix driver code to use the above flag to conditionally add the handling code for polling operations.
2020-09-25 11:49:07 -04:00
Jason Chestnut
b1dce208f8 Add matrix polling logic to matrix GPIO driver. 2020-09-25 11:29:21 -04:00
Jason Chestnut
9668305621 Restore original matrix driver to correct implementation errors. 2020-09-24 17:35:51 -04:00
Jason Chestnut
5c4705d465 Add new matrix scan flag and implementation in the gpio matrix driver. 2020-09-24 14:30:47 -04:00
Jason Chestnut
53425aa3c4 Rename kscan direct wired driver polling kscan flag in preparationfor addition of new matrix driver flag that enables polling. 2020-09-24 07:55:32 -04:00
Kristoffer Onias
8e92ae3089 Remove bt_unpair_combo from romac_plus.overlay 2020-09-23 17:53:41 -07:00
Kristoffer Onias
641524b1b9 Update Keymap legends for consistency 2020-09-23 17:01:40 -07:00
Kristoffer Onias
9fffebd5da Adopt new BT unpairing standards 2020-09-23 16:31:02 -07:00
Kristoffer Onias
0ce36865b2 Update keyboard name to be more user friendly 2020-09-23 16:23:54 -07:00
Kristoffer Onias
4c092044ce Adopt single authors headers 2020-09-23 16:21:42 -07:00
Jason Chestnut
31af9646e6 Adding kconfig flag for enabling matrix polling (vs interrupts) on the matrix gpio driver. 2020-09-23 16:05:29 -04:00
Kristoffer Onias
f1fd71c231 Disabled ec11 since it's an optional configuration 2020-09-23 12:39:06 -07:00
Kristoffer Onias
c044fe8532 Add RoMac plus v4 support on nice nano v1 2020-09-21 22:44:00 -07:00
Pete Johanson
90bfe6026d fix(boards): Flash Planck with dfu-util. 2020-09-21 09:49:56 -04:00
Pete Johanson
9b89ed7be4
Merge pull request #187 from kurtis-lew/main
Fixed Iris default build/Updated Dev Guide
2020-09-19 23:12:17 -04:00
Nick
f5909f9c26 fix(clang-format) 2020-09-19 19:18:03 -05:00
Nick
da0fb965f6 Merge remote-tracking branch 'upstream/main' into bluetooth/battery-reporting 2020-09-19 19:15:05 -05:00
Nick
844f2c7674 Voltage divider driver initial implementation 2020-09-19 19:14:59 -05:00
David Barr
ed5d3646fe
Add files via upload 2020-09-19 10:56:40 +01:00
David Barr
2855ba75f5
Actually really working
Ok, both sides work as expected, need to write a keymap.
2020-09-19 10:55:07 +01:00
Nick
608ae0df6d fix lint with clang-format 2020-09-15 14:47:19 -05:00
Nick
18d21b0362 Merge remote-tracking branch 'upstream/main' into underglow/state-persistence 2020-09-15 14:41:59 -05:00
Nick
81bc157f53 Fix underglow not working by default 2020-09-15 14:31:59 -05:00
Kurtis Lew
d86e571757
Update iris.keymap 2020-09-14 20:47:55 -07:00
kurtis-lew
64c11f15b0 Removed Copyright Header causing Parse Error 2020-09-14 20:19:54 -07:00
Pete Johanson
c0806d27f1
Merge pull request #186 from BrainWart/tests/fix-build-error-fail
Integration Tests Should Fail on Build Errors
2020-09-14 10:50:52 -04:00
Pete Johanson
1cf0bad792
Merge pull request #185 from tominabox1/qaz_update
QAZ shield keymap update
2020-09-14 10:41:35 -04:00
tominabox1
0bf4467729 Update Kconfig.shield 2020-09-14 09:35:57 -05:00
Cody McGinnis
f6269df5fc fix(tests): return error code when build fails 2020-09-14 10:34:05 -04:00
tominabox1
42c42ccbbd Fixed some space/tab issues as well as updated copyright statements 2020-09-14 09:25:31 -05:00
Pete Johanson
9110335142
Merge pull request #183 from petejohanson/ops/clang-format-checks
Standardize code formatting using clang-format w/ LLVM style
2020-09-14 09:46:35 -04:00
tominabox1
62c47b1981 Remove duplicate include 2020-09-14 08:46:07 -05:00
tominabox1
63e105db90 Revising keymap to jive with upstream changes 2020-09-14 08:45:31 -05:00
tominabox1
fc167f5f5e Update QAZ keymap for bluetooth config options and homerow hold-taps 2020-09-14 08:44:20 -05:00
Pete Johanson
2c38947d1d
Merge pull request #184 from Nicell/boards/bt-keymap-bindings
feature(board): add BT prof management to defaults
2020-09-14 09:27:26 -04:00
Nick
7b12dc6caf feature(board): add BT prof management to defaults 2020-09-13 23:29:31 -05:00
Pete Johanson
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
Pete Johanson
4658999e31 fix(bluetooth): Reject pairing to taken profiles. 2020-09-13 22:33:31 -04:00
Pete Johanson
6c8b0b53f0 refactor(bluetooth): More concise names. 2020-09-13 22:33:31 -04:00
Pete Johanson
652bb6ce05 feat(bluetooth): Add new settings_reset shield.
* Easy to build board/image that will clear
  saved profile/bond information for a fresh
  start for keyboards.
2020-09-13 22:33:31 -04:00
Pete Johanson
fb91be5164 fix(bluetooth): Configs for non-splits. 2020-09-13 22:33:31 -04:00
Pete Johanson
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
Pete Johanson
e88d0833c5 fix(bluetooth): Log when clearing on start. 2020-09-13 22:33:05 -04:00
Pete Johanson
b103eb4b05 fix(bluetooth): Delete any previously stored name. 2020-09-13 22:33:05 -04:00
Pete Johanson
13842a8a1e fix(bluetooth): Kconfig to clear bonds on start 2020-09-13 22:33:05 -04:00
Pete Johanson
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
Pete Johanson
a4d06f69ac fix(bluetooth): Fix max pair settings for non-split. 2020-09-13 22:33:05 -04:00
Pete Johanson
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
Pete Johanson
68e72f9275 fix: Switch to single AUTHORS file.* Closes #164 2020-09-10 10:24:23 -04:00
Pete Johanson
5005aa4cd4
Merge pull request #166 from Nicell/boards/dz60rgb
Add DZ60RGB Rev1 Definition
2020-09-09 23:10:22 -04:00
Cody McGinnis
a65de800bf fix(tests): pending tests pass now 2020-09-08 12:00:46 -04:00