This page has deprecated and will be archived. Please go to [[https://www.bitcraze.io/]].
====== Install instructions and user guide for the Crazyflie Android client ======
Screenshot:
{{:projects:crazyflie:android_client:androidclient.png?300|}}
===== Installation =====
==== Hardware requirements: ====
* [[projects:crazyflie:index|Crazyflie]] or [[projects:crazyflie2:index|Crazyflie 2.0]]
* [[projects:crazyradio:index|Crazyradio]] dongle (required for [[projects:crazyflie:index|Crazyflie]], optional for [[projects:crazyflie2:index|Crazyflie 2.0]])
* USB On-the-go (OTG) cable (aka. USB Host cable) with Micro USB to USB
* e.g. from [[http://www.amazon.com/s/ref=sr_nr_n_1?rh=n%3A464394%2Ck%3Ausb+cable+%22on+the+go%22&keywords=usb+cable+%22on+the+go%22&ie=UTF8&qid=1381870811&rnid=2941120011|Amazon]]
* Android device with Android version 4.0 (API Level 14) or higher
* Android device with support for Bluetooth LE and Android version 4.4+ (required when connecting to [[projects:crazyflie2:index|Crazyflie 2.0]] over Bluetooth LE)
* Optional: PS3 controller (or compatible)
==== Downloading the app ====
There is now an official version in the Google Play Store:
https://play.google.com/store/apps/details?id=se.bitcraze.crazyfliecontrol2
==== Run the Crazyflie Android app ====
- Connect the [[projects:crazyradio:index|Crazyradio]] dongle to the Android device with the USB OTG cable.
- A pop-up should ask you which app you'd like to use with the USB device.
- Select the Crazyflie app ("Crazyflie Client").
- When you run the app for the first time, you can scan for the [[projects:crazyflie:index|Crazyflie]] (must be switched on). (Preferences button -> Connection Settings -> Radio Scan)
* Or you can set channel and data rate in the preferences manually
- Once the channel and data rate is set, you can connect to it. (Connect button)
* The green LEDs on the [[projects:crazyflie:index|Crazyflie]] and the [[projects:crazyradio:index|Crazyradio]] should blink rapidly.
- Use the on-screen controls to fly the [[projects:crazyflie:index|Crazyflie]].
* **WARNING: Be careful with the on-screen controls, they are harder to use than a gamepad.**
==== Connecting to the Crazyflie 2.0 via Bluetooth LE ====
* Your Android device must support Bluetooth LE (Low Energy) 4.0 and run Android 4.4+ (eg. Nexus 4, Nexus 5, Samsung Galaxy S4)
* Make sure that you have **not** paired your phone with the Crazyflie 2.0 via your phone's general Bluetooth settings, otherwise the app will not be able to connect properly (connection will claim to be successful, but controls won't work)
* If no [[projects:crazyradio:index|Crazyradio]] USB dongle is connected, a connection over Bluetooth LE will be attempted
* **Please note:** The (old) [[projects:crazyflie:index|Crazyflie]] does NOT support Bluetooth LE, only [[projects:crazyflie2:index|Crazyflie 2.0]] has support for it
===== Connecting an external controller =====
Instead of using the on-screen controls, you can also connect an external controller like a PS3 Controller (or compatible):
=== Connect a PS3 Controller (over USB) ===
In addition to the USB OTG cable, you'll also need:
* USB Y-Cable
* USB Hub
* PS3 Controller (or compatible joystick/gamepad)
Setup:
- Connect a USB Host (OTG) adapter to your Android device
- Connect a USB Y-cable with the USB Host adapter
- Connect a wall-plug with the (red) power plug of the Y-cable (you need external power)
- Connect the upstream port of a USB hub with the socket of the Y-cable
- Plug the PS3 controller and the [[projects:crazyradio:index|Crazyradio]] into the USB hub
- The [[projects:crazyflie:index|Crazyflie]] Android client should say "Using external PS3 controller" and the [[projects:crazyradio:index|Crazyradio]]'s LEDs should light up for a second
- Press the "PS" button and move the analog sticks (the pitch/roll/thrust/yaw on-screen values should change)
Alternative setup without a USB Y-cable:
{{:projects:crazyflie:android_client:cf_android_app_with_controller.jpg?300|}} \\ © DesTinY
=== Connect a PS3 Controller (over Bluetooth) ===
* Some Android devices made by Sony, like the Xperia Z1, support the PS3 controller natively ([[http://forum.bitcraze.se/viewtopic.php?f=11&t=920|forum post]])
* Otherwise your Android device must be rooted
* You also need to install the Sixaxis Controller app (paid)
* [[https://play.google.com/store/apps/details?id=com.dancingpixelstudios.sixaxiscontroller&hl=en|Sixaxis Controller app]]
* Use the Sixaxis Controller app to pair and connect the PS3 Controller
* You might have to press the "PS" button to activate the PS3 Controller
* **Please note:** You cannot connect to the [[projects:crazyflie2:index|Crazyflie 2.0]] while you are connected to the PS3 controller via Bluetooth. (This actually works both with BLE and Crazyradio on certain Sony Xperia phones (e.g. Z2,Z3). Only with Crazyradio on Nexus 5, more testing needs to be done though)
===== Android device compatibility =====
^ Manufacturer ^ Name ^ Android version ^ Crazyradio over USB OTG ^ Bluetooth LE ^
| Asus | Nexus 7 (2012) | 4.3 | supported | ? |
| HP | Touchpad | 4.0.4 (Cyanogenmod 9) | [[http://forum.bitcraze.se/viewtopic.php?f=6&t=362|Crazyradio is not recognized]] | not supported |
| HTC | Desire | 2.1 | Unsupported Android version | not supported |
| ::: | One M7 | 4.x? | supported? | supported |
| ::: | One M8 | 4.4.2? | supported? | supported |
| LG | Nexus 4 | 4.4 | ? | supported? |
| ::: | Nexus 5 | 4.4 | supported (Crazyradio firmware version 0.51+ is required!) | supported? |
| ::: | ::: | 5.0 | supported (Crazyradio firmware version 0.51+ is required!) | supported |
| ::: | ::: | 5.1 | supported (Crazyradio firmware version 0.51+ is required!) | supported |
| Motorola | Defy | 4.4.4 (Cyanogenmod 11) | supported | not supported |
| ::: | Moto G | 4.3 | supported | supported? |
| Samsung | Galaxy Nexus | 4.2.2/4.3 | supported | ? |
| ::: | Galaxy S2 | ? | supported | ? |
| ::: | Galaxy S3 | ? | supported | ? |
| ::: | Galaxy S4 | 4.3 | supported? | not supported |
| ::: | ::: | 4.4.2 | supported | supported |
| ::: | Nexus 10 | 4.4 (Cyanogenmod) | supported | supported (a bit laggy) |
| Sony | Tablet S | ? | [[http://forum.bitcraze.se/viewtopic.php?f=6&t=362|Crazyradio is not recognized]] | ? |
| ::: | Z3 | 4.4.4 | supported | supported |
| ::: | Z2 Tablet | 5.0.2 | supported | supported |
| Verizon | Ellipsis 7 | 4.2 | ? | not supported |
===== Known issues =====
* Flight data from the Crazyflie is not displayed
* Size of on-screen controls can not be changed (Fixed in version 0.5.2)
* Larger screen size of tablets is not used efficiently
* No reliable connection quality indicator
* Repeatedly connecting and disconnecting the Crazyradio can cause problems
More can be found here: https://github.com/bitcraze/crazyflie-android-client/issues
===== Reporting bugs =====
Bugs and feature requests should be added as GitHub issues: https://github.com/bitcraze/crazyflie-android-client/issues