# Question About the USB3 UART Add-On versus the VOXL 2 Ethernet and USB Hub Add-on

Source: https://forum.modalai.com/topic/3855/question-about-the-usb3-uart-add-on-versus-the-voxl-2-ethernet-and-usb-hub-add-on
Category: VOXL 2 and VOXL 2 Mini (https://forum.modalai.com/category/26/voxl-2-and-voxl-2-mini)
Tags: voxl-2
Posted: 2024-10-09 19:34:27 UTC by John Nomikos
Replies: 1 · Views: 580

## John Nomikos · 2024-10-09 19:34:27 UTC

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](https://www.modalai.com/products/m0062-2?srsltid=AfmBOooRXGqRnLyuEw4-tmp_c1fKTyDLWW5OUQth8l2nbanE1SwRPfCJ) versus the [USB3 UART Add-On](https://docs.modalai.com/voxl2-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](https://www.amazon.com/SanDisk-128GB-Extreme-UHS-II-Memory/dp/B08YF7PB14/ref=cm_cr_arp_d_product_top?ie=UTF8&th=1)

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

```

## Reply by John Nomikos · 2024-10-09 21:08:55 UTC

@John-Nomikos Edit: I swapped SD card readers (the original was UHS-I, this one is now UHS-II) and now am seeing 150-200 MB/s for both hats. Speed difference was likely caused by the card reader and not the voxl2. Still weird that there was a speed difference, but oh well
