Skip to content

USB Type-A / C

Rhino Pi X1 (Rhino-X1) features one Type-C interface and four USB 3.0 Type-A interfaces.

  • USB 3.0 Type-A Interface

Supports HOST mode, theoretical maximum transfer rate of 5 Gbps.

  • Type-C Interface

The Type-C interface supports USB 3.0 OTG and DP output.

Hardware Connection

To test the HOST mode functionality of the USB interface, we can test the basic functions of connected USB devices and USB flash drive read/write speeds.

Basic Functionality

You can connect devices such as card readers, mice, and keyboards to the USB interface, and test whether the devices are properly recognized and functional by plugging and unplugging them.

No External Devices Connected

Use the lsusb command to view the devices currently recognized by the system.

bash
lsusb

Terminal output example:

bash
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

External Devices Connected

Connect devices such as card readers, mice, and keyboards to the USB interface, and use the lsusb command to check if new devices appear.

bash
lsusb

Terminal output example: A USB flash drive is connected to the USB interface.

bash
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 0781:55a9 SanDisk Corp.  SanDisk 3.2Gen1
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

By comparing the output information, you can confirm that the new USB device is properly recognized, with the new device ID being 0781:55a9.

After the USB device is properly recognized, you can use the device to verify that its functionality is normal.

Read/Write Testing

Connect a USB flash drive to the USB interface and use the dd command to test read/write speeds.

Identify Storage Device

Use the lsblk | egrep "sdi|NAME" command to confirm the USB flash drive's device name.

bash
 lsblk | egrep "sdi|NAME"

Terminal output example: sda is the current USB flash drive device name; please replace it according to your actual situation.

bash
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sdi       8:128  1 114.6G  0 disk 
└─sdi1    8:129  1 114.6G  0 part /media/sdi1

Test Write Performance

bash
sudo dd if=/dev/zero of=/dev/sdi bs=1M count=100
  • dd: A command-line tool in Linux for copying and converting files.
  • if=/dev/zero: Specifies the input file as /dev/zero, a special file that provides an infinite stream of zero-byte data.
  • of=/dev/sdi: Specifies the output file as /dev/sdi, i.e., the USB flash drive device.
  • bs=1M: Specifies the block size as 1MB.
  • count=100: Specifies copying 100 blocks.

This command writes 100MB of zero-byte data to the USB flash drive and displays the write speed.

Terminal output example:

bash
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0451387 s, 2.3 GB/s

Test Read Performance

bash
sudo dd if=/dev/sdi of=/dev/null bs=1M count=100
  • dd: A command-line tool in Linux for copying and converting files.
  • if=/dev/sdi: Specifies the input file as /dev/sdi, i.e., the USB flash drive device.
  • of=/dev/null: Specifies the output file as /dev/null, a special file that discards all data written to it.
  • bs=1M: Specifies the block size as 1MB.
  • count=100: Specifies copying 100 blocks.

This command reads 100MB of data from the USB flash drive into /dev/null and displays the read speed.

Terminal output example:

bash
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0260768 s, 4.0 GB/s