Sunday, November 27, 2011

new save

Saturday, November 12, 2011

Android + Raspberry Pi + Microcontroller = Intelligent gadgets with everything possible

1. What is Rapsberry Pi?

I have always wanted to talk about my favorite thing of the year: the cheap tiny linux PC - Yes, the Raspberry Pi!

It will be avaiblable soon by the end of the year 2011, let's hope.

Size: same as a credit card (for model A, even smaller, like a pen)

Price: 25 dollars

It is a full linux PC on which we can install Ubuntu, or even play Quake smoothly.

2. Why is Raspebrry Pi so interesting for DIY Phone Gadgets?

Android = Gorgeous user Interface, portable telecommunications services and the Internet of things everywhere with you

Raspberry Pi = Cheap, smart, tiny linux PC that can be powerful brains of any intelligent gadget and easily uses the USB port to add Microcontrollers like Arduino to control any motor or light or whatever sensors

Conclusion: Every project that combines Android and Raspberry Pi can make a powerful gadget.

3. How to make DIY Phone Gadgets combining Rasperry Pi and Android?

Mode 1. Android as a standalone remote control and Raspebrry Pi as a part of the gadget.

There are two possible types of communications:

a. Short range low delay communication

We can plug USB WiFi or Bluetooth dongles on Raspberry Pi, connecting it to the Arduino or whatever microcontroller, and use Android to interact with it.

Typical examples can be home automation gadgets such as an NFC lock or an intelligent airconditionner, showing user interface on the Android phone. WiFi toys with augmented reality feature can be interesting too. In UAV, you can connect Raspberry Pi to ArduPilot, and do some near real-time telemetry and video feedback via WiFi to be displayed on the Android phone, seamlessly working with Google Maps.

b. Cloud communication

We can connect the Raspberry Pi powered gadget to the Internet, and use Android to "chat" with it from everywhere in the world.

An example that I can imagine would be a surveillance robot with USB camera at home (of course its brain is the tiny Raspberry Pi). While the robot is wandering at home, we can chat with it on Google Talk using our Android phone from another end of the world. The QoS on some 3G or 4G networks can be good enough to support video chat and voip. Android will use XMPP, Web RTC or whatever promising or classical Internet protocols to interract with the gadget.

Mode 2. Android and Raspberry Pi together as a part of the gadget.

This mode takes advantage of the Android's built-in software and hardware (GPS, sensors, WiFi, bluetooth, etc) and the advantage of Raspberry Pi's good hardware extensitivity (because it is a linux PC with USB 2.0 OTG ports).

In this mode, the Android is directly connected to Raspberry Pi using a USB cable, just as it is connected to any PC. So ADB and USB tethering can be great protocols to help realizing fast bidirectional communication.

An example can be a sophisticated RC controller with many physical buttons and joysticks, and of course Android's large touch screen. You can download many different Android applications for this gadget, or add different 2.4Ghz radio modules. So there is a both a greater software and hardware flexibility compared to the classical radio controls from different manufacturers.

Mode 3. Installing Android on Raspberry Pi...And make cheap gadgets.

This seems a bit difficult for now because higher versions of Android are demanding in terms of hardware capabilties.

3. What can be done to help developers of DIY Phone Gadgets?

The idea is to buid up some good libraries in Raspberry Pi that can work with a special microcontroller such as Arduino, while supporting different types of connections with Android. The ultimate purpose is to provide a simple and single way to develop, instead of always developing on different platforms and trying to figure out how to bridge.

I really like the way how projects like IOIO and Amarino integrate the electronics programming in Android development. If Raspberry Pi can provide such a platform to handle PWM, UART etc while easily supporting WiFi dongles, and it is so cheap, why not?

4. Limitations of using Raspebrry Pi in DIY Phone Gadgets

Unfortunately, as Raspeberry Pi is so tiny and squeezes all cool things into a small board, there are not enough I/O pins for hardware developers. This is what is better considered on the more expensive BeagleBone. However, we can always connect a cheap Arduino board to it and it's all done easy and clean. Remember it is a PC and it is USB-friendly. For those of you who are curious about the I/O on Raspberry Pi, please read the official WiKi:

There are approximately 16 spare GPIOs, which on the Alpha board are brought out to 1.27mm pin-strip. Voltage levels are 3v3. The connector choice is deliberately annoying to connect to directly; there is no over-voltage protection on the board so the intention is that people interested in serious interfacing will use an external board with buffers, level conversion and analog I/O rather than soldering directly onto the main board. It brings 2x I2C (3v3), I2S and an SPI (3v3) interface out to the same connector. It supports one slave interface for I2C and one for SPI. The UART has four PINs: 3.3V, GND, TX and RX. Kernel boot messages go to this UART at 115200bps.

Good ideas are happily discussed on Raspberry Pi Forum here:
or in IOIO User Group here:

Friday, November 11, 2011

Using Android to develop healthcare applications and devices

Believe or not, most makers of DIY Gadgets are very greenpeace-compatible because many DIY projects recycle garbage to create something useful. Healthcare is certainly one of the many topics we shouldn't ignore, not only because of the ethical nature that gears to what a DIYer would love, but also because it involves many external hardware devices, great gadgets for curing illness and saving lives.

Since Android Ice Cream Sandwich (Android 4.0, API 14), we can develop Android applications for Bluetooth Health devices.

The official Android Developer site indicates that the BluetoothHealth API allows communication with devices that implement the Bluetooth Health Profile (HDP).

What is that? What can we do?

Let's see what a Bluetooth profile is: it is a wireless interface specification for Bluetooth-based communication between devices. In order to use Bluetooth technology, a device must be compatible with the subset of Bluetooth profiles necessary to use the desired services. A Bluetooth profile resides on top of the Bluetooth Core Specification and (optionally) additional protocols. While the profile may use certain features of the core specification, specific versions of profiles are rarely tied to specific versions of the core specification.

Bluetooth headset users are very familiar with the Advanced Audio Distribution Profile (A2DP). This profile defines how high quality audio (stereo or mono) can be streamed from one device to another over a Bluetooth connection. For example, music can be streamed from a mobile phone, to a wireless headset, hearing aid & cochlear implant streamer, or car audio or from a laptop/desktop to a wireless headset.

Health Device Profile (HDP) is also a traditional Bluetooth profile. It is designed to facilitate transmission and reception of Medical Device data. The APIs of this layer interact with the lower level Multi-Channel Adaptation Protocol (MCAP layer), but also perform SDP behavior to connect to remote HDP devices. It also makes use of the Device ID Profile (DIP).

Here are some documents:

Ok, too much new information for non bluetooth-experts. Let's see some examples. These videos are really old where you can find some ancient phones. but you can imagine with today's beyond-smart-phones, everything can be greatly refined.

Video links:

How to use BluetoothHealth API in Android?

It is fairly easy, just create a BluetoothHealth object. BluetoothHealth is a proxy object for controlling the Bluetooth Service via IPC. If you don't know what IPC is, check it out here.

How to connect to an external health device which is acting in the source role:

  • Use getProfileProxy(Context, BluetoothProfile.ServiceListener, int) to get the BluetoothHealth proxy object. 
  • Create an BluetoothHealth callback and call registerSinkAppConfiguration(String, int, BluetoothHealthCallback) to register an application configuration 
  • Pair with the remote device. This currently needs to be done manually from Bluetooth Settings 
  • Connect to a health device using connectChannelToSource(BluetoothDevice, BluetoothHealthAppConfiguration). Some devices will connect the channel automatically. The BluetoothHealth callback will inform the application of channel state change. 
  • Use the file descriptor provided with a connected channel to read and write data to the health channel. 
  • The received data needs to be interpreted using a health manager which implements the IEEE 11073-xxxxx specifications. 
  • When done, close the health channel by calling disconnectChannel(BluetoothDevice, BluetoothHealthAppConfiguration, int) and unregister the application configuration calling unregisterAppConfiguration(BluetoothHealthAppConfiguration) 

PS: There multiple BLE Health related profiles, the profile that Android uses is a very traditional one, which is not to be confused with similar Bluetooth Low Energy (BLE) profiles such as Health Thermometer and Hear Rate Monitor.

Now that Android is starting to provide official APIs, and that wireless integration with Healthcare has always been a great topic, it is worth getting started.

Imagine when you combine the Android BluetoothHealth API with Google Health APIs, that can create something really neat.

The Java Health Client APIs are documented at:

You can use "gdata" APIs on Android:

For authentication, there's a section in the Health API docs on choosing the appropriate mechanism:

One more thing: if you are not very interested in Bluetooth, start with something easy but really usesful, with your imagination.

Last weekend I made this application, pure software, aiming at helping people to better sleep without signal radiation and data consumption. It is called "Auto Signal Off When I Sleep", available in Android Market here.

That's way simple! You'd say. Well, it is a useful healthcare application, ain't it? Start your own healthcare applications now.

Tuesday, November 8, 2011

Endless ways to use Android for creating hardware-enriched intelligent systems

It might sound exaggerating that I use the word "endless" because most applications in Android Market don't give us such an impression. In our daily life we don't use our smartphones to interact with other machines pretty often. 

I'd say, it is just a start.

AR.Drone players may say: 

"Isn't the phone a cool remote-control, a console that is fully programmable and you can take everywhere?"

Arduino lovers or robotics/electronics system designers may say: 

"Well, more than a console. We love reading beautiful data graphs on Android's large screen. That's a perfect portable oscilloscope. Of course, we can take advantage of Android's great processor to perform complex computing. We can also use an USB cable to integrate it as an on-board "brain".

RC model makers say, "Sure we love the brain mode to have Android integrated on-board", as the DIY Drone's PhoneDrone board suggests:

"With Android you can switch between RC control and Android control or mix the two. You steer your vehicle via RC, but an Android phone does the actual control sending M2M commands to the on-board IMU. On a car, that would allow every turn to be a high-speed controlled drift, for instance.

Or, with a UAV, you might have the Android phone doing high-level image processing and object tracking, sending mission commands to an autopilot board. You might also want to use the phone's long-distance wireless instead of an Xbee for two-way telemetry.  This can either replace the original control board if you've got equivalent code running on Android, or compliment it with the Android device doing image processing or long-distance wireless communications."

OK, that's a lot of messy information when I put all the remarks here. It took me a while (actually two years) to observe, to test and to conclude what people really need Android to do in such hardware-enriched intelligent systems.

I've finally made a list of all possible outputs from Android and what we can input to Android:

1. Possible outputs from Android:

1.1 Sending high-level human-readable commands via user-interface by using the phone's built-in hardware

There is a big screen to display images and text, a speaker to perform text-to-speech or play music, a vibrator to give some notifications, etc.

This is what most applications in Android Market do. 

1.2 Sending high-level commands to tell one or multiple external devices what tasks to perform and controlling the actions of each external device


1.2.1 All the remote control applications using WiFi or bluetooth. 

High-tech toys are pretty popular now, like this Sphero Toy Ball controlled by iPhone and Android:

Of course we have some more serious use-cases: e.g.: using Android to replace your PC's keyboard and mouse.  I use RemoteDroid personally in bed: 

1.2.2 Autonomous control system where Android is integrated on-board and outputs the commands automatically like this:

And this open-source project called Droid-Copter:

1.3 Sending built-in sensor data  (GPS, gyroscope, accelerometer, digital compass , proximity sensor, etc.) from the phone to one or multiple external devices


GPS tethering: search "GPS tether" in Android Market and you will get many applications.

In DIY quadcopter, we can use Android to replace completely the MCU control board like ArduPilot. In that way we will use Android's gyroscope and compass. I am confident enough that on DIY Drones some intelligent guys can finally make a UAV with their on-board Android phone in the near future, like this unfinished project:

But let's see a prototype from the Cellbots open source project that I really like. The Arduino on the robot reads the phone's digital compass output to adjust orientations in an autonomous way, you get the idea:

2. Possible inputs to Android:

2.1 Receiving human commands via user-interface input by using the phone's built-in hardware

We have:
  • a touch screen for getting user's command,
  • a camera for "recording" the optical environment and some image processing to recognize a face,
  • a microphone to get what people say and may perform voice recognition like "speech-to-text", etc.

This is what most applications in Android Market do. 

2.2 Receiving high-level commands from external devices that can be processed and figuring out what to do next

  • Autonomous SMS chat between two phones
  • Various Internet protocols between Android and cloud. In Google IO 2011 there is more about Cloud Robotics, ROS Java and Android:

