We're no longer updating This wiki!!

This is an old revision of the document!


Application launching with GPIO trigger on Android

You must install the Android release V2.9 or higher to launch app via GPIO.
In that case you can skip step 1 ~ 6 for your easier life LOL

Please check the revision of PCB. This page is based on the board revision 0.2.

This page explains how to launch an app via GPIO input. All of software stuff was included since Android image Ver2.9 released.

1. Enable the GPIO key driver as a built-in.

...
CONFIG_KEYBOARD_GPIO_POLLED=y
...

2. Add gpio key mapping to device tree blob. (path: arch/arm64/boot/dts/meson64_odroidc2.dts)

GPIO Pin description

commit

gpio_keys_polled {
   compatible =
    "gpio-keys-polled";
   #address-cells = <1>;
   #size-cells = <0>;
   poll-interval = <100>;
   autorepeat;
   button@1 {
    label = "GPIO Key F7";
    linux,code = <65>;
    gpios = <&gpio GPIOX_19 1>;
   };
   button@2 {
    label = "GPIO Key F8";
    linux,code = <66>;
    gpios = <&gpio GPIOX_11 1>;
   };
   button@3 {
    label = "GPIO Key F9";
    linux,code = <67>;
    gpios = <&gpio GPIOX_9 1>;
   };
   button@4 {
    label = "GPIO Key F10";
    linux,code = <68>;
    gpios = <&gpio GPIOX_7 1>;
   };
 };

3. Build the kernel source. and flash the kernel image to the board.

$ cd kernel
$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-linux-gnu-
$ make odroidc2_i2c_defconfig  #(or make odroidc2_defconfig)
$ make -j8
$ adb reboot fastboot
$ fastboot flash dtb arch/arm64/boot/dts/meson64_odroidc2.dtb
$ fastboot flash boot arch/arm64/boot/uImage
$ fastboot reboot

4. Add key event keycode to system/usr/keylayout/Vendor_0001_Product_0001.kl file. You can find keycode table from reference

commit

...
key 65 F7
key 66 F8
key 67 F9
key 68 F10
...

5. Apply the patch that intercept key event to frameworks/base & ODROID Utility App.

frameworks/base commit

ODROID Utility commit

6. Build the Android image and flash it. build method

$ cd <PATH_TO_ANDROID_ROOT>
$ cd out/target/product/odroidc2/
$ adb reboot fastboot
$ fastboot flash system rootsystem.img
$ fastboot reboot

7. Create GPIO input circuit. Click images to enlarge it.

8. Set the launch app by using ODROID Utility app.

How it works in video !

en/c2_app_launch_via_gpio_on_android.1489054701.txt.gz · Last modified: 2017/03/09 18:48 by odroid
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0