Kinesis Advantage360 Pro (KB360 Pro)

Official Kinesis Advantage360 Professional (ZMK / Clique) keyboard usage: layers, Bluetooth profiles, Mod shortcuts, Clique programming, ergonomics, troubleshooting, and document URLs from kinesis-ergo.com/support/kb360pro. Use when configuring, pairing, resetting firmware, or answering questions about this split ergonomic keyboard.

16 stars

Best use case

Kinesis Advantage360 Pro (KB360 Pro) is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Official Kinesis Advantage360 Professional (ZMK / Clique) keyboard usage: layers, Bluetooth profiles, Mod shortcuts, Clique programming, ergonomics, troubleshooting, and document URLs from kinesis-ergo.com/support/kb360pro. Use when configuring, pairing, resetting firmware, or answering questions about this split ergonomic keyboard.

Teams using Kinesis Advantage360 Pro (KB360 Pro) should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/kinesis-advantage360-pro-kb360-pro/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/plugins/asi/skills/kinesis-advantage360-pro-kb360-pro/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/kinesis-advantage360-pro-kb360-pro/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Kinesis Advantage360 Pro (KB360 Pro) Compares

Feature / AgentKinesis Advantage360 Pro (KB360 Pro)Standard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Official Kinesis Advantage360 Professional (ZMK / Clique) keyboard usage: layers, Bluetooth profiles, Mod shortcuts, Clique programming, ergonomics, troubleshooting, and document URLs from kinesis-ergo.com/support/kb360pro. Use when configuring, pairing, resetting firmware, or answering questions about this split ergonomic keyboard.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Kinesis Advantage360 Pro (KB360 Pro)

Primary hub (manuals, FAQs, tickets): https://kinesis-ergo.com/support/kb360pro/

Models: **KB360-PRO-*** and **KB365-PRO-*** (Professional series). Firmware: **ZMK** (Apache 2.0). Programming: **Kinesis Clique** (browser) or GitHub/ZMK for advanced users.

## Official documents (direct PDFs)

| Document | URL |
|----------|-----|
| Quick Start Guide (v1.30.25, Clique) | https://kinesis-ergo.com/wp-content/uploads/Advantage-360-Professional-QSG-v1-30-25-CLIQUE-digitalt.pdf |
| User’s Manual (ZMK, v2.5.25, Clique) | https://kinesis-ergo.com/wp-content/uploads/Advantage360-ZMK-KB360-PRO-Users-Manual-v2-5-25-Clique.pdf |
| Firmware update instructions | https://kinesis-ergo.com/wp-content/uploads/Advantage360-Professional-Firmware-Update-Instructions-9.5.24-KB360-PRO.pdf |
| Settings reset instructions | https://kinesis-ergo.com/wp-content/uploads/Advantage360-Professional-Settings-Reset-Instructions-11.22.23-KB360-PRO-GBR.pdf |

Downloads (factory defaults / reset files): https://kinesis-ergo.com/download/adv360-pro-factory-default-v2-9-25/ and https://kinesis-ergo.com/download/adv360-settings-reset-files-clique/

Clique UI: https://clique.kinesis-ergo.com — Help: https://kinesis-ergo.com/clique-help — YouTube: Kinesis official channel (tutorials).

## Hardware facts

- **Left module = primary** (talks to PC). **Right module only links to the left**; it cannot be the sole USB data path to the computer.
- **Power switches** (each module): ON = slide **away** from the adjacent charging port; OFF = toward the port.
- **Bridge connector**: optional; **not** for supporting the keyboard’s weight.
- **Tenting**: three heights; start low and adjust. **Separation/rotation**: shoulder-width and outward rotation for neutral wrists.
- **30-second sleep** per module after inactivity; next keypress wakes. Active **Profile** is whatever was active at last sleep.
- **Included**: keyboard, 2× USB-C→A cables + adapters, bridge connector, extra keycaps, keycap puller.

## Layers (default)

| Layer | Layer LED | How to access |
|-------|-----------|----------------|
| Base 0 | Off | Default typing; legends on top of keycap |
| kp 1 | White | **Tap** `kp` (left) to **toggle**; keypad legends lower-right on keycap |
| fn 2 | Blue | **Hold** either `fn` (pinky) — momentary; F1–F12; legends lower-left |
| Mod 3 | Green | **Hold** `Mod` — battery, profiles, backlight, Clique unlock, etc. |

