Giter Club home page Giter Club logo

crazyflie-android-client's People

Contributors

arnekaiser avatar ataffanel avatar dajinchu avatar evoggy avatar fredg02 avatar knmcguire avatar krichardsson avatar pappz avatar spordoz avatar tomfelker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crazyflie-android-client's Issues

Implement bluetooth connection list

When using BLE there should be a way to select which Crazyflie 2.0 to connect to. Currently the Client will connect the first Crazyflie it sees (basically random) which is problematic if more than 1 Crazyflie is near-by.

It is currently not possible to change the Crazyflie Bluetooth name, but we can use the last 2 bytes of the mac address as differentiation. For example:

  • Crazyflie 66C1
  • Crazyflie 0A50
  • ...

Custom Button Feature Request

This is mentioned in comments for #33 but likely best added as a separate feature request. Most development effort focuses on primary projects like crazyflie firmware and python client. Nothing wrong with that, and it is likely due to amount of interest and bitcraze team doing a good job of making development on those projects easy to get into.

Android (and I assume Iphone) apps are nice because most people always have a smartphone handy. But apps lag behind in development (higher learning curve) and do not always allow new features available in the default python client, or support experimental firmware features.

Instead of pulling development resources away from primary projects, I propose adding the following small but highly flexible features to the two smartphone apps:

  1. Custom button(s)-Addition of one or multiple custom buttons to the app (disabled by default in settings, with some sort of "meant for advanced users/firmware development" disclaimer. Having a simple toggle or momentary button on screen which corresponds to a simple dummy Parameter in the firmware could allow anyone who's able to modify the firmware to route that "custom button 1" parameter to whatever feature they wanted to use/test/develop without having to dig into Android/Iphone app development.
  2. Simple console-A simple console (maybe another page in the settings menu) could allow mobile reading of any information from the CFlie by simply adding console prints of those params/log variables. If two way communication were implemented, this could also allow changing param values in the field. This would be a fine compromise feature instead of trying to replicate all the tabs from python client in each app.

Closing statement: Adding in a few very small, simple, but highly flexible features into the app versions of the client will make it so app users still have possibility of benefiting from all the good continuing work done in CFlie firmware without requiring continual updates to the apps.

Hope this is helpful. Thanks for all the hard work

Plinky plonk USB connect sound

It would be useful to play a sound when becoming connected/disconnected from the usb transmitter and the flie itself. This is motivated by trying to use the app with a nexus 7 that has a very poor OTG connector. Often with moving around this connection is broken. Playing a two+ tone sound where the second sound is higher for connection and lower for disconection would be great. It would be have to have two pairs of sounds. I'm not sure how you would distiguish between them. May be a pregression of notes with the lowest two for USB and the higher two for connection to the flie. Alternativly two different qualities. Another alternative would be white noise for loss of comms to the flie and a modemy/teletype/fax machine sound for establishing the comms.


BLE connection on Motorola Moto G has serious delay/lag

BLE connection works fine with a Nexus 5, but has serious delay/lag with a Moto G.
Delay/lag is in the range of seconds! Therefore BLE on the Moto G is not useable for controlling the Crazyflie 2.0.
I will try to provide more info soon.

connection to the CF stays after closing the app

if the connection is established and the app will closed (e.g. just by clicking the return button) the connection to the CF stays?!. But if you start the app again after that, the connection will disconnected. Other case: If the home button is clicked or at incoming Calls the connection stays and trust is set to zero. What are you prefer to do if app will closed disconnecting or set just trust to zero?! I think it would be safer to release something or have to connect again to prevent an
unintended lift off after an interruption.


Screen rotate lock not working on Nexus 7

With Nexus 7 I turn on rotation lock in the system settings but the crazy flie app still rotates when I look down at the floor and the nexus 7 is pointing downwards.

(One fix may be to support only one oriantation and not rotate at all. However I am not sure if this is OK as there may be a prefered oriantation based on where the OTG coble is connected.)

Sorry if this has been fixed. Not sure how to identify the version I am using.


BLE connection on HTC ONE M7

I tested my bluetooth connection with my MacBook Air and it's ok. I can send files between them.

I tried HTC ONE m8, i phone, and another Android phone, they're okay. But I just can't establish BLE connection using my HTC ONE M7.

On my phone, the bluetooth manager showed it's paired and the client app also popped a message "connected", but green LED on crazyflie was not flashing.

Any suggestion?

Idea: Wear app! (for CF 2.0)

As Android Wear devices have BLE and an accelerometer, it should be possible to connect to the CF2.0 directly with the watch and control it using tilt for pitch/roll and a (single) joystick for thrust/yaw.

This would be useful for people like me who don't feel like flying with a 10'' tablet but don't have another BLE device besides the watch lying around. And it would be cool!

(I think that since the tilt control is already implemented, this would only require UI changes -- then the .apk could be adb installed to the watch, in case making it available in the "standard" way is more work.)

Joystick widget full size on a 10'' tablet

On my Lenovo Yoga Tablet 10'' (the old one, running Android 4.4.2) the joystick widget circles take up all available space, which makes flying hard, as my thumbs can't conveniently reach all around the circles.

Touch control behaves strange when yaw is negative

The problem seems to be related to yaw control only and when it is more then -100. Then the tough screen controls "flickers/jumps" and the yaw is reset to 0. If I limit the yaw to 99 the problem is gone.

Phone: Galaxy S6
Android: 6.0.1

No possible way of calibration

When using the gyroscope on android device for flying the drone there doesn't seem to be a way to calibrate the gyroscope so that you don't have to hold the device flat.

NPE in FirmwareDownloader

Error report from Google Play Developer Console (Feb 23, 9:19 PM)

User Message:
"Did not work..."

Application version:
v0.6.1

Stack trace:

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=se.bitcraze.crazyfliecontrol2 (has extras) } in se.bitcraze.crazyfliecontrol.bootloader.FirmwareDownloader$1@41ffb960
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:808)
    at android.os.Handler.handleCallback(Handler.java:808)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5299)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
    at se.bitcraze.crazyfliecontrol.bootloader.FirmwareDownloader$1.onReceive(FirmwareDownloader.java:322)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:798)
    ... 9 more

