Guide / from blank controllers to typing

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.

01 / install

Flash the controllers

  1. Choose Direct Bluetooth or USB Dongle and identify the exact UF2 for each physical device.
  2. 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.
  3. Wait for the drive to disappear and the controller to restart. Repeat with the remaining half and, for dongle mode, the dedicated dongle.
  4. Power both halves. In dongle mode, also connect the dongle to the host USB port.
02 / Direct Bluetooth

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.

03 / USB Dongle

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.

04 / changing the central

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.

05 / dongle status

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.

06 / optional pointing

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.

07 / common questions

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.