Sofle Choc Wireless quick-start guide
Getting connected, finding your way around the layers, and making the layout your own.
Firmware: ZMK v0.3.0, the latest stable ZMK release (1 August 2025).
Updated September 30, 2026
On this page
Connect the batteries
For safety, the batteries ship unplugged. Under each half there is a small white JST connector: plug each battery into its half. The plug only fits one way, so never force it.
To charge, plug each half into a USB-C charger or computer. If your keyboard has OLED screens, they show the battery level of each half and the connection status (see “Reading the screens”).
The reset button
Each half has a small reset button on its side.
- Press once to restart that half, if it ever stops responding.
- Press twice quickly to enter firmware-update mode: a USB drive appears on your computer. You only need this to install new firmware. If you enter it by accident, press reset once more to go back to normal.
Pair with your computer
- Once both batteries are connected, the two halves find each other automatically.
- Open the Bluetooth settings of your computer, tablet or phone.
- Select “Sofle” in the list of devices and pair it. That’s it, you can start typing.
Reading the screens
If your keyboard has OLED screens, each half shows its battery level and a connection status. The symbols on your screen may look slightly different from the ones below.
Left half: connection to your devices
| Connected over Bluetooth. The number is the active profile (1 to 5). | |
| Profile 1 is free: the keyboard is ready to pair with a new device. | |
| Profile 1 is already paired with a device that isn’t connected right now. The keyboard waits for that device and won’t pair with another one on this profile: select a free profile, or clear this one with BT_CLR (see “Use several devices”). | |
| Typing through the USB cable of the left half. |
Right half: connection to the left half
| The right half is connected to the left half. | |
| The right half isn’t connected to the left half. Check that both batteries are plugged in, then press reset once on each half. |
Use several devices
The keyboard remembers up to 5 devices (Bluetooth profiles). Open layer 3 (hold Layer 1 + Layer 2, see “The layers”), then:
- BT_SEL 0 to BT_SEL 4, on the number keys 1 to 5, select profiles 1 to 5. Select a free profile, then pair the new device from its Bluetooth settings.
- Afterwards, the same keys switch instantly between your paired devices.
- BT_CLR, at the far left of the number row, forgets the device on the current profile, if you need to pair it again. Remove “Sofle” from that device’s Bluetooth list too before pairing again.
Cable or wireless
Your keyboard can type over Bluetooth or through a USB-C cable plugged into the left half. When both are available, it uses your preferred connection. It comes set to prefer the cable. To change it, open layer 3, then press OUT_USB or OUT_BLE on the home row (A and S positions):
- OUT_USB, prefer the cable: when the left half is plugged into a computer, it types through the cable. Unplugged, or plugged into a charger, it types over Bluetooth.
- OUT_BLE, prefer Bluetooth: it keeps typing over Bluetooth even while the left half is plugged into a computer, for example to charge it from one computer while typing on another device. When no cable is connected, it types over Bluetooth either way.
The keyboard remembers your choice, even after a restart, and the left screen shows the connection in use (see “Reading the screens”).
Remap any key with ZMK Studio
You can change the layout from your browser, with nothing to install or flash.
- Plug the left half into your computer with a USB-C cable.
- Open zmk.studio in Chrome or Edge and click connect.
- Click a key, pick its new function, then save. Changes are stored on the keyboard.
The layers
The Sofle keeps a full number row, and puts symbols, arrows, F-keys and a number pad on extra layers, reached by holding thumb keys.
The thumb keys
- Layer 1 (symbols and arrows): hold either Layer 1 key, the fourth thumb key on each half.
- Layer 2 (F-keys, number pad and navigation): hold Layer 2, the second thumb key on the left half.
- Layer 3 (Bluetooth): hold Layer 1 and Layer 2 at the same time. The easiest way is Layer 2 with your left thumb and Layer 1 with your right thumb.
The knobs
- Left knob: turn to change the volume, press to mute.
- Right knob: turn to scroll, press to pause media. On layer 1 it moves by page (Page Up / Page Down).
Reading the maps
| &kp | A normal key. |
| &mt | Tap for the key shown, hold for the modifier. Bottom-left: tap Esc, hold Ctrl. |
| &mo | Hold to use that layer: 1 for layer 1, 2 for layer 2. |
| &inc_dec_kp | Knob: one action per turning direction. |
| &bt | Bluetooth control (see “Use several devices”). |
| &trans | Transparent: the key keeps what it does on the base layer. |
| &none | Does nothing on this layer. |
Layer 0 · Base
Always activeC_MUTE and C_PAUSE, next to B and N, are the knob clicks.
Layer 1 · Symbols and arrows
Hold a Layer 1 thumb keyArrows on H J K L, brackets and < > just below.
Layer 2 · F-keys, number pad and navigation
Hold the Layer 2 thumb keyF1 to F12 on the left with Home, Page Up, Page Down and End below, a number pad on the right.
Layer 3 · Bluetooth
Hold Layer 1 + Layer 2Bluetooth profiles on the number row, OUT_USB / OUT_BLE on A and S.
Useful links
These resources cover every wireless ZMK Sofle, not only ours, so you can rely on them for anything this guide doesn’t cover.
| ZMK documentation | zmk.dev/docs: the official firmware docs, from basics to advanced features. |
| ZMK version | ZMK v0.3.0, the latest stable ZMK release (1 August 2025). |
| ZMK Studio | zmk.studio to remap in your browser, and zmk.dev/docs/features/studio for what it can do. |
| Key codes | zmk.dev/docs/keymaps/list-of-keycodes: every key you can assign, with OS compatibility. |
| Bluetooth issues | zmk.dev/docs/troubleshooting/connection-issues: pairing problems, and re-pairing the two halves. |
| Split keyboards | zmk.dev/docs/features/split-keyboards: how the two halves work together. |
| Custom firmware | zmk.dev/docs/user-setup to build your own firmware (combos, macros, tap dance…). Keymap Editor edits the keymap file visually. |
| Knobs | zmk.dev/docs/features/encoders: how the rotary encoders work in ZMK. |
| Our default config | github.com/jerlam06/zmk-config-sofle: the firmware your keyboard ships with, ready to fork. |
| Controller | nicekeyboards.com/docs/nice-nano: the nice!nano-compatible controller inside each half. |
| The Sofle project | github.com/josefadamcik/SofleKeyboard: the original open-source design by Josef Adamcik. |
| Community | ZMK Discord: a very active community for firmware questions. |
| Typing practice | keybr.com: build speed again while you get used to the new layout. |
Need help?
Something doesn’t behave as expected, or you have a question about your keyboard? Just write to us, we answer every message.
Happy typing! · TheKeebLab