Radio dongle attaching/detaching problem

if the app is started by attaching the CR (Crazy Radio dongle) and no connection was established then it is not possible to attach the CR anymore (after detaching). Detaching will nevertheless detected and reported. Hotfix by restarting the app.

I have a Samsung S3 (GT-I9300) with Android 4.1.2.
I checked it twice and can reproduce the issue easily.

  1. App is not started and not in background.
  2. Physically attach the Crazyradio (Red led lit short)
  3. "Crazyflie Control" starts (because was selected as default in a start before)
  4. App shows "Crazyflie attached" message
  5. I NOT click on "Connect" or something else
  6. Physically detach the Crazyradio
  7. App shows "Crazyflie detached" message
  8. Then i physically attach the Crazyradio again
  9. NO "Crazyflie attached" message! Just the Android USB Device message and the Red LED lit short.
  10. If i click connect it show a "Crazyradio not attached" message and no red or green LED light!
  11. With "Return" and restarting the app the Crazyradio works as aspected.

Crazyflie AltHold/Hover button

Hi all,

that feature would be great to have on the Android GUI. Would make flying with the soft-joysticks much more fun!

cheers, Marius

Trim cancelled by deadzone

Line 97 of AbstractController has getDeadzone multiplying the entire return of getRoll.

So if user input is in the deadzone, everything, including trim gets nullified by the zero returned by getDeadzone.

Shouldn't trim be applied at all times?

Trim is supposed to balance the crazyflie if it drifts right?

Debugging using eclipse

I was trying to launch a debug session using eclipse connected via WIFI and could not launch the app. This is due to the Android Manifest file having multiple defines in the intent-filter i.e.

<intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        </intent-filter>

if this is changed to:


        </intent-filter>

        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
         </intent-filter>

After the fix, eclipse can now launch the app and debug.


Radio scan does not work reliably and blocks the UI thread

After initiating the radio scan a few times in a row, the red LED on the Crazyradio does not light up anymore and the USB connection seems to be lost. Re-connecting the Crazyradio and restarting the app seems to be a workaround.

Logcat shows that the UI thread is blocked when the radio scan is executed. Therefore the radio scan should run in a separate thread.


Deadzone resolution

1.0 means no input is possible! Is this really needed?
Maybe a better resolution is to use 50% of the possible value as dead zone. For example 1.0 deadzone means start at 50% of the possible max value. That means a higher resolution in the Joystick beginning area and actually deadzone value higher than 0.5 is almost not flyable.


NPE in IncomingPacketHandler

Error report from Google Play Developer Console (Feb 18, 10:42 AM)

User Message:
"connected, try to see the settings"

Application version:
v0.6.1

Stack trace:

java.lang.NullPointerException: Attempt to invoke virtual method 'se.bitcraze.crazyflielib.crtp.CrtpPacket se.bitcraze.crazyflielib.crtp.CrtpDriver.receivePacket(int)' on a null object reference
    at se.bitcraze.crazyflielib.crazyflie.Crazyflie$IncomingPacketHandler.run(Crazyflie.java:379)
    at java.lang.Thread.run(Thread.java:818)

Axis configuration

Currently the external gamepad axis are hardcoded. Some gamepad, like the Ouya gamepad used on regular android tablets, does not have the axis mapped the same way as a ps3/xbox controller (the right joystick is on RX and RY).

There should be a way to configure the axis of left and right joystick in the settings.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.