Supported Webcam Models for OpenLogi: Official Logitech UVC Compatibility List
OpenLogi officially supports six specific Logitech UVC webcams—the StreamCam, BRIO, C920, C922, C270, and C930e—and provides an extensible framework for recognizing additional USB Video Class devices that follow the same vendor/product-ID scheme.
OpenLogi is a Rust-based control suite for Logitech devices managed through the openlogi-camera crate, which abstracts USB Video Class camera discovery and control. Understanding the supported webcam models for OpenLogi is essential for developers building automation pipelines or desktop applications that require reliable video capture from Logitech hardware.
Officially Supported Logitech Webcam Models
The openlogi-camera crate explicitly enumerates the primary Logitech UVC cameras it recognizes in its top-level documentation. According to crates/openlogi-camera/src/lib.rs at line 5, the following models are officially supported:
- Logitech StreamCam
- Logitech BRIO
- Logitech C920
- Logitech C922
- Logitech C270
- Logitech C930e
The source code includes an ellipsis (…) in the comment block, indicating that the supported list can be extended to include additional Logitech UVC webcams as long as they conform to the standard USB vendor/product-ID identification scheme used by Logitech.
How OpenLogi Detects and Represents Webcams
When a supported webcam is connected, OpenLogi creates a DeviceRecord with the kind variant Webcam (UVC). This internal representation is defined in crates/openlogi-desktop/src/state/devices.rs at line 283, where the desktop UI consumes the device record to display connected cameras in the interface.
On macOS systems, the presence of a webcam triggers a permission workflow. The UI surfaces a Camera-permission prompt only when a webcam device is detected, as implemented in crates/openlogi-desktop/src/windows/settings/permissions.rs at line 59. This ensures users grant necessary access before the application attempts to capture video streams.
Working with Webcams in OpenLogi
OpenLogi provides both CLI tools and programmatic APIs for interacting with detected webcams. Below are practical examples for listing devices, capturing frames, and adjusting image controls.
Listing Connected Webcams via CLI
To enumerate all connected devices including Logitech webcams, use the list_devices command from the openlogi-cli crate:
use openlogi_cli::cmd::list::list_devices;
fn main() {
// Prints receivers, HID++ devices, *and* Logitech webcams.
list_devices().unwrap();
}
This implementation prints webcam information alongside other HID++ peripherals, as seen in crates/openlogi-cli/src/cmd/list.rs at line 21.
Capturing Single Frames
The CLI provides a snapshot utility for capturing PNG frames from the first detected webcam:
use openlogi_cli::cmd::snapshot::snapshot;
fn main() {
// Captures one PNG frame from the first detected webcam.
snapshot::run(None, Some("snapshot.png".into())).unwrap();
}
The snapshot command drives the same capture path used by the GUI frontend, with the entry point defined in crates/openlogi-cli/src/cmd/snapshot.rs at line 3.
Adjusting UVC Controls Programmatically
For fine-tuning webcam settings such as brightness and contrast, OpenLogi exposes the WebcamSettings configuration API in openlogi-core:
use openlogi_core::config::settings::WebcamSettings;
use openlogi_core::device::DeviceKind;
fn set_brightness(device_key: &str, value: u8) {
// Load settings, modify the brightness control, then write back.
let mut settings = WebcamSettings::load().unwrap();
settings.controls.insert(device_key.to_string(), ("brightness".into(), value));
settings.save().unwrap();
}
The UVC control handling is implemented in crates/openlogi-core/src/config/device.rs at line 233, providing persistent per-device image adjustment capabilities.
Summary
- OpenLogi explicitly supports six Logitech UVC models: StreamCam, BRIO, C920, C922, C270, and C930e, as declared in
openlogi-camera/src/lib.rs. - When detected, webcams are represented as
DeviceRecordinstances of kind Webcam in the application state. - The CLI offers
list_devicesandsnapshotcommands for device enumeration and frame capture. - Programmatic control over UVC parameters is available through the
WebcamSettingsAPI inopenlogi-core. - The architecture supports extending recognition to additional Logitech UVC devices following the same USB identification patterns.
Frequently Asked Questions
Which Logitech webcams are officially supported by OpenLogi?
OpenLogi officially recognizes the Logitech StreamCam, BRIO, C920, C922, C270, and C930e. These models are explicitly listed in the source code at crates/openlogi-camera/src/lib.rs line 5.
Can I use webcams that are not on the supported list?
Yes, the framework is designed to be extensible. The comment block in the camera crate uses an ellipsis to indicate that additional Logitech UVC webcams may be recognized as long as they share the standard Logitech USB vendor and product ID scheme.
How does OpenLogi handle camera permissions on macOS?
The desktop application checks for webcam presence and triggers a Camera-permission prompt in the settings window. This logic is located in crates/openlogi-desktop/src/windows/settings/permissions.rs at line 59, ensuring compliance with macOS privacy requirements before accessing video streams.
Where can I find the code that handles UVC webcam settings?
UVC control configuration, including brightness and contrast adjustments, is defined in crates/openlogi-core/src/config/device.rs at line 233. This file implements the WebcamSettings struct used to persist per-device image parameters.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →