samm_flynn
Well-known member
Hi all,
I’m building a project around a Teensy 4.1 using its built‑in dual USB‑Serial (CDC) interfaces. On Windows (and other OSes), I see two COM ports pop up whenever I plug in the board—but the numbers (e.g. COM3/COM4, COM5/COM6, etc.) don’t always stay the same:
Sometimes the “first” port is COM3 and the “second” is COM4.
Other times, after unplugging/replugging or on a different PC, they swap or jump to COM7/COM8.
I’m concerned because the end users of my project won’t be familiar with COM‑port juggling.
Is there any documented rule or pattern (on Windows, macOS, Linux) for how these dual‑CDC ports are assigned?
If the assignment really is effectively “random” or uncontrolled by the Teensy, do I need to implement my own identification protocol (e.g. a startup handshake where each USB interface sends a distinct ID string) so my host software can reliably tell “Port A” from “Port B”?
Are there any best practices or driver settings (e.g. custom VID/PID pairs, serial‑number strings, or USB descriptors) I can use on the Teensy side to influence or fix the port ordering?
Any guidance or examples would be hugely appreciated—thanks!
I’m building a project around a Teensy 4.1 using its built‑in dual USB‑Serial (CDC) interfaces. On Windows (and other OSes), I see two COM ports pop up whenever I plug in the board—but the numbers (e.g. COM3/COM4, COM5/COM6, etc.) don’t always stay the same:
Sometimes the “first” port is COM3 and the “second” is COM4.
Other times, after unplugging/replugging or on a different PC, they swap or jump to COM7/COM8.
I’m concerned because the end users of my project won’t be familiar with COM‑port juggling.
Is there any documented rule or pattern (on Windows, macOS, Linux) for how these dual‑CDC ports are assigned?
If the assignment really is effectively “random” or uncontrolled by the Teensy, do I need to implement my own identification protocol (e.g. a startup handshake where each USB interface sends a distinct ID string) so my host software can reliably tell “Port A” from “Port B”?
Are there any best practices or driver settings (e.g. custom VID/PID pairs, serial‑number strings, or USB descriptors) I can use on the Teensy side to influence or fix the port ordering?
Any guidance or examples would be hugely appreciated—thanks!