Monday, October 31, 2011

3 possible ways for Android to control the outside world using WiFi

In our last post about the Top 10 Android Hardware Interface Tools, we have already been concentrating too much on the low-speed high-delay Bluetooth connectivity; we have also been hacking too hard (the ROM or the Android Debug Bridge) to ask the little micro USB port to give us serial Rx/Tx and prepared some Android libraries to avoid programming the microcontrollers; we have even been dying to get some low rate serial characters or PWM signals through the poor 3.5mm audio jack on the phone.

What haven't we tried? Due to the seemingly high-price issue, we haven't tried much those WiFi modules or dongles. But finally we ask: why not! WiFi means easier configuration (UDP/TCP/WiFi direct), secured connection, NO annoying cables, high speed data transmission (video streaming possible), smoother control (less delay), and the Internet of things.

What are the possible WiFi connection modes with an Android phone? The DIY Phone Gadgets community has drawn such a conclusion so far:

1.    Classic mode: WiFi router+Android+external WiFi device:

Thanks to the router, the Android device has full Internet connection, and can control multiple external WiFi devices within this local network. The inconvenience is that the LAN is not mobile (limited by the router's WiFi range).

Sample application or ideas:

Well, we haven’t seen something using WiFi and Android but we would love to test those good-looking arduino-compatible WiFi boards and shields very soon.
DomoticHome uses Android, Arduino and an Ethernet shield to provide simple home automation protocol. Based on that, it is hyper-easy to use WiFi shields to quickly realize the same thing. To port the project using a WiFi shield, we don’t even have to change anything on the Android side. Here is how it works:

2.    Ad Hoc P2P mode: Android+WiFi device, without WiFi router, where there are two types :

a) P2P Android Client mode:

The external device is the AP. The Android device is the client.

Sample application or ideas:

The AR Drone from Parrot. The AR Drone mother board is a WiFi AP.

b) P2P Android AP mode:

The Android device is the AP and the external WiFi device is the client.

Sample application or ideas:

There is no mature application of this type now in the market. But we do see pretty much potential. Unlike the P2P type A that is limited to be connected to one AP, the Android AP can control multiple external WiFi client devices. Shown in the Open World Forum 2011 in Paris, Yan’s “Chicken Haha Telepresence Robot” is the first prototype based on P2P WiFi Android AP solution. Multiple android devices can control multiple robots and get live video feedback, without needing a router.


In P2P Ad Hoc mode, do we still have Internet access?

Nowadays, each Android device has only one WiFi module. Once configured to work in Ad Hoc P2P Android client mode, the phone will no longer have internet access unless the external AP can provide an Internet content (which is difficult). In P2P Android AP mode, more luckily, the Android device will have Internet access if it has a 3G connection.

How to enable Android WiFi tethering hotspot AP?

You don’t have to root the phone. The WiFi tethering hotspot (AP) is natively supported on Android 2.2 Froyo or above. One interesting thing that we noticed is that on all Android devices we have tested so far, the IP address of the Android AP is always That makes it so easy to develop client applications without considering the server's IP address. What's more, we can even programmatically enable tethering mode and define the AP name in the Android code. It needs some hack because one of the pains to develop P2P Adhoc applications is that Android SDK doesn't provide explicit APIs to configure the network). In our next post, we will give you a tutorial to enable and configure P2P AP mode, both manually and programmatically.

DIYers, let's make a complete list of Android Hardware Interface Tools and Solutions

These tools and solutions are among the most popular ways to interface an Android device with the physical/eletronics/mechanic world. But sure, you can help us to include more if you see something else:)

1. Bluetooth module+Arduino+Android Application from Cellbots :

2. Probably the easiest way to start your first DIY Phone Gadgets Project is to use infrared signal. You can purchase a cheap IRDroid module here:

3. IOIO for Android:

4. UDOO: the BEST solution so far to combine Android and Ardunio seemlessly.

5. Arduino + USB Host Shield from Microbridge project:

6. PIC24 board from Microbridge PIC project:

7. Google ADK (Android Open Accessory Development Kit):

