Commit Graph

536 Commits

Author SHA1 Message Date
Carey 3f4d47a06e focus on refactor 2020-10-31 07:24:38 -05:00
Pete Johanson 2d31e1d05f
Merge pull request #269 from joelspadin/endpoint-selection
feat: only send HID reports to one endpoint
2020-10-31 00:09:47 -04:00
Joel Spadin 821f054071 feat(endpoints): remove redundant connection check 2020-10-28 18:15:05 -05:00
Joel Spadin 440d09fd45 feat(endpoints): simplify behavior constants 2020-10-28 18:15:05 -05:00
Joel Spadin 2fe1fbb526 feat(endpoints): rename behavior to outputs
"Outputs" is probably easier for most people to understand than "endpoints".
2020-10-28 18:15:05 -05:00
Joel Spadin 600bba25f0 feat(endpoints): add preferred endpoint setting
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.

Added a new behavior to control this setting. It supports commands:

    &end END_USB - Prefer USB output
    &end END_BLE - Prefer BLE output
    &end END_TOG - Toggle between USB and BLE
2020-10-28 18:15:05 -05:00
Joel Spadin b538e60532 feat(endpoints): update on BLE profile change
Added zmk_ble_active_profile_is_connected() to allow code outside ble.c to check
the status of the active profile, and changed the ble_active_profile_changed
event to also notify when the active profile connects or disconnects.

Changed endpoint selection to to also update when the active profile changes,
connects, or disconnects.
2020-10-28 18:15:05 -05:00
Joel Spadin 8f666cecc9 feat(endpoints): clear HID report on endpoint change
This prevents stuck keys when switching endpoints by clearing
everything in the HID report and sending one last report before
switching to the new endpoint.
2020-10-28 18:15:05 -05:00
Joel Spadin 1d369ffa73 feat: only send HID reports to one endpoint
Added some utility functions and an event for tracking the state of the
USB connection.

Updated endpoints.c to select a single endpoint to send HID reports to
based on the status of the USB and BLE connections. Partially fixes #206.

Future commits will add a user setting to control which endpoint is used if
both USB and BLE are ready.
2020-10-28 18:15:05 -05:00
Carey c5172e4337 move initialization priorities to advanced menu 2020-10-28 07:47:22 -05:00
Carey 99ad9cbdef Merge https://github.com/zmkfirmware/zmk into refactor_kconfig 2020-10-28 07:40:54 -05:00
Pete Johanson 73c83e81ce
Merge pull request #296 from neegool/add_boardsource3x4
Add Boardsource 3x4 shield
2020-10-27 23:24:10 -04:00
innovaker c402e953f6 feat(hid): Make keypad report boot friendly
Add missing byte to make keypad report boot friendly.
2020-10-27 22:55:40 +00:00
Nigel Rodriguez 75b7f2a7c5 Remove bt unpair combo + fix keymap 2020-10-28 06:55:00 +08:00
innovaker 8ce7d8de01 refactor(hid): Refactor consumer report to a configurable size 2020-10-27 22:36:26 +00:00
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