Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
name: Build firmware
on: [push, pull_request, workflow_dispatch]

jobs:
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/draw-keymaps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,18 @@ on:
# - 'config/*.json'
- 'config/keymap_drawer.config.yaml'
- '.github/workflows/draw-keymaps.yml'
- 'config/boards/*/*/*.keymap'
- 'boards/*/*/*.keymap'
- 'boards/*/*/*.dtsi'

jobs:
draw:
uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main
with:
keymap_patterns: "config/boards/*/*/*.keymap" # path to the keymaps to parse
keymap_patterns: "boards/*/*/*.keymap" # path to the keymaps to parse
config_path: "config/keymap_drawer.config.yaml" # config file, ignored if not exists
output_folder: "keymap" # path to save produced SVGs # branch to use
output_folder: "keymap" # path to save produced SVGs
json_path: "boards/*/*" # path to physical layout json
amend_commit: true # amend generated files to commit that produces them
parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''"
draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'"
draw_args: "sweep:'-z ferris'" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'"
fail_on_error: true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
/.vs/zmk-config/FileContentIndex/56ee7683-e67e-425a-8c1a-5989d68e9d8f.vsidx
/.vs/zmk-config/v17/.wsuo
/.vs
.DS_Store
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Ferris Sweep ZMK Configuration

[![Build firmware](https://github.com/conlank/zmk-config/actions/workflows/build.yml/badge.svg?branch=4.1esb)](https://github.com/conlank/zmk-config/actions/workflows/build.yml)

This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk) configuration for the split [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) keyboard. It supports a pair of nice!nano v2 peripherals that communicate with a dedicated [Seeed Studio XIAO nRF52840](https://amzn.to/3LOPtYW) board acting as the split dongle. The key split transport is provided by the [ZMK ESB Split Transport module](https://github.com/badjeff/zmk-feature-split-esb) for low-latency communication between the halves and the dongle.

## Highlights
Expand All @@ -8,7 +10,7 @@ This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk)
- ESB-based wireless split transport for reduced latency and reliable peripheral links.
- Dedicated XIAO BLE dongle build target for USB host connectivity.
- Battery reporting retained on peripherals with ESB transport.
- Improved battery benefits of being in Dongle mode.
- Improved battery benefits of being in Dongle mode.
- GitHub Actions matrix configured to compile dongle and peripheral firmware artifacts.

## Repository Layout
Expand All @@ -33,7 +35,7 @@ This repository contains a customized [ZMK](https://github.com/zmkfirmware/zmk)

## Keymap

![keyboard layout](./keymap/cradio.svg)
![keyboard layout](./keymap/sweep.svg)

## Credits

Expand Down
2 changes: 1 addition & 1 deletion boards/shields/sweep/ferris.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@
, <&key_physical_attrs 100 100 770 355 (-1500) 770 455>
;
};
};
};
5 changes: 3 additions & 2 deletions boards/shields/sweep/sweep.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <dt-bindings/zmk/matrix_transform.h>
#include "ferris.dtsi"


/ {

chosen {
Expand All @@ -28,7 +29,7 @@
kscan0: kscan {
compatible = "zmk,kscan-gpio-direct";
wakeup-source;

input-gpios
= <&pro_micro 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
, <&pro_micro 18 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
Expand All @@ -50,4 +51,4 @@
;
};

};
};
42 changes: 42 additions & 0 deletions boards/shields/sweep/sweep.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"layouts": {
"sweep": {
"layout": [
{ "x": 0.0, "y": 0.95 },
{ "x": 1.0, "y": 0.32 },
{ "x": 2.0, "y": 0.0 },
{ "x": 3.0, "y": 0.29 },
{ "x": 4.0, "y": 0.42 },
{ "x": 7.0, "y": 0.42 },
{ "x": 8.0, "y": 0.29 },
{ "x": 9.0, "y": 0.0 },
{ "x": 10.0, "y": 0.32 },
{ "x": 11.0, "y": 0.95 },
{ "x": 0.0, "y": 1.95 },
{ "x": 1.0, "y": 1.32 },
{ "x": 2.0, "y": 1.0 },
{ "x": 3.0, "y": 1.29 },
{ "x": 4.0, "y": 1.42 },
{ "x": 7.0, "y": 1.42 },
{ "x": 8.0, "y": 1.29 },
{ "x": 9.0, "y": 1.0 },
{ "x": 10.0, "y": 1.32 },
{ "x": 11.0, "y": 1.95 },
{ "x": 0.0, "y": 2.95 },
{ "x": 1.0, "y": 2.32 },
{ "x": 2.0, "y": 2.0 },
{ "x": 3.0, "y": 2.29 },
{ "x": 4.0, "y": 2.42 },
{ "x": 7.0, "y": 2.42 },
{ "x": 8.0, "y": 2.29 },
{ "x": 9.0, "y": 2.0 },
{ "x": 10.0, "y": 2.32 },
{ "x": 11.0, "y": 2.95 },
{ "x": 3.3, "y": 3.55, "r": 15.0, "rx": 4.3, "ry": 4.55 },
{ "x": 4.3, "y": 3.55, "r": 30.0, "rx": 4.3, "ry": 4.55 },
{ "x": 6.7, "y": 3.55, "r": -30.0, "rx": 7.7, "ry": 4.55 },
{ "x": 7.7, "y": 3.55, "r": -15.0, "rx": 7.7, "ry": 4.55 }
]
}
}
}
14 changes: 11 additions & 3 deletions boards/shields/sweep/sweep.keymap
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
combo_capsword {
timeout-ms = <40>;
key-positions = <20 29>;
bindings =<&caps_word>;
bindings =<&caps_word>;
};
};
keymap {
Expand Down Expand Up @@ -132,7 +132,7 @@
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&mo 5 &kp SPACE &trans &kp ENTER
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
>;
};

left_layer {
Expand Down Expand Up @@ -182,7 +182,7 @@
&bootloader &trans &trans &trans &bt BT_SEL 1 &trans &trans &trans &trans &bootloader
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ │ │ CLEAR BT │PROFILE 2 │ │ │ │ │ │ │
&trans &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans
&studio_unlock &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&trans &trans &trans &trans
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
Expand All @@ -205,5 +205,13 @@
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};

extra1 {
status = "reserved";
};

extra2 {
status = "reserved";
};
};
};
4 changes: 2 additions & 2 deletions boards/shields/sweep/sweep_central_dongle.conf
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ CONFIG_ZMK_SPLIT_ESB_PROTO_TX_RETRANSMIT_COUNT=3
# set 2, if CONFIG_ZMK_BLE is enabled on central, which needs BLE and ESB simultaneously
CONFIG_MPSL_TIMESLOT_SESSION_COUNT=1

# Number of message queue size to buffer ESB payload for TX in between multi-protocol service
# Number of message queue size to buffer ESB payload for TX in between multi-protocol service
# timeslots (CONFIG_MPSL_TIMESLOT_SESSION_COUNT)
CONFIG_ZMK_SPLIT_ESB_PROTO_MSGQ_ITEMS=16

Expand Down Expand Up @@ -67,4 +67,4 @@ CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
CONFIG_BT_MAX_PAIRED=2
CONFIG_DONGLE_SCREEN_BATTERY_ACTIVE=n
CONFIG_DONGLE_SCREEN_OUTPUT_ACTIVE=n
CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y
CONFIG_DONGLE_SCREEN_AMBIENT_LIGHT=y
Loading