3. Receiving low-level sensor data from one or multiple external devices to get processed by the phone

This usually requires Bluetooth, WiFi, UART or serial connector to realize the sensor reading.  

Examples can be using an external GPS to replace the built-in GPS to provide accuracy, or using temperature sensors to be displayed on Android, etc.  

And today we just received this cool project from Mr. Al Linke, who proudly presents his cute funny artistic masterpiece, the Android Breathalyser:

Mr. Al Linke said that as a casual programmer, he spent just 3 nights to realize this, which shows the ease of using the IOIO board for Android

Whoever wants to replicate this project within 2 nights (if you want a challenge:)), here is the main parts list:

2. LiPo rider: the LiPo rider takes the 3.7V from the LiPo battery and converts to +5V that the IOIO needs on its Vin. Plus the LiPo rider is also a charger so the whole thing becomes a self contained rechargeable unit.

4. And of course the magical IOIO board.

All in all:

There are endless ways to use Android for creating hardware-enriched intelligent systems. We hope that before designing your new system, you take a serious glance at what Android can provide and which inputs/outputs are capable to meet your needs, in order to keep the project simple and powerful. A good selection and combination of those Android inputs and outputs can be the key to success.

Sunday, November 6, 2011

Benefits and different ways for Android devices to control digital cameras

You might wonder why bother using an Android device to control your digital camera. Well, there sure are a lot of benefits:

1. Combination of Android software/hardware with your camera's hardware capabilities to create a super machine:

The built-in camera is lousy and the digital camera doesn't have GPS nor Internet connection. By mixing the two in one system, you can use Open CV to edit the camera view, do some advanced image processing, face recognition, instantly share your pictures using social networks like Facebook and blogs...etc.

2. One set of hardware with multiple/custom user interfaces to flexibly satisfy different end-users:

If your grandma is uncomfortable with those complicated buttons and configurations on the camera itself, why not download an application called "Canon DSLR for Dummies". Your grandma will just take a tablet or a phone along with the camera, touch 3 huge buttons to take pictures and videos. And cool, she will be using the most complicated camera in her daily life! You can also make the user interface super scientific in the Android application, to fine-tune, save, share, download and upload different configurations for your camera.

3. It turns your camera into dual-screen camera. 

The best thing about having the dual screen on your digital camera is that you can take really good self portrait pictures and so no-one has to be missing from the pictures any more. You can position the camera and see as you stand how the picture will look and so this makes taking these types of pictures much easier. The dual screen also offers other advantages though and can be used to display a range of information. One of the coolest features is the way they can display a nice smiling image just before the camera takes the photo and so the subjects can tell when to smile and know when to smile for the photo. This is brilliant if you are taking photos of children as they can display something that they will like such as a clown and so they know to smile when they see this image.

4. Remote control capability. 

Your phone is perfect for working with those IP surveillance cameras. You can easily get live video streaming anywhere, and change the camera angle by touching your phone screen. 

How to control using an Android device?

1. Direct control solutions from Android to Camera:

Usually this approach is wired. Sometimes you need to have custom ROM on your Android device. For example, the DSLR Controller is an EOS utility app for use with Canon DSLR cameras:

Or this on-going project with nice features:

2. Indirect control solutions using a microcontroller (e.g.: from Android to Arduino to Camera):

As far as I know, there are many non-standard hacks that already used the Arduino board to control or trigger camera, for example:

To add Android control, you only need to add connection between Android and Arduino (using bluetooth or USB cable), which is easily done here (I made a list of solutions):

3. Using WiFi to control Cameras with WiFi or Ethernet features (e.g.: an IP surveillance camera or a camera with a smartphone OS):

This is an example using Android to control the Samsung SH100 using the "Remote Viewfinder": 

Here are some connectivity modes between Android and another WiFi device:

I am sure there are more cool solutions to connect Android to your camera. DIYers and manufacturers, let us know what your choice is!

Enable and configure Android WiFi tethering hotspot AP without root

We have just made this  "1-Click WiFi Tether No Root" application, which allows you to transform your Android phone into a wireless hotspot. 

