thelio-io-windows icon indicating copy to clipboard operation
thelio-io-windows copied to clipboard

Support For Thelio Prime (`thelio-r5-n1`)

Open jbnance opened this issue 9 months ago • 2 comments

I have build and installed the MSI via README instructions on Windows 11 (Pro) and a Thelio Prime (thelio-r5-n1). Initially ran into similar error in Windows logs as described in #20. In a fork, I updated https://github.com/system76/thelio-io-windows/blob/master/src/main.rs#L89 to include thelio-r5 (based on the error message in the Windows logs), rebuilt and reinstalled.

However, when the service attempts to start now I get the following error message in the logs:

failed to find any Thelio Io devices
Custom {
    kind: NotFound,
    error: "failed to find any Thelio Io devices",
}

Is there a way I can be of assistance to help extend support to the recent Thelio Primes?

Thanks,

j

jbnance avatar Mar 29 '25 20:03 jbnance

It looks like the vendor and product IDs are different for the I/O device in my system.

Current code: https://github.com/system76/thelio-io-windows/blob/master/src/main.rs#L121

if usb_info.vid == 0x1209 && usb_info.pid == 0x1776 {
    debug!("Thelio Io at {}", port_info.port_name);

Results of lsusb from Pop:

Bus 001 Device 002: ID 3384:000b System76 Thelio Io 2

Windows shows:

> Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match '^USB\\VID_3384' } | Format-Table -AutoSize

Status Class    FriendlyName         InstanceId
------ -----    ------------         ----------
OK     USB      USB Composite Device USB\VID_3384&PID_000B\8&6C00884&0&13
OK     HIDClass USB Input Device     USB\VID_3384&PID_000B&MI_03\9&5777AD6&0&0003
OK     HIDClass USB Input Device     USB\VID_3384&PID_000B&MI_02\9&5777AD6&0&0002
OK     HIDClass USB Input Device     USB\VID_3384&PID_000B&MI_01\9&5777AD6&0&0001
OK     HIDClass USB Input Device     USB\VID_3384&PID_000B&MI_00\9&5777AD6&0&0000

jbnance avatar Mar 30 '25 14:03 jbnance

Something bigger is going on than just the device IDs. It doesn't appear that the Rust app is finding any USB or serial devices on my system. I tried the basic "list ports" example from the serialport crate:

> cargo build --features usbportinfo-interface --example list_ports

...and it reports no ports found. I also tried a very simple print app:

main.rs:

fn main() {
	let ports = serialport::available_ports().unwrap();
	println!("{ports:?}");
}

Cargo.toml:

[package]
name = "serialtest"
version = "0.1.0"
edition = "2021"
rust-version = "1.59.0"

[dependencies]
serialport = "4"

And it prints an empty list ([]).

Not sure where I'm going wrong. I tried doing a simple device list using the nusb crate and it lists all of the devices on my system.

Any thoughts or direction? Any other information I could provide to help narrow down?

I also tried both a non-admin and admin Powershell sessions.

jbnance avatar Apr 01 '25 01:04 jbnance