Filter results by

USB – Host Controller

The ARTIK 7 and ARTIK 10 development boards implement USB host controller support on multiple USB ports. The ARTIK 5 board implements device-side USB operation, but no host controller functionality.

ARTIK 7 Integrated USB 2.0 OTG

The ARTIK 7 module itself directly supports a USB OTG 2.0 port whose function is automatically switched between USB host and USB device following OTG protocols.

ARTIK 10 Integrated USB 3.0 Host/Device

The ARTIK 10 module itself directly supports a USB 3.0 port whose function can be programmatically switched between USB host and USB device.

The USB 3.0 (SuperSpeed) port can be configured between host and device mode dynamically. When you switch the logic to host mode, it acts as host controller and enumerates connected devices. When you switch the logic to device mode, it acts as a USB device.

USB 3.0 Host Controller Mode

To configure for host mode:
$ echo 0 > /sys/devices/usb.1/12000000.dwc3/id

When you connect a USB storage device to the USB 3.0 host controller port and enter this command:

$ dmesg | tail

you might see a message like this:

[ 393.643712] [c3] sd 0:0:0:1: Attached scsi generic sg1 type 0
[ 393.944281] [c3] scsi 0:0:0:2: Direct-Access Generic STORAGE DEVICE TS26 PQ: 0 ANSI: 6
[ 393.946333] [c2] sd 0:0:0:1: [sdb] 62518272 512-byte logical blocks: (32.0 GB/29.8 GiB)
[ 393.948346] [c2] sd 0:0:0:1: [sdb] Write Protect is off
[ 393.948390] [c2] sd 0:0:0:1: [sdb] Mode Sense: 21 00 00 00
[ 393.948744] [c3] sd 0:0:0:2: Attached scsi generic sg2 type 0
[ 393.950583] [c2] sd 0:0:0:1: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO A
[ 393.957962] [c0] sd 0:0:0:2: [sdc] Attached SCSI removable disk
[ 393.965210] [c3] sdb: sdb1 sdb2 sdb3
[ 393.976254] [c3] sd 0:0:0:1: [sdb] Attached SCSI removable disk

The device is connected to /dev/sdb and the partitions are enumerated to sdb1, 2 and 3.

You can mount the partition like this:
mount /dev/sdb3 /mnt

You can also check the speed of the device through a simple dd file copy command.

dd if=/dev/sdb of=/dev/null bs=1M count=512

dd if=/dev/zero of=/dev/sdb bs=1M count=512

Use caution – the data on your device will be overwritten.

USB 3.0 Device Mode

To configure the port for device mode:
echo 1 > /sys/devices/usb.1/12000000.dwc3/id

Refer to USB – Device for additional information.

ARTIK 7 and 10 Additional USB 2.0 Host Ports

The ARTIK 7 and ARTIK 10 development boards provide a two-port USB host controller for connecting peripheral devices.

  • The ARTIK 7 Interposer board incorporates a Microchip USB3503 Hub that provides two additional USB 2.0 host controller ports.

  • The ARTIK 10 developer board incorporates an ASIX AX88760 USB/Ethernet port expander that provides two additional USB 2.0 host controller ports.

Keyboard/Mouse Support

The ARTIK 7 and ARTIK 10 development boards can support USB peripheral devices such as a keyboard and mouse plugged into their USB 2.0 host controller. Standard keyboard drivers are pre-installed.

These ports are convenient when used in conjunction with an HDMI monitor, as the keyboard and mouse provide a complete terminal interface solution. Refer to the article on Displays for details on using HDMI.

X11 Keyboard/Mouse Support. Drivers may be necessary to enable keyboard and mouse support in an X11 window environment. Refer to the HDMI Display article for the correct evdev driver.

Apple Keyboard Support. The Apple keyboard is not supported out-of-the-box. It requires hid_apple kernel module support, which is not enabled in the ARTIK kernel by default. With a little effort, you can enable this yourself.

  1. ARTIK 10 kernel source code can be downloaded from
    The kernel build guide, found on the same page, is for the Linux® environment, so if you are using Windows® or Mac®, probably the easiest way is to set up an Ubuntu 64-bit Virtual Box for cross compilation.
  2. Follow build guide step 2.1 to install the cross compiler.
  3. Re-build the kernel with Apple keyboard support:
    1. make ARCH=arm artik10_defconfig
    2. Manually edit .config and set CONFIG_HID_APPLE=y
    3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4
    4. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- exynos5422-artik10.dtb
    5. ./scripts/
  4. Follow step 3 of the Update Guide in the github page to boot from your new image.
  5. Plug your Apple USB keyboard into your ARTIK board.
Last updated on: