Revision as of 13:39, 31 January 2011 by rcu (Talk | contribs)

Communicating with Arduino

From Nokia Developer Wiki
Jump to: navigation, search



Arduino popular robotics and automation platform - see [Practical Arduino], etc.

[Jurgen] demonstrates interfacing S60 phone with robot via Bluetooth. Also !!!!

We consider that interfacing a phone with Arduino brings a lot of benefit. The phone has a lot of sensors (camera, GPS), radios (3G, BT, WiFi), and Arduino is very good for controlling motoros, adding other sensors (temperature, PIR, etc).

The USB protocol

USB guest - maybe called slave!!!! USB host - requires 1!!!!Mbps transfer rate


All standard phones support USB guest (maybe called slave!!!) mode. Only phones from 2010 support USB host mode (i.e., like a PC...) - e.g., Nokia N8, C7. Therefore we want to have phones acting as USB guests and connect them to Arduino, which needs to act as a USB host.

One can buy an Arduino USB host shield from http://www.circuitsathome.com/ (I personally bought it from a local retailer that got a compatible USB host shield from Sparkfun - see http://www.sparkfun.com/products/9947. Note: Another option which I didn't try is the ...!!!!

The Arduino USB host shield library can be found at https://github.com/felis/USB_Host_Shield. The first application to try is board_test found in examples. With board_test I tested phones, USB memory sticks, USB Bluetooth sticks and a Sony DSC camera - normally all should work.

Other interesting projects are https://github.com/felis/Arduino-Bluetooth (see http://www.circuitsathome.com/mcu/bluetooth-code-for-arduino-usb-host), https://github.com/felis/Arduino_Camera_Control (see http://www.circuitsathome.com/mcu/controlling-canon-powershot-cameras-to-arduino). Info about all the projects can be found at http://www.circuitsathome.com/category/mcu/arduino/usb-shield.

Note: on the internet one can find pages describing attempts of connecting USB port of phones directly to Digital IOs of Arduino. THIS IS NOT FEASIBLE! The USB protocol is much more complex than simple serial Tx/Rx data communication. You need to transform the Arduino in a USB host which is possible ONLY if attaching a USB host shield to it (the solution described in chapter 3!!!! of [Practical_Arduino] is also not good since that transforms Arduno in a USB guest/slave and it is not possible to change the program to implement a USB host).


[Practical_Arduino] book!!!!

256 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.