====== Use to U3 Shield Tinkering Kit ====== This page introduces how you can use a Tinkering Kit compatible U3 IO Shield. {{:en:u3:u3io_tinkering.jpg?300|}} **Using a dual color LED and push button switch.** 1. Hardware settings. {{:en:u3:u3_tinkering_example1.png?300|}} 2. **ODROID-U3** settings.\\ You will use GPIO-I2C to comunication with U3 IO Shield. sudo modprobe i2c_dev sudo modprobe i2c-gpio-custom bus0=4,200,199 To use externel IO port of U3 IO Shield you will attach tca6416 gpio driver to i2c-gpio.4 bus. echo tca6416 0x20 > /sys/devices/platform/i2c-gpio.4/i2c-4/new_device Now, you can use GPIO #301 ~ #304 in the Tinkering Kit. echo 302 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio302/direction echo 1 > /sys/class/gpio/gpio302/value 3. **Bash shell script example** #!/bin/bash GPIOPATH="/sys/class/gpio" echo 301 > $GPIOPATH/unexport echo 302 > $GPIOPATH/unexport echo 303 > $GPIOPATH/unexport echo 301 > $GPIOPATH/export echo 302 > $GPIOPATH/export echo 303 > $GPIOPATH/export echo in > $GPIOPATH/gpio302/direction echo out > $GPIOPATH/gpio302/direction echo out > $GPIOPATH/gpio303/direction while true : do cat=($(cat $GPIOPATH/gpio301/value)) if [ $cat -eq 0 ]; then pushed=1 fi if [[ ($cat -eq 1) && ($pushed -eq 1) ]]; then pushed=0 cnt=$((($cnt + 1)%4)) fi case $cnt in 0) echo 0 > $GPIOPATH/gpio302/value echo 0 > $GPIOPATH/gpio303/value ;; 1) echo 1 > $GPIOPATH/gpio302/value echo 0 > $GPIOPATH/gpio303/value ;; 2) echo 0 > $GPIOPATH/gpio302/value echo 1 > $GPIOPATH/gpio303/value ;; 3) echo 1 > $GPIOPATH/gpio302/value echo 1 > $GPIOPATH/gpio303/value ;; esac sleep 0.1 done