## Mod-layer shortcuts (from Quick Start)

- **Bluetooth profiles 1–5**: `Mod` + `1` … `Mod` + `5`
- **Battery status**: `Mod` + `O` (hold for status via indicator LEDs)
- **Backlight up/down**: `Mod` + `Up` / `Mod` + `Down`
- **Backlight on/off**: `Mod` + `Enter`
- **RGB / indicator LEDs on/off**: `Mod` + `Space`
- **Bluetooth clear (active profile)**: `Mod` + **Windows key** (per QSG; label may show as Windows)
- **Wired use**: with left module USB-connected, keystrokes go to that machine via USB regardless of Profile; Kinesis recommends **Profile 5** (`Mod` + `5`) for wired mode to stop the Profile LED flashing.
- **Single USB port**: power right module from its battery if only one host USB port; do not charge right-only from a wall adapter in a way that violates manual warnings.

**Profile LED colors**: 1 White, 2 Blue, 3 Red, 4 Green, 5 Off. Flash **fast** = pairing ready; **slow** = paired device out of range; **solid** = connected.

## Wireless vs USB

- Optimized for **Bluetooth**; **USB** supported for stability or when batteries die.
- Left and right still communicate **wirelessly** with each other; BT radio is not fully disabled in “wired” use.
- Pair as **“Adv360 Pro”** in the OS BT menu when Profile LED flashes white rapidly for that profile.

## Battery & charging

- **Battery**: 1500 mAh Li-ion per module, 3+ year lifespan.
- **Charge source**: PC USB-A port **only**. **Wall chargers, power bricks, and monitor USB ports are prohibited** — can damage battery, void warranty, render keyboard unsafe.
- **Charge time**: 6–8 hours full charge per module.
- **Cable**: included USB-C → USB-A.
- **Left module drains faster** (handles BT host connection).
- When plugged in via USB, the module runs off USB power (not battery).
- Charge only when necessary to maximize battery lifespan.

### Battery status check (`Mod` + `O`)

Hold `Mod` + `O` and read the indicator LEDs:

| LED Color | Charge Level |
|-----------|-------------|
| Green | > 80% (full/healthy) |
| Yellow | 51–79% |
| Orange | 21–50% |
| Red | < 20% (charge soon) |

**Note**: battery status may not work on Windows 11.

## LED color map & Gay.jl GF(3) analysis

