Interfacing to a PIC Microcontroller

by Jay » Mon, 28 Sep 2009 00:18:57 GMT

Sponsored Links
 I am looking into to Interfacing an Android Phone with a PIC
Microcontoller and retrieve data via the USB port.  How would I go
about doing this?  What API calls do I need to make to retrieve data
from the PIC?  And will it be easier if I were to do this via
BlueTooth instead of USB by adding a BlueTooth module to my PIC?



Interfacing to a PIC Microcontroller

by Chris Stratton » Tue, 29 Sep 2009 00:00:05 GMT


The current  android phones are  USB devices only, they do not
function as USB  hosts.  So to do this with USB, you would need a PIC
that can be a USB host.

Bluetooth probably is more practical as some progress has been made on
getting rfcom working (see the unofficial bluetooth api community

There also is/was a debug serial port on the extusb connector that
might be an option, though may require a custom kernel?

Anyone you cut it, this is a quite advanced project - not to say that
you shouldn't tackle it, but you will end up learning a lot about the
internals of android before you get it working.



Sponsored Links

Interfacing to a PIC Microcontroller

by -chew- » Fri, 09 Oct 2009 00:00:20 GMT

 Also trying to accomplish the same objective. I've been trying to
investigate other possibilities of capturing incoming USB (maybe hook
the URB's) data in Android. I know that kernel build in Android does
not support the "Enable Loadable Module Support" kernel config and it
has no USB host or OTG capabilities; just client. If possible, I don't
want to do it in kernel mode (to avoid kernel recompilation). Maybe
just a daemon to do the capturing but still no idea how.

The idea of the project is that Android phone will be attached to a
microcontroller (USB host/OTG capable). This controller will be
sending data to Android phone via USB (I still have to write USB host
controller driver for the microcontroller, though). Android phone will
the USB client. Still investigating if this could be done in adb.
Don't want to modify adb itself. Maybe just a filter to capture USB
data traffic in adb. Been scanning the codes in adb. Seems that adb is
also doing the functionality of a typical USB driver, though running
as a daemon/service. Am I right?

@Jay: Do you have any progress so far? Could you please share also
some ideas?



Interfacing to a PIC Microcontroller

by -chew- » Fri, 09 Oct 2009 14:19:34 GMT

 adb implementation seems capable of addressing this requirement. But I
guess the porting the adb host side to the controller requires a lot
of work on the Android phone's side (adb device). I'm planning to
maybe make a separate daemon that would behave like adb (maybe on the
communication protocol used), only a simpler one. I'm not sure though
whether its coexistence with adb will result to other issues.



Other Threads

1. BlurMaskFilter not blurring entire bitmap

I can't seem to get the BlurMaskFilter to work the way I want. When I
set a BlurMaskFilter as part of my Paint object and then draw a bitmap
only the edges of the bitmap are blurred. Is there some secret way of
blurring the entire bitmap?

I noticed there's not really any sample code in the demo app or
anywhere else on the web that I can find and the java docs for this
class are sparse to say the least.



2. Error about AsyncTask

Hi all,

I am struck with an interesting problem.

I have a listview with 30 items which contains an image (from a web
server) and a text.
So, when I load pictures, I start a new thread with the AsyncTask
class to do not block the UI thread.
But, if I have more than 20 threads at the same times, I have a
RejectedExecutionException from the ThreadPoolExecutor.
To resume, I have simplify my code, for example:

for (int i = 0; i < 21; i++) {
        new DownloadImageTask().execute("Test");

private class DownloadImageTask extends  AsyncTask<String, Integer,
Bitmap> {

        public DownloadImageTask() {

        protected Bitmap doInBackground(String... urls) {
                try {
                } catch (InterruptedException e) {
                return null;

        protected void onPostExecute(Bitmap result) {

So, I think we can run 10 thread max and we have a pool of 10 thread

Can someone help me understand if there are limits on AsyncTask? If we
can modify the number of maw thread execution and the number max of
the pool? Or other idea ?



3. where to locate google i/o presentation

4. Where to find Google I/O presentations?

5. Bug in Emulator Data and Time settings?

6. Don't understand how to use SurfaceView for my game, have it working with nomrla View.

7. playing video file from