Visit GitHub Repo

Physicaloid Library

Android Library for communicating with physical-computing boards (e.g.Arduino, mbed)

Android x Arduino

Users does not need to download an Arduino sketch from a web site. Download sketch

You (developer) can include Arduino firmwares in your Android app and upload to Google Play. Upload to Google Play


  • Android Java library project
  • USB-Serial communication
  • upload a firmware to an Arduino
  • support on Android 3.1 or higher (need USB Host API feature)
  • does not require ROOT
  • support USB-Serial protocols : CDC-ACM, FTDI, Silicon Labs CP210x
  • support uploading firmware protocols : STK500, STK500V2
  • open-source(Apache License 2.0)

Code example

Upload a firmware from Android to Arduino

Physicaloid mPhysicaloid = new Physicaloid(this);
mPhysicaloid.upload(Boards.ARDUINO_UNO, "/sdcard/arduino/Blink.hex");

Write serial data to Arduino

Physicaloid mPhysicaloid = new Physicaloid(this);
if( {
    byte[] buf = "moemoe".getBytes();
    mPhysicaloid.write(buf, buf.length);

Read serial data from Arduino

Physicaloid mPhysicaloid = new Physicaloid(this);
TextView TextView1 = (TextView) findViewById(;// Android TextView

if( {
    byte[] buf = new byte[256];, buf.length);
    String str = new String(buf);


How to use

  1. File -> import and select a PhysicaloidLibrary directory.
  2. Right click your project -> Properties -> Android -> click Library's "Add" button -> select PhysicaloidLibrary

Special Thanks

This code has built in knowledge of avrdude. Thanks to all avrdude coders.


Physicaloid Library is released under the Apache License, Version 2.0.

Learners From Our Courses Work At