8. 3.5mm Stereo Audio Cable from TRRSTAN cellphone robot:

9. Bluetooth+Arduino+Android Library from Amarino:

10. The PhoneDrone Board (Android to PPM RC interface board from DIY

11. Android ADK with a standard Arduino Uno and USB Host Shield:

12. Native USB host support (Android 3.1 or above) to control simple USB peripherals:

13. IOIO+WiFi dongle. It's a project at its very beginning. IOIO's creator Ytai has just finished adding Bluetooth to IOIO, and expecting experienced people helping him writing WiFi dongle drivers. Please contact him if you have a clue.

14. Android+Raspberry Pi+WiFi dongle. It's really amazing that this tiny pen-sized Linux PC costs only 25 US dollars and it runs Linux! The combination of Raspberry Pi's size, price and performance makes it a nice candidate of our DIY gadget brain, providing diverse interactions with Android.

15. The Electric Sheep board from Sparkfun, a development tool (similar to the Arduino Mega ADK) for creating custom Android accessories.

Friday, October 28, 2011

IOIO Over Bluetooth released officially today

Many IOIO board owners are excited about today's official release of bluetooth dongle support. As its creator Ytai told us, with a firmware upgrade on the IOIO, it now supports connecting a standard Bluetooth dongle into its USB jack and is able to establish its connection to the Android phone wirelessly. This actually makes IOIO one of the cheapest, simplest and most powerful Bluetooth-enabled prototyping platforms out there. And some more good news: your application code stays exactly the same. End-users should care about what they want to do with their hardware for their project, not about how the heck (or how the hack) to communicate with it. So you only need to write the application-specific code (the source code for the application takes less than 30 lines of Java for the IOIO-related stuff), and it seamlessly works on any kind of connection and can even switch from one to another while running. The closest one probably being Amarino. Keep in mind that IOIO is also capable of USB connectivity to Android of course (ADB or OpenAccessory), giving superior reliability latency and bandwidth compared to Bluetooth. You do the comparison.

Links to get started:

More information (and the instructional video) can be found here.
IOIO can be purchased from SparkFun (about $50) here.
The cheapest ($1.80 incl. shipping) Bluetooth dongle found and tested is here.
Questions are happily answered on the ioio-users discussion group.

Wednesday, October 26, 2011

Standard Android ADK Demo Kit Application available in Android Market

We all know that Google announced in May 2011 a brand new Android Open Accessory standard. With the arduino-friendly ADK board and some Android APIs you can add any accessory or external hardware to your Android phone or tablets (Android 2.3.4 or above).

Please visit Google's official site for more details on how to add accessories to your Android devices:

That's a lot of text! Before diving into the boring code, many people would like to have a quick demo or test with their own phones. You just need to buy an ADK board and download this standard ADK DemoKit Application from Android market.The application is 100% compatible with the standard Google ADK DemoKit and is recompiled by the DIY Phone Gadgets community for easy tests:

Download ADK DemoKit From Android Market

Thursday, October 13, 2011

About the DIY Phone Gadgets Community

If the pieces of software you download and use on your smartphone are called "apps", then why not make some "hardware apps"?

Yes, they are called DIY Phone Gadgets.

Here is the home for everything about DIY hardware gadgets integrating your Android phone or other mobile devices.

Come join us if you are one of the:

1. Hardcore Android developers
2. Microcontroller fans: Arduino, IOIO and PIC in particular
3. DIYers of electronic gadgets: RC drones, helicopters, cars, robots or other toys
4. High-tech geeks
5. Raspberry Pi, Beagle Board users
6. Wireless connection or remote control lovers: WiFi, bluetooth and infrared
7. USB experts: USB host, USB device, USB OTG, USB dongles...
8. Domotic life and home automation lovers.

If you used to be wowing at those intelligent cool gadgets such as a cellphone controlled video-streaming RC vehicle, helicopter or drone, a voice-controlled electric fan, or an intelligent washing machine, a home-made NFC coffee distributor, it is time to make your own.

We hope that you will find something useful here to build your dream gadgets and be able to share your exciting experience with others. Have fun!

Disqus for DIY Phone Gadgets