DigiCDCMulti

Two or three USB CDC serial ports (SerialUSB, SerialUSB1, SerialUSB2; /dev/ttyACM0 and up) from one Digispark (ATtiny85) or Digispark Pro.

Author
Ihsan Kehribar and Digistump LLC (DigiCDC), OBJECTIVE DEVELOPMENT Software GmbH (V-USB), Marco Carnut
Maintainer
Marco Carnut
Website
https://github.com/marcocarnut/DigiCDCMulti
Category
Communication
License
NOASSERTION
Library Type
Contributed
Architectures
avr

Fork of DigiCDCFast, with its fixes and speed and the same API on every port. Include DigiCDCDual.h for two ports, which share the device's 8000 bytes/s, or DigiCDCTriple.h for three, which share 4000 because a low-speed host only has the bandwidth for six data endpoints at 4-byte packets. A single port still moves 25 times what DigisparkCDC managed. The ports send no serial-state notifications (V-USB's transmit buffers all carry data), and pausing input when a receive buffer is full pauses every port. Buffer sizes are a sketch's to choose, down to one packet. A sketch can also borrow the USB interrupt at the end of each transaction (usbTransactionEnd) and answer vendor requests of its own beside the ports (USB_CFG_VENDOR_HOOK), both from DigiCDCFast 1.4.0. Needs the Digistump AVR core. Tested on Linux; Windows refuses low-speed USB serial devices.

Downloads

Filename Release Date File Size
DigiCDCMulti-1.0.0.zip 2026-09-21 159.98 KiB