Beaglebone-Android-based remote display technical queries

Hello,

I am interested in joining the Beagleboard community. I intend to participate in the GSoC '14 and particularly interested in Android based remote display. I have a very good experience working with Android and Hardware - Microcontrollers, FPGAs and Raspberry-Pi.

For details about my past works you may check my github page

I was looking at some of the existing projects related to Android-based remote display like libusb-android and Android Accessory Development Kit I imported the libusb-android to my development environment (eclipse) and also imported the sample project - Out of Box Demo from the 2nd link. However, I have some issues with a few imports and thus resulting in errors. All of them are related to UsbAccessory and UsbManager. I’m attaching a screenshot of my error (I’m sure it is due to lack of proper library additions).

I’m hoping someone could help me out in getting started while I continue to read more about this on the Android Accessory Development Kit page.

In-short what I’m trying is to import this existing demo app into my workspace. The link given at the end of that video is dead.

I look forward to your reply. Thanks.

Best,
Praveen Kumar,
Senior Undergraduate,
Electrical Engineering, IIT Bombay.
http://praveenkumar.co.in/

ss2.PNG

ss1.png

Hello,

I am interested in joining the Beagleboard community. I intend to participate in the GSoC '14 and particularly interested in Android based remote display. I have a very good experience working with Android and Hardware - Microcontrollers, FPGAs and Raspberry-Pi.

For details about my past works you may check my github page

I was looking at some of the existing projects related to Android-based remote display like libusb-android and Android Accessory Development Kit I imported the libusb-android to my development environment (eclipse) and also imported the sample project - Out of Box Demo from the 2nd link. However, I have some issues with a few imports and thus resulting in errors. All of them are related to UsbAccessory and UsbManager. I’m attaching a screenshot of my error (I’m sure it is due to lack of proper library additions).

Nothing stands out obvious to me. Have you tried asking on any Android forums? I initially suspected the version of the API, but as far as I can tell these modules have been around in the AOSP for a while.

That thingie is using some compatibility module between old android versions and the new API. You should try and stick with the latest Android version > 3.x something. Anyway phones/tablets with Android less than 3.x don’t think will fit in the specs of the project.

Come on #beagle-gsoc and we can discuss more there.

Hello,

I am interested in joining the Beagleboard community. I intend to
participate in the GSoC '14 and particularly interested in Android based
remote display. I have a very good experience working with Android and
Hardware - Microcontrollers, FPGAs and Raspberry-Pi.

For details about my past works you may check *my github page*
<http://github.com/praveendath92>

I was looking at some of the existing projects related to Android-based
remote display like *libusb-android
<https://github.com/SpecLad/libusb-android> *and *Android Accessory
Development Kit

in ADK mode, the Android device is running as a USB device and the BBB would be the host. There should be no need for libusb as the ADK API already takes care about the communication between the two devices.

Hello Guys,

I figured out the issue. It is related to the project build target. I should select Google APIs for 3.x + instead of Android 3.x + (To be specific Google APIs for 4.4.2 platform is what I’m using.)

The ADK tools are included in Google APIs but not in the Android .

@Vladimir, Thanks for pointing out about ADK API, that helped in narrowing down the possibilities.

Hi again,

I downloaded the required software for Beaglebone - Beaglebone Starterware (pre-built binary and tools to re-build it) and I intend do some tests with the existing binaries and some modifications just to get comfortable with it.

Now, coming to the point, I’m planing to make a remote keyboard (also mouse may be) to get started with the project. There are a lot of ways to do this (Java applet is what I’m currently thinking) so, could you tell if you already have any plans - some opensource libraries or tools, in mind to go about this ?

Also, I would like to discuss about the remote display part. There was no specific mention about the approach for a remote display. I have VNC and X-server in my mind and little inclined towards VNC.

@Jason, @Vladimir, @Vlad: willing to discuss a bit on this ?

Thanks :slight_smile:

Best,
Praveen.
http://praveenkumar.co.in/

I took a look over the code there. As I have seen that adk protocol is mainly as a standalone app that will run on the full SoC. In the end you need something that takes the framebuffer data and sends it to the Android device and it should have bi-directional communication. A nice thingie to take a look is http://android.serverbox.ch/?p=262 . I think Vladimir said no LibUSB on the Android part. Maybe he can give some more insight here. I would suggest 1st doing all the tests on a normal linux box then switch the code to the BBB won’t be major differences, maybe USB bus issues if they are not fixed in the latest kernel. Come on IRC #beagle-gsoc and you can find me there if you have any more questions and need fast response.

Hello Vlad,

I would love to discuss a few details over IRC. Can you tell at what around you will be available ? (with timezone please). Also, to confirm, your IRC nick is ‘vvu’ right ?

Thanks.

Parveen,

Can you elaborate on what you mean by “android based remote display?” Are you talking about a GCS like Andropilot or Droidplanner? Or some custom hw android device. Would that device serve as a GCS? (i.e. what is the use-case)

Kevin

Hello Vlad,

Like we discussed on IRC, I tested a very basic application for Android Accessory Kit. I think now it would be easy to build a 2-way communication upon this.

Demo: http://www.youtube.com/watch?v=guXyKfA9ySY
Reference: https://code.google.com/p/rowboat/wiki/AccessoryDevKit

I’m thinking of testing the Linux box that you mentioned. Let me know what you think.

Thanks.

Best,
Praveen.

Hello Kevin,

Excuse my late response.

–Can you elaborate on what you mean by “android based remote display?”

Sure. This essentially needs us to build a two-way communication interface between Android device and BBB where the data transmitted can be, 1. A video frame or 2. touch-events detected on Android device.

–Are you talking about a GCS like Andropilot or Droidplanner? Or some custom hw android device.

I looked up a bit about GCS and Andropilot to answer this (Great work!). This probably can’t solve that purpose. At least not in the beginning stages since the communication interface used here is USB. No we aren’t taking about any custom hardware here (AFAIK).

–Would that device serve as a GCS? (i.e. what is the use-case)

The use case is (I’m referring to the description given on the project ideas page), An Android application would provide the “remote” screen for the Beaglebone, much like an USB based external display on a PC. At the same time button presses and touchscreen events can be relayed to the Beaglebone as it if had a local keyboard connected.

So, it is more like a remote display for Beaglebone which can also act as a controller at the same time.

So far…

I was looking at a couple of ways to approach this project. I discussed with Vlada and Vladimir on IRC last night (It could be morning or noon. I’m in IST) about communication between Android and BBB over USB. There are a couple of ways: ADK (from Google and porting it to BB), The guys at TI have already done something similar - BB based ADK (this doesn’t have a OS).

I’m still looking at ADK in greater detail so, there is a possibility that some of the views I reflected are not completely right. I would be happy if someone corrects me.

Hope that answers. Thanks.

Best,
Praveen.