- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 112
Open
Description
While looking for a slow USB CDC connection (~30-40kB/s) I found that there is an artifical delay in the boolean operator:
ArduinoCore-sam/cores/arduino/USB/CDC.cpp
Line 314 in c893c62
| delay(10); | 
I can not find a reasoning for this delay. Removing it from the source greatly improved USB Speed for me to about 140kB/s
void setup() {
  // put your setup code here, to run once:
  SerialUSB.begin(2000000) ;
}
byte buffer[512] ;
void loop() {
#if 1
  int pos = 0 ;
  if (!SerialUSB)
    return ;
  while (SerialUSB.available())
  {
    if (pos >= sizeof(buffer))
      return ;
    buffer[pos++] = SerialUSB.read();
  }
  if (pos)
    SerialUSB.write(buffer, pos);
  return ;
#endif
}
Does anyone know the reasoning behind this delay?
Thanks in advance,
Tim
Metadata
Metadata
Assignees
Labels
No labels