Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for DSR, DCD, and RI to Adafruit_TinyUSB_Arduino CDC profile #491

Open
SmittyHalibut opened this issue Feb 19, 2025 · 1 comment
Labels
Feature New feature or request

Comments

@SmittyHalibut
Copy link

SmittyHalibut commented Feb 19, 2025

Is your feature request related to a problem? Please describe.
I need to emulate an FT231 serial chip, the hardware control signals. I use CTS, DSR, and DCD to trigger events on the Host. (Ham Radio software, decades old, triggers PTT, and morse code paddles, based on these flow control signals.)

Describe the solution you'd like
I need a way to trigger these signals up-stream to the USB Host. We have Serial.dtr() and Serial.rts() for reading control signals from the Host. I want Serial.cts(), Serial.dsr(), and Serial.dcd() too, to send those signals to the host. Similarly to how the Python serial library works. (And probably Serial.ri() since I'm there, might as well complete the whole set.)

Describe alternatives you've considered
Some Ham Radio software is moving towards MIDI for triggering these events instead, which I have already implemented. But I want to remain backward compatible with old/existing software.

I could continue to use an FT231 chip, but I can't add MIDI to the FT231. I would need a USB Hub, and both my microcontroller (RP2040, but I don't think that's relevant here) and the FT231 chip. I'd rather have both CDC and MIDI endpoints on the same USB device.

Additional context
Changing the host software that's consuming these signals is a non-starter. Or rather, it's already happening (moving to MIDI), but it's happening VERY SLOWLY. I want to remain backward compatible where possible.

I intend to attempt this code change myself. See SmittyHalibut/Adafruit_TinyUSB_Arduino

Update: See #493

Update: USB CDC ACM spec doesn't include CTS. :-( But I've implemented all the rest.

@SmittyHalibut SmittyHalibut added the Feature New feature or request label Feb 19, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Feb 22, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Feb 22, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Feb 22, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Mar 1, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Mar 1, 2025
SmittyHalibut added a commit to SmittyHalibut/Adafruit_TinyUSB_Arduino that referenced this issue Mar 1, 2025
@SmittyHalibut SmittyHalibut changed the title Add support for CTS, DSR, and DCD to Adafruit_TinyUSB_Arduino CDC profile Add support for ~~CTS~~, DSR, and DCD to Adafruit_TinyUSB_Arduino CDC profile Mar 1, 2025
@SmittyHalibut SmittyHalibut changed the title Add support for ~~CTS~~, DSR, and DCD to Adafruit_TinyUSB_Arduino CDC profile Add support for DSR, DCD, and RI to Adafruit_TinyUSB_Arduino CDC profile Mar 1, 2025
@SmittyHalibut
Copy link
Author

I've officially submitted #493 for consideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant