Good afternoon,
I am seeing about double the upload speed when uploading data on to an ext4 SD card when I use the VOXL 2 Ethernet and USB Hub Add-on versus the USB3 UART Add-On, with the exact same SD card and SD card reader. Both are over USB 3.0 JST.
I am wondering what could cause this difference? I looked at the diagram for the Ethernet and USB Hub Add-on and I see that it goes through the legacy connector, yet it has double the upload speed on average when compared to the USB3 UART Add-On.
The specific SD card I am using
Note: I am using a UHS-I SD card reader, but it supports USB-3.0
Here is my data:
ext4 using USB 3.0 hat (27.65 MB/s AVG)
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.83333 s, 10.8 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.43407 s, 36.6 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.06638 s, 17.1 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.44299 s, 36.3 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.7253 s, 30.4 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.44141 s, 36.4 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 2.3068 s, 22.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.44809 s, 36.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.726 s, 30.4 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.83522 s, 28.6 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.75136 s, 29.9 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.17873 s, 16.5 MB/s
ext4 using Ethernet and USB Hub Add-on (57.66 MB/s AVG)
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.19313 s, 12.5 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.768765 s, 68.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.70849 s, 30.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.779255 s, 67.3 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.76896 s, 68.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.769244 s, 68.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.775723 s, 67.6 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.793661 s, 66.1 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.775242 s, 67.6 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.803807 s, 65.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 1.40681 s, 37.3 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.78479 s, 66.8 MB/s
I also tested with exfat rather than ext4 using the exfat-fuse package (Note: This is significantly slower than ext4, likely due to the fact that exfat-fuse is not a kernel-level package and thus, that slows it down).
The difference was not as substantial.
exfat using USB 3.0 hat (11.80 MB/s AVG)
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 2.94688 s, 17.8 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 2.96565 s, 17.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.46706 s, 15.1 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.2239 s, 12.4 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.86253 s, 10.8 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.56537 s, 11.5 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.7555 s, 11.0 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 7.02502 s, 7.5 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 7.07462 s, 7.4 MB/s
voxl2:/$
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 6.7923 s, 7.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.75127 s, 11.0 MB/s
exfat using Ethernet hat (14.65MB/s AVG)
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.23971 s, 16.2 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 2.21505 s, 23.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.28938 s, 15.9 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.7585 s, 13.9 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.81527 s, 13.7 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.99802 s, 13.1 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.76004 s, 13.9 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.03387 s, 13.0 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 4.20047 s, 12.5 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.72385 s, 14.1 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.80692 s, 13.8 MB/s
voxl2:/$ sync && dd if=/dev/zero of=/media/sd/testfile bs=50M count=1 oflag=dsync && sync
1+0 records in
1+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 3.98186 s, 13.2 MB/s