1. It easily and quickly enables WiFi Tethering hotspot AP in 1-Click.

2. It does NOT require root access.

3. It works on MOST devices with Android 2.3 or above, with MOST operators. 

4. If Wi-Fi tethering is not yet possibile with your device because of some device or carrier restrictions, we have prepared USB or bluetooth tethering as your alternative choices.

The app has been downloaded 300,000 times. You can get it for free in Google Play Store:

Use it to get Internet connection on Windows, Mac, another phone or tablet, Ubuntu, Wii, PS3 and a lot more, everywhere. One of our users use it in the woods and dance with xBox live! What a wonderful portable party!

Perhaps the world's lightest, cleanest and fastest app for launching WiFi hotspot. We have reduced the app size to almost nothing.

If you want a secured connection with password protection, or be able to customize your hotspot AP name, please download the pro version here:

Or search "1-Click WiFi Tether Pro" in the store.

Important: If this works on your unrooted device, please don't accept system updates, otherwise this application will be banned and will not be compatible with your new system any more. The only solution then should be to root your beloved phone.

Its purpose is to avoid and replace the standard manual configuration, which requires at least 5 clicks everytime you need to start WiFi tethering, which might also ask you to enter some text to configure the WiFi hotspot.

If you use this application, you only need 1 click without entering anything.

We have tested it mainly with European carriers. It works on most devices with Android 2.2 or higher.
Whether it works is really carrier or device specific. Please do not give it a bad rating. Thanks:)

Possible reasons if it doesn't work :

1. Your operator doesn't support WiFi tethering and blocks it on purpose.
2. Your phone's 3G connection is too weak.
3. Your system ROM had been modified by the manufacturer
4. You don't have a data plan on your SIM card

Here are some user reviews:

★★★★★ ScottyB Apr 9 Galaxy Nexus
5 stars for first try! So simple, literally 1-click.

★★★★★ Patti Feb 29 Galaxy S
Great for those who don't want to root

★★★★★ Dana Jun 9 LG Ally
Love this app! I get internet access anywhere on any device.

★★★★★ Pauline Jul 1 ZTE Score
This is the only wifi hotspot i found that works, runs smoothly no problem :)

★★★★★ Jacob Apr 23 LG Ally
Best! Perfect! Really glad it's so small too!

★★★★★ David Dec 10 LG Ally
Wow! Just minutes after I downloaded this, I was able to tether my phone to my Xbox & connect to Xbox Live while in a cabin in the middle of the woods!

★★★★★ Alex Jan 22 Moto Atrix
Have been trying to find a tether app for non rooted devices. Finally found one that works great. I have a Motorola with Gingerbread 2.3.4 with Vodafone carrier in Spain. Worked perfect on first try.

★★★★★ Massimo Jan 22 Galaxy Nexus
Fantastiko. Asks only wifi permission and don't have to give away my contacts, my identity, my wife, the colour of my undies etc

★★★★★ Justin Dec 8 Moto Droid X2
Used it to link 2 phones to play games using wifi and it works great

★★★★★ Shelby Jan 25 Huawei U8800-51
Perfect and works flawlessly with my iPad!

★★★★★ Achint Jun 24 Galaxy S2
Simple! I am not the types who rate an app but this is really worth it.

★★★★★ Wayne Mar 10 Huawei Att Impulse
I've tried several ways of tether and have failed each and every time with this wonderful app I've been able to tether my laptop wii and xbox360 successfuly great job

★★★★★ prashant Mar 9 LG Pecan
works with my psp and ps3 no problem at all especially easy to use. i tried every app in the market none worked but this one worked pretty awesome love it

★★★★★ Daniel Jun 16, 2012 Moto Photon 4G
Tried this wifi app on my Non-Rooted phone, had my PS Vita Hooked up using my Sprint 4g service. Deff worth it

★★★★★ YaqaKallah Jun 13, 2012 Huawei Ascend II
This has been a lifesaver in our home. It successfully connected our Laptops, Notebook & e-Book every single time instantly! Thanx DIY!

★★★★★ joe May 22, 2012 Moto Triumph
:)This app works the best out of any tether i have tried. It connects me the fastest and gives great speed. 6 stars, lol

Free download:

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