Skip to content

Commit fb394cd

Browse files
committed
2 parents f097c70 + c04a240 commit fb394cd

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

README.md

+44-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,53 @@
33

44

55
The ArduinoCore for the SAMD21 does not support Isochronous USB datatransfer.
6-
This gitHub provides the code to implement support for Isochronous USB IN transactions (ie. streaming data from controller TO laptop).
7-
The code will implement a speed of around 1MB/S or 10Mb/s. (10,000 x (1023+51)bytes per 10s)
6+
This gitHub provides the code to implement support for Isochronous USB IN transactions at the max of 1023bytes per transfer (ie. streaming data from controller TO laptop). The code implements a speed of around 1MB/S or 10Mb/s. (10,000 x (1023+51)bytes per 10s from Wireshark)
87
The code provides a library that adds the Isochronous port to Windows keeping the ability to use Serial print accross the common port.
98

10-
What to find:
9+
What you find:
1110
1) The Arduino Sketch implementing Isochronous USB IN transactions
1211
2) The Atmel code implementing Isochronous USB IN transactions
13-
3) The Visual studio C++ code implementing a WinUSB based driver for receiving the Isochronous datatransfer in memory databuffer.
12+
3) The Visual studio C++ code implementing a WinUSB based driver for receiving the Isochronous datatransfer in memory databuffer. (new version!)
13+
14+
The VS C++ code is renewed and provides a C DLL library with several functions as:
15+
Initialize
16+
Start
17+
Stop
18+
Read
19+
Copy
20+
The library provides the class as well as the DLL exports, exposing it to external applications.
21+
22+
References for reading:
23+
On USB protocol:
24+
25+
http://www.usbmadesimple.co.uk/
26+
On Arduino's PluggableUSB framework:
27+
28+
https://github.com/arduino/Arduino/wiki/PluggableUSB-and-PluggableHID-howto
29+
On WinUSB api for windows receiving end:
30+
31+
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/windows-desktop-app-for-a-usb-device
32+
33+
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/how-to-write-a-windows-desktop-app-that-communicates-with-a-usb-device
34+
35+
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/getting-set-up-to-use-windows-devices-usb
36+
37+
Further detail around some tests I did comparing the BULK, ie. standard data transfer using Serial.print and Isochronous datatransfer.
38+
Test description:
39+
Run iterative ADC reads for 5 seconds (using RTC clock).
40+
Keep number of iterations made = Test result
41+
Write ADC read to Serial.print in
42+
package of 2 bytes (serial.print)
43+
package of 52 bytes (serial.print)
44+
package of 1023 bytes (isochronous)
45+
no writing
46+
Test results:
47+
2 bytes: 33 000 iterations
48+
52 bytes: 30 000 iterations
49+
1023 bytes: 1 293 000 iterations
50+
no writing: 1 318 000 iterations
51+
52+
53+
Hope it can inspire you,
1454

1555
Keep making!

0 commit comments

Comments
 (0)