¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

USB experts? Question about serial devices, implementing multiple ports on QDX


 

Hi all

So there was some discussion here about implementing a second serial port on QDX. This would allow some configuration and monitoring activities to take place on one serial port connected to a terminal emulator, while another serial port is connected to WSJT-X for CAT control.?

Implementing a second serial port using microcontroller UARTs is a relatively straightforward proposition however, less useful than it would be to be able to have TWO serial ports across the USB cable. However, resource constraints mean that it appears difficult, perhaps impossible, to support TWO serial ports on USB - that's why I am asking if there are any USB experts on here.?

Details - the serial port is the Communications Device Class Abstract Control Model (CDC ACM). The STM32F401 used has a USB peripheral supporting 4 pairs of endpoints. For non-USB experts... endpoints are like a USB communication channel between the PC and the device. In QDX these are used as follows:

0: USB control endpoint - this is always endpoint zero in any USB system
1: CDC Data in/out endpoint pair
2: CDC Command endpoint
3: Audio in/out endpoint pair

The Composite device (thought of like a USB Hub) layer sits above that but does not use up any endpoints itself, it's just a wrapping.

Since the STM32F401 has 4 pairs of endpoints and these are all used, it appears that implementation of a second serial port is impossible. But the world is full of tricks. There could be ways. Does anybody know? It is nice to dream that there might be some way to hack around in the code in the lowest layers of USB code and somehow fake something to look like there are more endpoints than there really are??

73 Hans G0UPL

Join [email protected] to automatically receive all group messages.