Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:acc:vu8 [2016/12/22 10:20] john1117 [3. Backlight control with PWM.] |
en:acc:vu8 [2017/05/22 09:09] (current) odroid [ODROID-VU8C] |
||
---|---|---|---|
Line 6: | Line 6: | ||
[[http://www.hardkernel.com/main/products/prdt_info.php?g_code=G147918565945|Where to buy]] | [[http://www.hardkernel.com/main/products/prdt_info.php?g_code=G147918565945|Where to buy]] | ||
+ | |||
+ | Assembly guide by ETA PRIME ! | ||
+ | {{youtube>0eSQ7iG_PlY?medium}} | ||
====== Specifications ====== | ====== Specifications ====== | ||
* 8-inch TFT-LCD | * 8-inch TFT-LCD | ||
Line 58: | Line 61: | ||
==== 2. Backlight ON/OFF. ==== | ==== 2. Backlight ON/OFF. ==== | ||
- | Add the following line in "/etc/rc.local".\\ | + | |
+ | === [ Ubuntu ] === | ||
+ | Add the following lines into "/etc/rc.local".\\ | ||
**ODROID-C2** | **ODROID-C2** | ||
<code> | <code> | ||
path="/sys/class/gpio" | path="/sys/class/gpio" | ||
- | echo 234 > $path/export | ||
echo 214 > $path/export | echo 214 > $path/export | ||
- | echo out > $path/gpio234/direction | ||
echo out > $path/gpio214/direction | echo out > $path/gpio214/direction | ||
- | echo 0 > $path/gpio234/value | ||
echo 0 > $path/gpio214/value | echo 0 > $path/gpio214/value | ||
</code> | </code> | ||
Line 73: | Line 75: | ||
path="/sys/class/gpio" | path="/sys/class/gpio" | ||
echo 97 > $path/export | echo 97 > $path/export | ||
- | echo 108 > $path/export | ||
echo out > $path/gpio97/direction | echo out > $path/gpio97/direction | ||
- | echo out > $path/gpio108/direction | ||
echo 0 > $path/gpio97/value | echo 0 > $path/gpio97/value | ||
- | echo 0 > $path/gpio108/value | ||
</code> | </code> | ||
+ | |||
+ | === [ Android ] === | ||
+ | In case of Android, please add the followings in "init.odroid.board.rc".\\ | ||
+ | First, make the filesystem writable. | ||
+ | <code> | ||
+ | shell@odroidc2:/ $ su | ||
+ | root@odroidc2:/ # mount -o rw,remount / | ||
+ | </code> | ||
+ | |||
+ | Make or download the following shell script of the board model that you're using (C1 or C2)\\ | ||
+ | and copy it in **/system/bin/**.\\ | ||
+ | And make its permission executable. | ||
+ | |||
+ | <code> | ||
+ | # su | ||
+ | # chmod 755 /system/bin/vu8c_backlight_c2_android.sh | ||
+ | </code> | ||
+ | |||
+ | **ODROID-C2** | ||
+ | <file sh vu8c_backlight_c2_android.sh> | ||
+ | #!/bin/sh | ||
+ | |||
+ | path="/sys/class/gpio" | ||
+ | |||
+ | echo 214 > $path/export | ||
+ | |||
+ | echo out > $path/gpio214/direction | ||
+ | echo 0 > $path/gpio214/value | ||
+ | |||
+ | chown system system $path/gpio214/value | ||
+ | </file> | ||
+ | |||
+ | Now, you need to register the service to run this script automatically on boot time.\\ | ||
+ | Add the following lines in the end of /init.odroid.board.rc.\\ | ||
+ | Don't forget the root filesystem should be writable as aforementioned. | ||
+ | <code> | ||
+ | # su | ||
+ | # vi /init.odroid.board.rc | ||
+ | ..... | ||
+ | ..... | ||
+ | service vu8c_backlight /system/bin/vu8c_backlight_c2_android.sh | ||
+ | class main | ||
+ | user root | ||
+ | group root | ||
+ | oneshot | ||
+ | </code> | ||
+ | |||
+ | Then, reboot. | ||
+ | <code> | ||
+ | $ reboot | ||
+ | </code> | ||
+ | After reboot, you can confirm if the nodes are configured normally by checking "gpio214". | ||
+ | <code> | ||
+ | $ ls /sys/class/gpio/ | ||
+ | export | ||
+ | gpio214 | ||
+ | gpiochip122 | ||
+ | gpiochip136 | ||
+ | unexport | ||
+ | </code> | ||
+ | |||
+ | **ODROID-C1** | ||
+ | <file sh vu8c_backlight_c1_android.sh> | ||
+ | #!/bin/sh | ||
+ | |||
+ | path="/sys/class/gpio" | ||
+ | |||
+ | echo 97 > $path/export | ||
+ | |||
+ | echo out > $path/gpio97/direction | ||
+ | echo 0 > $path/gpio97/value | ||
+ | |||
+ | chown system system $path/gpio97/value | ||
+ | </file> | ||
+ | Now, you need to register the service to run this script automatically on boot time.\\ | ||
+ | Add the following lines in the end of /init.odroid.board.rc.\\ | ||
+ | Don't forget the root filesystem should be writable as aforementioned. | ||
+ | |||
+ | <code> | ||
+ | # su | ||
+ | # vi /init.odroid.board.rc | ||
+ | ..... | ||
+ | ..... | ||
+ | service vu8c_backlight /system/bin/vu8c_backlight_c2_android.sh | ||
+ | class main | ||
+ | user root | ||
+ | group root | ||
+ | oneshot | ||
+ | </code> | ||
+ | Then, reboot. | ||
+ | <code> | ||
+ | $ reboot | ||
+ | </code> | ||
+ | After reboot, you can confirm if the nodes are configured normally by checking "gpio97". | ||
+ | <code> | ||
+ | $ ls /sys/class/gpio/ | ||
+ | export | ||
+ | gpio97 | ||
+ | ...... | ||
+ | ...... | ||
+ | unexport | ||
+ | </code> | ||
+ | |||
==== 3. Backlight control with PWM. ==== | ==== 3. Backlight control with PWM. ==== | ||
- | === ODROID-C2 === | + | |
- | GPIO settings. | + | === GPIO configuration === |
- | cd /sys/class/gpio | + | == ODROID-C2 == |
- | echo 214 | sudo tee export | + | <code> |
- | echo out | sudo tee gpio214/direction | + | cd /sys/class/gpio |
- | echo 0 | sudo tee gpio214/value | + | echo 214 | sudo tee export |
- | + | echo out | sudo tee gpio214/direction | |
- | echo 234 | sudo tee unexport | + | echo 0 | sudo tee gpio214/value |
- | Upload PWM modules. | + | echo 234 | sudo tee unexport |
- | sudo modprobe pwm-meson | + | </code> |
- | sudo modprobe pwm-ctrl | + | == ODROID-C1+/C1/C0 == |
- | Enable PWM with sysfs. | + | <code> |
- | cd /sys/devices/platform/pwm-ctrl | + | cd /sys/class/gpio |
- | echo 100000 | sudo tee freq0 | + | echo 97 | sudo tee export |
- | echo 1 | sudo tee enable0 | + | echo out | sudo tee gpio97/direction |
- | Set duty cycle | + | echo 0 | sudo tee gpio97/value |
- | echo [0-1023] | sudo tee duty0 | + | echo 108 | sudo tee unexport |
+ | </code> | ||
+ | === PWM configuration === | ||
+ | |||
+ | == [Ubuntu] == | ||
+ | Load PWM driver modules. | ||
+ | <code> | ||
+ | sudo modprobe pwm-meson | ||
+ | sudo modprobe pwm-ctrl | ||
+ | </code> | ||
+ | Ignore warning message of "pwm-ctrl pwm-ctrl: cannot export to PWM-1 : modprobe pwm-meson npwm=2" \\ | ||
+ | Enable PWM via sysfs. \\ | ||
+ | <code> | ||
+ | echo 100000 | sudo tee /sys/devices/platform/pwm-ctrl/freq0 | ||
+ | echo 1 | sudo tee /sys/devices/platform/pwm-ctrl/enable0 | ||
+ | </code> | ||
+ | Set duty ratio (value can be 0 to 1023. Lower is brighter) | ||
+ | <code> | ||
+ | echo 1023 | sudo tee /sys/devices/platform/pwm-ctrl/duty0 | ||
+ | </code> | ||
+ | |||
+ | == [Android] == | ||
+ | Load PWM driver modules. | ||
+ | <code> | ||
+ | root@odroidc2:/ # insmod /system/lib/modules/pwm-meson.ko npwm="1" | ||
+ | root@odroidc2:/ # insmod /system/lib/modules/pwm-ctrl.ko | ||
+ | </code> | ||
+ | |||
+ | Enable PWM via sysfs. | ||
+ | |||
+ | <code> | ||
+ | root@odroidc2:/ # cd /sys/devices/pwm-ctrl.43/ | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # ls | ||
+ | driver | ||
+ | duty0 | ||
+ | enable0 | ||
+ | freq0 | ||
+ | modalias | ||
+ | power | ||
+ | subsystem | ||
+ | uevent | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat enable0 | ||
+ | PWM_0 : off | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # echo 1 > enable0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat enable0 | ||
+ | PWM_0 : on | ||
+ | </code> | ||
+ | Set default frequency. | ||
+ | <code> | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # echo 100000 > freq0 | ||
+ | </code> | ||
+ | Set duty ratio.\\ | ||
+ | Value can be 0 to 1023 and lower value means brighter. | ||
+ | <code> | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat duty0 | ||
+ | 0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 #echo 160 > duty0 | ||
+ | root@odroidc2:/sys/devices/pwm-ctrl.43 # cat duty0 | ||
+ | 160 | ||
+ | </code> | ||
+ | |||
+ | ==== 4. How to Set Auto Backlight On/Off by Monitor Status ==== | ||
+ | Please refer to the following wiki page if you want to run auto backlight on/off control that is triggered by monitor on/off status. \\ | ||
+ | http://odroid.com/dokuwiki/doku.php?id=en:vu8c_backlightcontrol | ||
===== Hardware assembling ===== | ===== Hardware assembling ===== |