DigiCDCFast

USB CDC serial port for the Digispark (ATtiny85) and Digispark Pro, without the throughput limits and bugs of DigisparkCDC.

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

Fork of the DigisparkCDC library from the Digistump AVR core 1.7.5 with the same SerialUSB API. The original waits 5 ms after every byte written, 1 ms before every USB poll and sends a zero-length packet after every data packet, which caps output near 200 bytes/s; without them it reaches 8000 bytes/s. Also fixes receive stalls, lost data and flush(), keeps the host's line settings (baud()), and offers DigiCDCMedium.h with 2-byte packets for timing-sensitive sketches. Since 1.1.0 about 450 bytes of flash smaller, with buffer sizes a sketch can choose and an optional hook to refuse line settings. A sketch can also borrow the USB interrupt at the end of each transaction (usbTransactionEnd), for work that cannot wait the 200 us a run of transactions takes, and answer vendor requests of its own beside the serial port (USB_CFG_VENDOR_HOOK), which is how one device can be a serial port to one program and something else to another without spending an endpoint. Needs the Digistump AVR core. Tested on Linux (PC, Raspberry Pi); Windows refuses low-speed USB serial devices.

Downloads

Filename Release Date File Size
DigiCDCFast-1.4.0.zip 2026-09-18 158.30 KiB
DigiCDCFast-1.2.0.zip 2026-09-16 153.94 KiB
DigiCDCFast-1.1.0.zip 2026-09-15 153.19 KiB
DigiCDCFast-1.0.0.zip 2026-09-14 150.57 KiB