What Logitech Devices Are Supported by OpenLogi? A Complete Hardware Compatibility Guide

TLDR: OpenLogi supports all Logitech mice and keyboards implementing the HID++ protocol—including the MX Master and G series—plus any Logitech UVC-compliant webcams such as the Brio, StreamCam, and C920 series, connecting via Bolt/Unifying receivers, Bluetooth, or wired USB according to the AprilNEA/OpenLogi source code.

OpenLogi is an open-source Rust framework designed to unlock advanced hardware capabilities in Logitech peripherals. Understanding exactly what Logitech devices are supported by OpenLogi is essential for developers building automation tools for gaming setups, streaming rigs, or enterprise workstation management.

Supported Device Categories

According to the README.md in the repository root, OpenLogi specifically targets devices communicating over the HID++ protocol and the UVC standard. The core abstraction layer in crates/openlogi-core/src/device.rs categorizes these peripherals through the DeviceKind enum, distinguishing between mice, keyboards, and lighting devices.

HID++ Mice (MX Master, G Pro, G502)

Any Logitech mouse utilizing the HID++ protocol is fully supported. The documentation explicitly notes that features such as DPI adjustment, SmartShift (electromagnetic wheel switching), and per-application button remapping work automatically. The hardware interface implementation in crates/openlogi-core/src/device.rs exposes these capabilities through standardized feature flags, meaning devices from the MX Master lineage to the G Pro X Superlight are compatible.

HID++ Keyboards (MX Keys, G915)

Keyboard support follows the same HID++ enumeration pattern. Models including the MX Keys family, MX Mechanical, and G915 are recognized by the receiver abstraction layers. The system queries device capabilities through the HID++ feature index system, allowing key remapping and backlight control without manufacturer-specific drivers.

UVC Webcams (Brio, StreamCam, C920 Series)

Beyond input devices, OpenLogi supports video hardware through the standard USB Video Class (UVC) protocol. The internationalization documentation in docs/README.de.md and parallel language files explicitly lists compatible models: the Logitech Brio, StreamCam, and C920 series. These integrate through crates/openlogi-hid (which handles UVC descriptors) and are accessible via the UvcDevice interface without requiring proprietary Logitech webcam drivers.

Connection Methods and Receiver Support

Device connectivity is abstracted through multiple receiver implementations located in crates/openlogi-hidpp/src/receiver/:

  • unifying.rs – Implements the legacy Unifying receiver protocol for older nano receivers.
  • bolt.rs – Handles the modern Logi Bolt receiver with enhanced security and latency.
  • bt.rs – Manages direct Bluetooth HID++ connections for Bluetooth-native peripherals.
  • Wired USB – Direct USB HID++ connections bypassing wireless receivers entirely.

The DeviceRoute enum in the IPC crate allows you to target specific connection paths when issuing commands programmatically.

Source Code Architecture

The hardware abstraction relies on two critical components:

  1. crates/openlogi-device-registry/src/lib.rs – Maintains a registry of known Logitech product IDs and their corresponding HID++ capability flags. This enables the system to map raw USB descriptors to specific feature sets (e.g., identifying whether a mouse supports high-resolution scrolling).
  2. crates/openlogi-cli/src/main.rs – Provides the command-line interface for device enumeration and diagnostics, utilizing the registry to display human-readable device names.

Practical Implementation Examples

You can verify device support and control hardware using the following patterns.

List all connected Logitech devices via the CLI:

cargo run -p openlogi-cli -- list

Adjust DPI settings on a supported mouse:

use openlogi_ipc::{OpenLogiClient, DeviceRoute, Dpi};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = OpenLogiClient::new().await?;
    // Target a mouse on the Bolt receiver at index 0, device index 0
    let route = DeviceRoute::Bolt { 
        receiver_index: 0, 
        device_index: 0 
    };
    let new_dpi = Dpi { low: 800, high: 1600 };
    client.set_dpi(route, new_dpi).await?;
    Ok(())
}

Initialize a Logitech UVC webcam:

use openlogi_hid::UvcDevice;

fn initialize_camera() -> Result<UvcDevice, openlogi_hid::Error> {
    // Discovers Brio, StreamCam, C920, or other Logitech UVC devices
    UvcDevice::open_first()
}

Summary

  • HID++ Mice: All models including MX Master series and G Pro variants are supported with full feature access (DPI, SmartShift, remapping).
  • HID++ Keyboards: MX Keys, G915, and other modern Logitech keyboards work via HID++ feature indices.
  • UVC Webcams: Brio, StreamCam, and C920 series are explicitly supported through the standard UVC interface.
  • Connection Flexibility: Devices connect via Bolt receivers, Unifying receivers, Bluetooth-direct, or wired USB according to crates/openlogi-hidpp/src/receiver/ implementations.
  • Programmatic Control: Use OpenLogiClient with DeviceRoute to target specific receivers and adjust hardware settings.

Frequently Asked Questions

Does OpenLogi support older Logitech devices using the Unifying receiver?

Yes. The crates/openlogi-hidpp/src/receiver/unifying.rs implementation specifically handles legacy Unifying receivers, ensuring compatibility with older peripherals like the MX Revolution or K800 while still exposing modern HID++ features.

Can OpenLogi control Logitech webcams that are not UVC-compliant?

No. The source code in crates/openlogi-hid and the documentation in docs/README.de.md confirm that only UVC-class webcams are supported. Older Logitech cameras requiring proprietary QuickCam drivers are incompatible with the UvcDevice interface.

Is Bluetooth-only mode supported for Logitech peripherals without a USB receiver?

Yes. The crates/openlogi-hidpp/src/receiver/bt.rs module implements direct Bluetooth HID++ transport, allowing devices such as the MX Keys Mini or MX Master 3S (Bluetooth variants) to function without any USB receiver attached.

How does OpenLogi identify which specific Logitech model is connected?

The library queries the device registry defined in crates/openlogi-device-registry/src/lib.rs, which maps USB vendor and product IDs to capability flags. If a device is not explicitly listed in the registry, the system falls back to generic HID++ feature detection in crates/openlogi-core/src/device.rs, ensuring basic functionality for unlisted but compliant hardware.

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 →