diff --git a/src/main.rs b/src/main.rs index 130587f..89f4ff2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -318,9 +318,21 @@ fn main() { let start = SystemTime::now(); let port = args.port.or_else(|| { - for port in serial_enumerator::get_serial_list() { - if let Some(vendor) = port.vendor && vendor.as_str() == "TUL" { - return Some(port.name.into()) + let ports = serial_enumerator::get_serial_list(); + + // First try TUL (works on Linux and macOS)... + + for port in &ports { + if let Some(vendor) = &port.vendor && vendor.as_str() == "TUL" { + return Some(port.name.clone().into()) + } + } + + // ...then try FTDI (which Windows overrides) + + for port in &ports { + if let Some(vendor) = &port.vendor && vendor.as_str() == "FTDI" { + return Some(port.name.clone().into()) } }