The KB360 Pro uses 3 independent LED color systems. Each maps partially onto the GF(3) trit model from [Gay.jl](https://github.com/zubyul/Gay.jl) (`trit_from_hue`):

### Trit-to-hue reference (Gay.jl `three_match.jl`)

| Hue range | Trit | Category |
|-----------|------|----------|
| 0–60 or 300–360 | PLUS (+1) | Warm: red, orange, magenta |
| 60–180 | ERGODIC (0) | Cool: yellow, green, cyan |
| 180–300 | MINUS (−1) | Cold: blue, purple |

### Battery LEDs → GF(3)

| LED | Hue (approx) | Trit | Meaning |
|-----|-------------|------|---------|
| Green | ~120° | ERGODIC (0) | Healthy |
| Yellow | ~60° | ERGODIC (0) | Moderate |
| Orange | ~30° | PLUS (+1) | Low |
| Red | ~0° | PLUS (+1) | Critical |

**Observation**: battery uses only 2 of 3 trits (ERGODIC → PLUS). No MINUS state — there is no "cold" battery indicator. The hue gradient (120° → 0°) moves from cool to warm monotonically, which aligns with thermal/urgency semantics.

### Profile LEDs → GF(3)

| Profile | LED Color | Hue | Trit |
|---------|-----------|-----|------|
| 1 | White | achromatic | — (no trit) |
| 2 | Blue | ~240° | MINUS (−1) |
| 3 | Red | ~0° | PLUS (+1) |
| 4 | Green | ~120° | ERGODIC (0) |
| 5 | Off | — | — (vacancy) |

**Observation**: profiles 2–4 form a **complete GF(3) triad**: MINUS + ERGODIC + PLUS = 0. White and Off are achromatic/vacant — they sit outside the hue wheel entirely (Blume-Capel spin-0 vacancy).

### Layer LEDs → GF(3)

| Layer | LED Color | Hue | Trit |
|-------|-----------|-----|------|
| Base 0 | Off | — | vacancy |
| kp 1 | White | achromatic | — |
| fn 2 | Blue | ~240° | MINUS (−1) |
| Mod 3 | Green | ~120° | ERGODIC (0) |

**Observation**: only 2 of 4 layers carry chromatic trit information. The active layers (fn, Mod) are MINUS and ERGODIC — no PLUS layer exists in the default config. A custom ZMK layer with a warm-hued LED would close the triad.

### Color bandwidth considerations

Gay.jl achieves 7.4 billion colors/sec on M3 (8 threads) with SPI guarantees via KernelAbstractions. The KB360's WS2812 LEDs (3 per module, SPI3 at P0.20) operate at 800 Kbps per LED — orders of magnitude below Gay.jl's throughput. The bottleneck is the WS2812 protocol (24-bit GRB, 1.25 μs/bit), not color computation.

For gamut mapping: the WS2812 is sRGB-only (no P3/Rec.2020). Gay.jl's `clamp_to_gamut(color, GaySRGBGamut())` is the correct projection for any computed color destined for these LEDs. The `LearnableOkhsl` perceptual model can optimize for WS2812's limited gamut while maintaining perceptual uniformity.

## Hardware internals (ZMK board definitions)

Source: `KinesisCorporation/Adv360-Pro-ZMK` V3.0 branch, `config/boards/arm/adv360/`.

- **SoC**: Nordic nRF52840 QIAA (ARM Cortex-M4F, 64MHz, 1MB Flash, 256KB SRAM) per module
- **Key matrix**: 5 rows × 10 cols per module, `col2row` diodes. Combined: 20 cols × 5 rows (right uses `col-offset=10`)
- **Left GPIOs**: rows P1.11/P1.15/P0.03/P1.14/P1.12; cols P0.25/P0.11/P0.02/P0.28-31/P1.09/P0.12/P0.07
- **Right GPIOs**: rows P0.19/P0.05/P0.31/P0.30/P0.29; cols P0.12/P1.09/P0.07/P1.11/P1.10/P1.13/P1.15/P0.03/P0.02/P0.28
- **LEDs**: 3× WS2812 per module via SPI3 MOSI P0.20 (24-bit GRB, 800Kbps). sRGB gamut only. 16.7M colors per LED, ~4.7×10²¹ combined states (firmware locks to ~7 named colors)
- **Backlight**: PWM0 at P0.17 (white only, brightness control)
- **Battery**: voltage divider (100kΩ/100kΩ) → ADC Ch2
- **External power gate**: GPIO P0.13
- **Flash layout**: SoftDevice 152KB → ZMK app 792KB → NVS 32KB → UF2 bootloader 48KB
- **PCB**: flex PCB in keywells, soldered switches (not hot-swap), 5 screws per half (no glue), battery on disconnect header

## KMonad string diagram model

The key processing pipeline modeled as morphisms in a symmetric monoidal category (rendered via DisCoPy). See `kb360pro-kmonad-strings.py` for source.

### Wire types (objects)

| Type | Meaning |
|------|---------|
| `Key` | Raw matrix scan event (row, col) |
| `Event` | Press/Release with timestamp |
| `Layer` | Layer state (0–3), threads through as persistent state |
| `HID` | USB HID keycode |
| `USB` / `BLE` | Output report (wired / wireless) |
| `LED` | WS2812 RGB command |
| `Profile` | BT profile (1–5) |

### Full pipeline (string diagram)

```
Key ⊗ Layer
 │         │
[matrix_scan] │         +1 (GENERATE)
 │         │
Event    Layer
 │─────────│
[layer_lookup]          0 (TRANSPORT)
 │─────────│
HID      Layer
 │─────────│
[Mod_shortcuts]         0 (TRANSPORT)
 │     │       │
HID   Layer   LED
 │     │───────│
[HID_emit] [WS2812]    −1 (VERIFY)
 │    │      │
USB  BLE    LED
```

GF(3) conservation: `+1 + 0 + 0 + (−1) = 0 mod 3` ✓

### KMonad concept mapping

| KMonad | String diagram | Categorical operation |
|--------|---------------|----------------------|
| `defsrc` | Input wires (`Key`) | Domain of morphism |
| `deflayer` | Box `Event → HID` | Morphism per layer |
| Layer stack | `Layer` wire threading through | Traced state wire |
| `tap-hold 200` | Box `Event → HID ⊗ Layer` | Coproduct (tap xor hold) |
| Split keyboard | `(Left ⊗ Right) >> BLE_merge` | Tensor then merge |
| `around` (modifier wrap) | Sequential composition `>>` | Morphism composition |
| `multi-tap` | Box with branching | Coproduct fan-out |
| Profile switch | `Mod+N >> (BT_connect ⊗ Profile_LED)` | Composition + tensor |

### Concatenative (Forth) view

KMonad processes keys like a stack machine:

```
push(event) → lookup(layer) → emit(hid)
Key @ Layer → Key @ Event @ Layer → Key @ HID → Key @ USB
```

Each stage is a word operating on the implicit stack. Composition = concatenation.

## Troubleshooting (quick)

1. Power-cycle: disconnect/off **both** modules → on/connect **left**, wait ~5s → then **right**.
2. Right module **all three LEDs flashing red**: right searching for left — power-cycle; check batteries (`Mod` + `O`).
3. Order of operations: prefer **left first / left last** when connecting or disconnecting to avoid right searching alone.
4. Stale BT: forget **Adv360 Pro** on the computer **and** run keyboard **Bluetooth clear** for that profile, then re-pair.

## Site data (automation)

- **No public GraphQL** on `kinesis-ergo.com` (WordPress exposes **REST**: `https://kinesis-ergo.com/wp-json/`). The KB360 support **page** (`slug`: `kb360pro`) often has **empty `content.rendered`** in REST because rendering uses a **custom template**; treat the **live HTML** and **PDFs** as source of truth.
- Efficient pull: `curl` the support URL and grep `href=.*\.pdf`, or fetch PDFs directly from the table above.

## Limitations

- This skill summarizes manufacturer docs; for conflicts, **official PDFs and support page** win.
- Do not paste full manuals into chat; **link** the PDFs or extract short excerpts locally (e.g. `markitdown`, `pypdf`).

Related Skills

jepsen-testing

16
from plurigrid/asi

Jepsen-style correctness testing for distributed systems under faults (partitions, crashes, clock skew) using concurrent operation histories and formal checkers (linearizability/serializability and Elle-style anomalies). Use when designing, implementing, or running Jepsen tests, or interpreting histories/violations.

Deterministic Color Generation via Metadata Hashing

16
from plurigrid/asi

**Status**: ✅ Production Ready

cyton-dongle

16
from plurigrid/asi

Connect and stream from OpenBCI Cyton/Daisy via USB dongle, including first-time radio channel pairing

asi-transient-agenda

16
from plurigrid/asi

Org-agenda-like transient views for ASI skill orchestration via nbb/squint + Emacs hydra

Topological Superintelligence (TSI)

16
from plurigrid/asi

Compositional AI framework using GF(3) triadic balance and category-theoretic foundations.

zx-calculus

16
from plurigrid/asi

Coecke's ZX-calculus for quantum circuit reasoning via string diagrams with Z-spiders (green) and X-spiders (red)

zulip-cogen

16
from plurigrid/asi

Zulip Cogen Skill 🐸⚡

zls-integration

16
from plurigrid/asi

zls-integration skill

zig

16
from plurigrid/asi

zig skill

zig-syrup-bci

16
from plurigrid/asi

Multimodal BCI pipeline in Zig: DSI-24 EEG, fNIRS mBLL, eye tracking IVT, LSL sync, EDF read/write, GF(3) conservation

zig-programming

16
from plurigrid/asi

zig-programming skill

zeroth-bot

16
from plurigrid/asi

Zeroth Bot - 3D-printed open-source humanoid robot platform for sim-to-real and RL research. Affordable entry point for humanoid robotics.