Get connected.
Stay connected.
Follow the topology you chose on the firmware page. Keep all operating images from one release together and use settings reset only when you intend to clear stored bonds.
Flash the controllers
- Choose Direct Bluetooth or USB Dongle and identify the exact UF2 for each physical device.
- Connect one nice!nano v2 controller over USB. Put it in bootloader mode using its reset procedure, then copy its matching UF2 to the exposed bootloader drive.
- Wait for the drive to disappear and the controller to restart. Repeat with the remaining half and, for dongle mode, the dedicated dongle.
- Power both halves. In dongle mode, also connect the dongle to the host USB port.
Pair the left central
Use corney-left-enhanced.uf2 on the left and corney-right.uf2 on the right. Power both halves and allow the split link to connect. Pair the host with the Corney Bluetooth keyboard advertised by the left central.
The Functional layer contains ZMK Bluetooth clear and host-profile controls. See the current keymap for their physical positions before changing bonds.
Connect through USB
Flash the dedicated dongle with corney-usb-dongle.uf2, the left half with corney-left-peripheral.uf2 and the right half with corney-right.uf2. Power both halves, then connect the dongle to the host over USB. Allow both split links to establish.
The dongle sends keyboard and pointer input as USB HID. Its separate BLE connection remains available to compatible Keyboard Helper clients. A printable dongle case is available as an optional prototype on the Build page; the firmware steps above do not depend on it.
Switch topologies carefully
Changing which controller is central invalidates existing split bonds. To enter dongle mode, flash settings-reset.uf2 on the future dongle and both halves, let each boot, then flash the three operating images listed above. To return to Direct Bluetooth, reset both halves and reset the dongle before its next use; then flash corney-left-enhanced.uf2 on the left and corney-right.uf2 on the right. Pair the intended host again.
Read the OLED
The dongle's 128 × 64 OLED shows the output at upper left and local dongle battery at upper right. One row beneath the local battery contains two unlabeled remote percentages, such as 78% 56%. The bottom row shows the full active layer name beside a keyboard symbol; long names scroll slowly instead of being truncated.
-- means a remote value is unavailable or disconnected. Pinned ZMK v0.3.0 also reports disconnect as zero, so a genuine remote 0% appears as --. The pair follows split slot order and does not identify left or right. A local power symbol reports USB presence, not proof that a dongle cell is charging. The display blanks at idle and resumes with keyboard activity.
For electrical connections, use the OLED wiring guide.
Trackpad notes
The same half firmware supports an optional Cirque sensor on either or both halves. A missing sensor does not stop the keys or the other half's installed sensor. Each installed sensor is polled while active; touch alone does not wake a sleeping controller without the data-ready connection. Press a key on that half to wake it, and allow the split link to reconnect if needed.
A simultaneous hold of the same mouse button from both sensors is unsupported. The dongle has no sensor of its own.
When something does not respond
Only one half types
Confirm both halves are powered, that the right image is corney-right.uf2, and that the left image matches your topology. After changing central roles, clear old split bonds as described above.
The host cannot find Corney
In Direct Bluetooth mode, pair with the left central. In USB Dongle mode, connect the dongle by USB for keyboard input; BLE is a separate Keyboard Helper connection.
The OLED shows --
Wait for both halves to connect and send battery readings. If one stays unavailable, check that half's power and split bond. The two fields cannot be assigned to physical sides from their positions.
The trackpad stops after sleep
Wake the sensor-equipped half with a key, then allow split reconnect. Trackpad contact alone is not a wake source in this wiring.
I need deeper implementation evidence
The trackpad verification, OLED verification, and Keyboard Helper protocol are contributor documents. Normal installation does not require them.