Support For Thelio Prime (`thelio-r5-n1`)
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
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
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.