BPI-M3 How to control GPIO on Android

How to use GPIO (control the LED on the board ) on M3 Android Images

Note : please use BPI-M3 android V3 image.

OS: Android V3.0 HDMI

reg-81x-cs-gpio0ldo/max_microvolts  : Blue Led
reg-81x-cs-gpio1ldo/max_microvolts  : Green Led

Step 1:Burn M3-Android images to Sdcard/Emmc

Sep 2: Please input adb commnad

 adb remount 
 adb shell
 chmod   /system/bin/su

Step 3: copy this sample to your app

Sample Code

package com.bpim3.leddemo;

import android.app.Activity;
import android.os.Environment;
import android.os.Handler;
import android.os.HandlerThread;
import android.util.Log;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class TestLED extends Thread {

    private String TAG = "Test-LED";

    TestLED() {
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            Runtime command = Runtime.getRuntime();
            Process proc;
            DataOutputStream opt;
            proc = command.exec("su");
            opt = new DataOutputStream(proc.getOutputStream());
            Log.d(TAG, "LED Testing start.");
            while (true) {
                LEDRun(opt);
            }

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private void LEDRun(DataOutputStream opt) {
        try {
            opt.writeBytes("echo 3000 > /sys/bus/platform/devices/reg-81x-cs-gpio0ldo/max_microvolts\n");
            opt.writeBytes("echo 3000 > /sys/bus/platform/devices/reg-81x-cs-gpio1ldo/max_microvolts\n");        
//          Log.d(TAG, "LED ON.");
            Thread.sleep(500);

            opt.writeBytes("echo 0 > /sys/bus/platform/devices/reg-81x-cs-gpio0ldo/max_microvolts\n");
            opt.writeBytes("echo 0 > /sys/bus/platform/devices/reg-81x-cs-gpio1ldo/max_microvolts\n");
//          Log.d(TAG, "LED OFF.");
            Thread.sleep(500);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

video demo on youtube:

https://www.youtube.com/watch?v=3oxzamthXHw

Last updated