|
1 | | -- [中文](README.md) |
2 | | -- [English](README_EN.md) |
| 1 | +# 👾 Sofle Keyboard 👾 |
3 | 2 |
|
4 | | -# 更新列表 |
| 3 | +Here is my configuration guide for the Sofle v2 RGB Bluetooth keyboard kit (created by [@a741725193](https://github.com/a741725193/zmk-sofle)) as found on AliExpress or Taobao. |
5 | 4 |
|
6 | | -- 2024/12/21 |
7 | | - 1. 增加zmk-studio支持(只需要刷新左手即可使用)。 |
8 | | -- 2024/10/24 |
9 | | - 1. 修改供电模式,功耗降低。 |
10 | | - 2. 修正RGB供电自动关闭的功能。 |
| 5 | +The Sofle is a 6x4+5 keys column-staggered split keyboard with encoder support, which has been [open sourced in 2020](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) by [Josef Adamcik](https://josef-adamcik.cz/). It is based on [Lily58](https://github.com/kata0510/Lily58), [Corne](https://github.com/foostan/crkbd) and [Helix](https://github.com/MakotoKurauchi/helix) keyboards. You can find more details in the GitHub repo for the project and if you like to build it from scratch, here is the [build guide](https://josefadamcik.github.io/SofleKeyboard/build_guide.html). |
| 6 | + |
| 7 | +This Sofle kit is a great and affordable starting point if you want to get into the world of split keyboards but don't yet want to do any soldering. |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +## What you will need |
| 12 | + |
| 13 | +**1. Case & PCB** |
| 14 | + |
| 15 | +- [Sofle on AliExpress](https://s.click.aliexpress.com/e/_ooUVBk5) |
| 16 | + - NOTE: there are multiple sellers offering the same, but the keyboard builds are ultimately from the same person |
| 17 | +- Version 2 of the Sofle only supports MX switches that can be hot swapped |
| 18 | +- You will need 58 switches & keycaps |
| 19 | +- Bluetooth chip used is the https://www.nordicsemi.com/Products/nRF52840 |
| 20 | + |
| 21 | +**2. Switches** |
| 22 | + |
| 23 | +- [Y3 on AliExpress](https://s.click.aliexpress.com/e/_okfiSdT) |
| 24 | +- Any MX switches will work, I'm using Y3 linear switches https://www.aliexpress.com/item/1005007821220888.html with an actuation force of 48g |
| 25 | + |
| 26 | +**3. Keycaps** |
| 27 | + |
| 28 | +- I use a combination of keycap sets: |
| 29 | + - [SA profile black/yellow PBT keycaps on AliExpress](https://s.click.aliexpress.com/e/_onvZN6v) |
| 30 | + - [XDA profile white/yellow PBT keycaps on AliExpress](https://s.click.aliexpress.com/e/_oovVSRn) |
| 31 | + |
| 32 | +## How to get started |
| 33 | + |
| 34 | +Once you have everything, assembly is easy and fully plug & play. After you've inserted the switches and installed the keycaps, you can turn on both sides of the keyboard using the middle switch, and then go to Bluetooth in your settings and pair the device. You can find the default keymap configuration [here](https://github.com/a741725193/zmk-sofle). |
| 35 | + |
| 36 | +### Firmware |
| 37 | + |
| 38 | +Contrary to the original Sofle, this version uses [ZMK](https://zmk.dev) instead of [QMK](https://qmk.fm), which as far as I know is mainly due to better support for wireless using Bluetooth. _"ZMK Firmware is an open source (MIT) keyboard firmware built on the [Zephyr™ Project](https://zephyrproject.org/) Real Time Operating System (RTOS). ZMK's goal is to provide a modern and powerful firmware that is designed for power-efficiency, flexibility, and broad hardware support. ZMK is capable of being used for both wired and wireless input devices."_ |
11 | 39 |
|
12 | | -> 如果您的键盘于10月24日之前更新,请更新最新的固件。 |
13 | | -> |
14 | | ---- |
15 | | -# 联系我 |
| 40 | +### Folder structure |
16 | 41 |
|
17 | | -如需3D打印的模型文件或者键盘有任何异常和故障,请联系380465425@qq.com |
| 42 | +```shell |
| 43 | +. |
| 44 | +├── boards/arm/eyelash_sofle # Board definition and configuration files for the Sofle keyboard hardware |
| 45 | +│ ├── board.cmake # CMake build script for board-specific build instructions |
| 46 | +│ ├── eyelash_sofle_left_defconfig # Default configuration for the left half of the keyboard |
| 47 | +│ ├── eyelash_sofle_right_defconfig # Default configuration for the right half of the keyboard |
| 48 | +│ ├── eyelash_sofle_left.dts # Device tree source for the left half (hardware layout and connections) |
| 49 | +│ ├── eyelash_sofle_right.dts # Device tree source for the right half |
| 50 | +│ ├── eyelash_sofle-layouts.dtsi # Shared device tree include for key layouts |
| 51 | +│ ├── eyelash_sofle.dtsi # Main device tree include for board hardware definitions |
| 52 | +│ ├── eyelash_sofle.keymap # Keymap file for the board (ZMK format) |
| 53 | +│ ├── eyelash_sofle.yaml # Board metadata/configuration in YAML format |
| 54 | +│ ├── eyelash_sofle.zmk.yml # ZMK-specific board configuration in YAML |
| 55 | +│ ├── Kconfig.board # Kconfig options for board selection |
| 56 | +│ ├── Kconfig.defconfig # Default Kconfig options for the board |
| 57 | +│ |
| 58 | +├── config # Configuration and keymap files |
| 59 | +│ ├── eyelash_sofle.conf # Main ZMK configuration for the Sofle board |
| 60 | +│ ├── eyelash_sofle.json # Keymap and layout in JSON format (for visualization/tools) |
| 61 | +│ ├── eyelash_sofle.keymap # Keymap file for firmware (ZMK format) |
| 62 | +│ └── west.yml # West manifest for managing Zephyr/ZMK modules and dependencies |
| 63 | +│ |
| 64 | +├── keymap-drawer # Keymap visualizations and YAML definitions for documentation and tools |
| 65 | +│ ├── eyelash_sofle.svg # SVG visualization of the Sofle keymap |
| 66 | +│ └── eyelash_sofle.yaml # YAML definition of the Sofle keymap (for keymap-drawer) |
| 67 | +│ |
| 68 | +├── zephyr |
| 69 | +│ └── module.yml # Zephyr module configuration for ZMK integration |
| 70 | +``` |
18 | 71 |
|
19 | | -# Sofle键位图 |
| 72 | +### Customizing keymap |
| 73 | + |
| 74 | +If you want to customize the keymap, you have three options: |
| 75 | + |
| 76 | +1. [ZMK Studio](https://zmk.studio) |
| 77 | + |
| 78 | +- Allows you to do runtime keymap configuration for ZMK devices i.e., you can make changes without the need to flash new firmware onto your keyboard |
| 79 | +- First MVP released to the general public in November 2024, does not yet support all ZMK features |
| 80 | +- Here is a list of features currently supported: https://zmk.dev/docs/features/studio#capabilities |
| 81 | +- NOTE: ZMK Studio does not yet support export `.keymap` files, hence, many people suggest to first try out your keymap layout with ZMK Studio and once you like it port over the changes to a `.keymap` file so that you can compile a custom ZMK firmware, version control the configuration and flash your keyboard with this firmware. |
| 82 | + |
| 83 | +2. [nickcoutsos/keymap-editor](https://github.com/nickcoutsos/keymap-editor) |
| 84 | + |
| 85 | +- A web based graphical editor of ZMK keymaps, which leverages GitHub Actions to compile the firmware. |
| 86 | +- You can try it here: https://nickcoutsos.github.io/keymap-editor/ |
| 87 | +- Created in August 2020 and since July 2023 the source code is no longer updated as commercial entities have branded and used this project to sell their ZMK based keyboards without contributing back to the original `keymap-editor` project. Hence, the original author [@nickcoutsos](https://github.com/nickcoutsos) decided to pull the plug and no longer make updates to the source code available publicly. |
| 88 | +- NOTE: If you want to use the updated Keymap-Editor app you will need to authorize it with your GitHub account so that it can push updates and trigger the GitHub Action. |
| 89 | +- If you do not want this you could self-host an older version of `keymap-editor` from when the source code was shared or do a firmware update without the graphical editor as described in option 3 |
| 90 | + |
| 91 | +3. [Flashing of ZMK firmware without a graphical editor](https://zmk.dev/docs/user-setup) |
| 92 | + |
| 93 | +- This is the recommended process of setting up and configuring ZMK as described in the documentation |
| 94 | +- NOTE: If you've forked this repository, you can manually edit the [eyelash_sofle.keymap](./config/eyelash_sofle.keymap) file and push any changes, which will trigger GitHub actions to build the new firmware file |
| 95 | + |
| 96 | +To flash the firmware for option 2 & 3, download the firmware from GitHub Actions once it has successfully completed. _"Then put your board into bootloader mode by double clicking the reset button (either on the MCU board itself, or the one that is part of your keyboard). The controller should appear in your OS as a new USB storage device."_ |
| 97 | + |
| 98 | +_"Once this happens, copy the correct UF2 file (e.g. left or right if working on a split), and paste it onto the root of that USB mass storage device. Once the flash is complete, the controller should unmount the USB storage, automatically restart and load your newly flashed firmware. It is recommended that you test your keyboard works over USB first to rule out hardware issues, before trying to connect to it wirelessly."_ Complete instructions can be found here: https://zmk.dev/docs/user-setup#installing-the-firmware |
| 99 | + |
| 100 | +### Current keymap configuration |
20 | 101 |
|
21 | 102 | <img src="keymap-drawer/sofle.svg" > |
22 | 103 |
|
| 104 | +## Changelog |
| 105 | + |
| 106 | +- 2025/3/30 |
| 107 | + 1. Increase sleep entry time by 1 hour, increase debounce time, optimize post-sleep power consumption. |
| 108 | +- 2024/12/21 |
| 109 | + 1. Added support for zmk-studio (just refresh the left hand to use). |
| 110 | +- 2024/10/24 |
| 111 | + 1. Modified power supply mode to reduce power consumption. |
| 112 | + 2. Fixed the automatic shut-off feature for RGB power supply. |
| 113 | + |
| 114 | +> If your keyboard was updated before October 24, please update to the latest firmware. |
| 115 | +
|
| 116 | +For 3D printed model files or any issues and malfunctions with the keyboard, please contact 380465425@qq.com |
0 commit comments