OpenLogi Features by Connection Type: Complete Guide to Bolt, Unifying, Bluetooth, and Wired Support

OpenLogi supports an identical core feature set across Logi Bolt, Unifying, Bluetooth, and wired USB connections, with battery monitoring available exclusively for wireless receiver connections.

OpenLogi is an open-source configuration tool for Logitech HID++ devices that abstracts transport-layer differences to provide unified device management. Whether your mouse or keyboard connects via a Logi Bolt receiver (USB PID 0xC548), a Logi Unifying receiver (USB PID 0xC52B), direct Bluetooth, or wired USB, the application exposes the same configuration capabilities through a consistent CLI interface.

Core Features Available on All Connection Types

OpenLogi implements a device-agnostic feature layer that operates identically regardless of physical connection method. According to the source code in crates/openlogi-core/src/action.rs, the following capabilities are available across all four transport types:

  • Button remapping with OS-level input hooks
  • Per-application profile overlays for context-sensitive configurations
  • DPI preset management and cycle actions (HID++ feature 0x2201)
  • SmartShift wheel mode and ratchet control (HID++ feature 0x2111)
  • Native scroll inversion settings (HID++ feature 0x2121)
  • Per-direction gesture bindings for advanced input mapping
  • Actions Ring overlay for quick command access
  • Litra light control including power, brightness, and color temperature adjustments

The uniformity of this feature set is enforced by the abstraction layer in crates/openlogi-hid/src/write.rs, which sends standardized HID++ commands directly over raw HID interfaces for both Bluetooth-paired and USB-cabled devices.

Connection-Specific Capabilities and Limitations

While core functionality remains constant, battery status reporting varies by connection type according to the device firmware's reporting behavior.

Logi Bolt Receiver (USB PID 0xC548)

Devices connected through the Logi Bolt receiver receive full feature support plus battery percentage and charging state monitoring. The Bolt-specific implementation in crates/openlogi-hidpp/src/receiver/bolt.rs handles device discovery, register parsing, and unique ID management for paired peripherals. This connection type provides the most complete information set, including real-time power statistics.

Logi Unifying Receiver (USB PID 0xC52B)

The Unifying receiver mirrors the Bolt implementation exactly, offering the same core feature set and battery monitoring capabilities. The source file crates/openlogi-hidpp/src/receiver/unifying.rs contains the Unifying-specific register map and protocol logic. Both receivers implement the identical HID++ protocol stack, ensuring feature parity between Bolt and Unifying hardware.

Bluetooth Direct Connection

Bluetooth-connected devices support the complete feature catalogue excluding battery information. As implemented in crates/openlogi-hid/src/write.rs, the direct HID interface transmits configuration commands effectively, but the device firmware reports battery status exclusively through receiver protocols rather than over Bluetooth LE. Users can remap buttons, adjust DPI, and configure SmartShift, but cannot view charge percentages.

Wired USB Connection

Wired connections provide the full feature set without battery monitoring, as the device draws power directly from the USB cable. The command dispatch mechanism in crates/openlogi-hid/src/write.rs treats wired devices identically to Bluetooth devices, sending raw HID++ packets over the USB HID interface. All configuration options including Litra light control and gesture bindings function identically to wireless modes.

Source Code Architecture by Transport Type

OpenLogi organizes connection handling into specialized modules that abstract transport differences while exposing a unified API:

Connection Type Implementation File Primary Function
Logi Bolt crates/openlogi-hidpp/src/receiver/bolt.rs Parses Bolt registers, manages device discovery, and provides unique ID resolution
Logi Unifying crates/openlogi-hidpp/src/receiver/unifying.rs Implements Unifying-specific register maps and receiver protocol handling
Bluetooth / Wired crates/openlogi-hid/src/write.rs Sends HID++ commands over raw HID interfaces for direct connections
CLI Interface crates/openlogi-cli/src/main.rs Exposes list, diag, and set commands that query connection metadata and battery status
Feature Dispatch crates/openlogi-core/src/action.rs Defines the action catalogue (button remap, DPI, SmartShift) dispatched regardless of transport

Practical CLI Usage Examples

The following commands operate identically across all connection types. The CLI entry point in crates/openlogi-cli/src/main.rs handles transport detection automatically:


# Enumerate all devices and display connection types

openlogi list

# Dump HID++ feature registers for the active device

openlogi diag features

# Remap button 5 to Ctrl+Tab shortcut

openlogi set button 5 action "Ctrl+Tab"

# Configure DPI preset level 2 to 1200 DPI

openlogi set dpi 2 1200

# Enable SmartShift wheel mode

openlogi set smartshift enable

These commands function whether the target device attaches via Bolt, Unifying, Bluetooth, or wired USB, as the underlying transport abstraction normalizes all HID++ communication.

Summary

  • Universal feature parity: Button remapping, DPI control (0x2201), SmartShift (0x2111), scroll inversion (0x2121), gestures, Actions Ring, and Litra light control work identically across Bolt, Unifying, Bluetooth, and wired connections.
  • Battery monitoring constraints: Only Logi Bolt and Unifying receivers report battery percentage and charging state; Bluetooth and wired connections lack this capability due to firmware reporting limitations.
  • Implementation files: Bolt logic resides in crates/openlogi-hidpp/src/receiver/bolt.rs, Unifying in crates/openlogi-hidpp/src/receiver/unifying.rs, and direct connections utilize crates/openlogi-hid/src/write.rs.
  • Consistent CLI interface: The openlogi command set abstracts connection differences, allowing seamless device management regardless of transport method.

Frequently Asked Questions

Does OpenLogi support battery monitoring for all connection types?

No. Battery percentage and charging state are only available for devices connected through Logi Bolt or Logi Unifying receivers. The source code explicitly handles battery queries in the receiver-specific modules (bolt.rs and unifying.rs), while Bluetooth and wired connections in write.rs lack battery reporting capabilities because the device firmware does not expose power statistics over these transports.

Is the feature set identical between Bolt and Unifying receivers?

Yes. According to the repository's implementation, both receivers use the identical HID++ protocol stack. The bolt.rs and unifying.rs files implement the same register parsing and device discovery logic, ensuring that button remapping, DPI settings, SmartShift configuration, and Litra light control function identically across both receiver types.

Can I configure a wired Logitech mouse with OpenLogi?

Yes. Wired USB connections support the complete feature set including button remapping, DPI presets, and gesture bindings. The CLI commands in crates/openlogi-cli/src/main.rs treat wired devices identically to wireless ones, routing HID++ commands through crates/openlogi-hid/src/write.rs. However, battery information is unavailable for wired connections since the device receives power through the USB cable.

How does the source code differentiate between connection types?

OpenLogi uses transport-specific abstraction layers. Bolt connections are handled by crates/openlogi-hidpp/src/receiver/bolt.rs with USB PID 0xC548 detection, Unifying by crates/openlogi-hidpp/src/receiver/unifying.rs with PID 0xC52B, and Bluetooth/wired connections by crates/openlogi-hid/src/write.rs using raw HID interfaces. The CLI layer in main.rs queries these backends to determine available capabilities such as battery monitoring.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →