Sunday, 4 October 2015

Another unhappy experience with ARDrone SDK

I got a new MacBook Pro with Retina display, running OS X 10.10.5, and latest XCode 7.0.1. While still waiting for TestFlight Beta testing to approve my test, decided to give ARDrone SDK another go.

According to this page, they are now on version 3.6, the first run was quite interesting, as "" picked up the folder name was incorrect straight away. This is certainly a huge improvement, as last time it took me a while reading through lots of logs to work that out.

After that's fixed, tried to run "./ -t iOS", then it goes downhill unfortunately. It died 1st time after "openssl", and took 11m 4s.
Since this is a new machine, I can't remember if I have installed "brew" myself, or was it done as part of the ARSDK installation. When I checked after the 1st run using "brew list", it shows all the 6 required tools were installed: autoconf, automake, git, libtool, openssl and wget.

2nd time it died with "ARSAL" and only took 1m 22s.

The error was as shown below "no known instance method for selector", which I have absolutely no idea what does that mean.

After that I can't move forward any more, tried a few times all failed, also tried with " -t iOS --force-clean" still same result. Very frustrating...

Searched the net and found this post on parrot forum also experiencing similar issue just a few days ago. Let's hope it can be resolved pretty soon.

So my conclusion is, again, a very bad experience with ARDrone SDK... And don't forget this is just to compile the SDK framework to be included in the XCode, you still have to write your objective C/Swift code and build into an iOS app..... what a pain, why can't parrot just release a compiled framework, how hard can that be?

Tried Testflight Beta Testing for the first time

Tried Testflight Beta Testing for the the first time today, from the info provided, it looks quite simple and user friendly.

The part I am not that comfortable with, is that you need to submit for review before external testers can test it. Just submitted one, will wait and see how long it takes to be approved. From what I found on the net, looks like first submission is always quite slow and could take up to a day or 2. Let's wait and see...

I decided to drop EveryPlay due to various problems

I used to like Everyplay a lot - even though none of my published games includes that, yet... Mainly because it provides quick and simple solution to auto record your whole game session, plus lots of sharing functions.

However, after they dropped EveryplaySoundEngine (from v1.9.7 May 2015), I have lots of problems.

E.g., I always play a short audio at the splash/game load up screen. Once included Everyplay, it either get cut off when Everyplay loads, or won't even play at all.

Then inside a simple SpriteKit game I was working on, lots of sound playing using SKAction wouldn't work any more. Once disabled Everyplay, all the sound playing works...

After various failed attempts, unfortunately I have to drop Everyplay, on SpriteKit games at least..... until the issue been resolved.

Saturday, 25 April 2015

ARDroneSDK 3.1 compiled ok in Yosemite!

As I mentioned in this post, it took me lots of effort to get the ARDroneSDK3 to compile last time. So after upgraded to Xcode 6.3.1 and OS X 10.10.3 Yosemite, and had a few successful quick tutorials with WatchKit, the next thing I tried is to recompile the ARDroneSDK3 again. Downloaded latest code the github source and found it's now "v3.1.0".

Strangely, the first run (-t iOS) failed in just about 36 seconds...

Second run with only "-l curl" just to build the curl library, and it failed too, what the.....

Then tried the 3rd run, again with (-t iOS), for some unknown reason, after an extremely long 15 min 43 sec run it works. What a relief...

Why ? You asked. No freaking idea mate! And again as before, this is just to build the SDK library. You then have to import these library to the sample iOS Xcode project to compile into an iOS App.... Don't have time for that today, probably next time...

WatchKit app has much higher success rate in Xcode 6.3.1 (simulator)

I upgraded my Xcode from 6.3 to 6.3.1, tried the same Hello World app as mentioned in previous post (based on tutorial from Natasha's blog). Still running in iPhone 6 simulator, it was much much quicker and it works all the time. That was definitely a huge improvement!

Then tried this "Maps on the Apple Watch" tutorial from Kristina Tsai's blog, and can see the 6 spinning white circles (for the map) in a few seconds time after clicked on run - makes me a bit excited for a few seconds...

But it just keep spinning and spinning until I get the same "Lost connection to iPhone 6" message again. Did a clean and tried 2nd time, still spins for a long time, got bored and stopped it after about 2-3 min wait.  Luckily at the 3rd attempt, it worked, hurray!
Don't know why, but after that it constantly works in all the following attempts, must be magic!

Also run the "Apple Watch" app in the simulator again, as below, it now shows both WatchKit apps as expected.

Well, at least it's not as frustrated as previous Xcode 6.3. Have you played with WatchKit yet? Come and give it a go! Now, wonder which tutorial should I try next...

Be careful with Apple Watch (while holding sharp stuffs)

Hello World WatchKit app "occasionally" works in Simulator

Finally installed Yosemite, and upgraded to XCode 6.3, first thing I tried was to create a WatchKit app using "File => New => Project..." menu options. But I couldn't find the option for Apple Watch and was a bit confused at the first.

Later looked at the Natasha The Robot "Hello World" tutorial, then realised the option is only available after you created the new projects, then select "File => New => Target..." menu option, since at this stage it's not native app yet and can only be treated as an external display like the Apple TV.

After staring at the black box for a long time plus a few restarts, finally got the simple Hello World WatchKit app working in iPhone 6 Simulator as shown below. 

It's definitely not a smooth ride. Sometimes I get this "MobileCal quit unexpectedly" error

Sometimes I get this "Lost connection to iPhone 6" message. And most of the time it's just a black box sitting there, staring back at me...

If I click on the "WatchTest" icon manually to run it from inside the simulator, it just starts up, show a blank screen with white background and nothing happened. Later, noticed I can also run the "Apple watch" app inside the iPhone 6 simulator. 

As shown below, it shows the Hello World WatchKit app name in the "WatchKitSettings" table. This is probably done through the built-in WatchKit, which links the app with the "Apple Watch" app on the iPhone 6 simulator.

Clicked on the "WatchTest" icon and it shows the option of "Show App on Apple Watch" turned on by default, which I believe may be it should be on all the time for the output to be displayed on the watch properly?

Tried turning it off just for fun, and another line saying "GIZMO_APP_UNINSTALLING", wonder what does that mean...

Turned it on again, and the text changed to "GIZMO_APP_INSTALLING".

Not sure if everyone is having better/worse experience than me, from the comments on Natasha's blog, looks like quite a lot of them are unsuccessful - only a black box... My advice will be: (1) wait for 3-5 min, (2) try "Product => Clean" and try again (3) try shut down and restart the simulator.

I guess similar to Swift, WatchKit is probably still in it's early stage and not very matured yet based on my experience. May be should wait for next 2-3 updates?

Wait, just noticed Xcode 6.3.1 been released, will upgrade and see if this makes any difference.

Sunday, 19 April 2015

Xcode 6.3 does not support OS X 10.9.x

This is the Nth time - upgraded my phone to iOS 8.3, then tried to deploy an Unity app and painfully found that Xcode 6.2 does not support iOS 8.3. Great, another Xcode upgrade, just upgrade to Xcode 6.3 should fix the problem.....

No, it's actually much worse than that, Xcode 6.3 does not support OS X 10.9.x, was forced to migrate the whole OS to OS X 10.10 Yosemite.... What a pain...

Saturday, 21 March 2015

Xcode 6.1 does not support iOS 8.2 !

Borrowed a rolling spider drone from friend, and was trying to deploy the iOS Sample from Parrot to my iPhone 5, and couldn't get it to work. My iPhone 5 was listed under "Ineligible Devices" and info about "OS version" shown next to it.

On 3rd attempt, finally noticed this small popup saying "Xcode doesn't support iOS 8.2".....

My Xcode is version 6.1, looks like time for another update...

Friday, 6 March 2015

Oh, no! All my apps been taken off-line.....

Was working on the ARDroneSDK thing, then suddenly quite a few emails from iTune Store arrived at the same time - one for each of my published apps. They all said the same thing - the app status is now "Pending Contract"...

Yes, I didn't pay the A$150 yesterday as I don't have plan to release any new app or update for the next few months. Never realise the impact of not renewing the iOS Developer Program would mean that all my published apps will be taken off-line...

Removed one of the apps, then try to re-install from App Store, this is what I get: "The item you tried to buy is no longer available."... Oh no! Looks like I don't have much choice....

ARDroneSDK3 does not support 64 bit !?! (Fixed)

Tried to create a new project and build a new App using the ARDroneSDK3, as below, keep getting the "symbol(s) not found for architecture x86_64" error for all the ARDroneSDK3 libraries.

Checked with "lipo -info", and as expected, only supports "armv7", "armv7s" and "i386". Missing the "arm64" architecture for 64 bit.

Well, I can manually turn it off, and it will still run on 5s/6/6Plus in 32 bit. Problem is, I remember a while back Apple announced that after certain date (sometime this year?) all iOS apps must support 64 bit. Which means until Parrot releases 64 bit support for their SDK, we won't be able to release any iOS app.....What a pain...

[Update 08/Mar/2015]

According to this link from Apple, it's 1st Feb 2015. So it already started...

And according to this page from Parrot github, they are working on it (ETA 6th Mar ?), hopefully it will fixed very soon.

[Update 08/Mar/2015]
Realised there has been some updates on the ARSDKBuildUtil, so I downloaded from github again and rebuilt the iOS part.

After a few trials, found that when it prompted about what to do about "updated" local file for "Sample" and "curl", have to select "6) Reset" and confirm that you really want to reset it, then it happily rebuilt everything.

As below, in the 2nd last line, can now clearly see that there's an extra "arm64" added, which means it now supports 64 bit as well! Good job! Will put the updated SDK to the Xcode project tomorrow...

Thursday, 5 March 2015

Apple increased iOS Developer Program price by 50% !!

Was going to deploy a test Unity project to my phone, then it complained that "The selected team doesn't have an iOS Developer Program membership".... Damn, I forgot that my iOS Developer Program membership just expired a few days ago....

Logged on to iTunes Connect to renew my membership and was shocked to find the price is now A$149, what the.....

I checked my email and as shown below, from last year's receipt, it clearly shows the amount I paid on 5th March 2014 was A$99...... That's a 50% increase!! Apple, why are you so greedy and mean to your developers??!!

My new toy arrived

My new toy finally arrived today... My Parrot mini drone jumping sumo...

Similar to the SDK experience, I found the manual quite poorly written. All I got was a big piece of extremely thin paper with a few paragraphs of simple instructions, repeated many times in multiple languages.

I heard that I need to insert a memory card for it to record video, so I took out an 1GB micro SD card, search and check and turn the drone around and around, so many times, checking every corner... urh... where the hell is the memory card slot? Then did some research on the net and found that you need a "special memory card that supports micro USB interface" not the very common "micro SD card"...... Did a quick search on eBay and indeed found a few, but this feature certainly was not very well documented/explained, and personally I am not very impressed with their design choice...

The FreeFlight 3 app on iOS was easy to use and I quickly updated the firmware from 1.0.80 to 1.99.0 through the app, quite cool!

However it took me a few searches on the net to work out how to use the "Road plan" function - you have to drag each of the icons on the top to the far right hand side..... Come on Parrot, can't you just add a simple "help" function to explain that? This is another example of bad documentation...

The other thing I am not happy with FreeFlight 3 is, why I can only turn 90 degrees? What about 30, 45, or some free form left/right turn function? This makes driving the drone a lot more complicate as I have to zig-zag multiple times while travelling around the house as there's no 45 degrees turn function...

I also have difficulty making it to jump, always get some message about something blocked. Again, no documentation or explanation to help with troubleshooting...  a bit frustrating...

Ok, to be fair, other than those mentioned, otherwise it seems quite fun. And thanks to so many "to-be-further-improved" areas, this opens up more potential opportunities for everyone like me who's interested in working with the SDK...

Wednesday, 11 February 2015

ARDroneSDK 3 from Parrot - finally compiled!

Thanks to suggestion from darryljackman, I tried a different strategy.

The result is all ok for iOS as shown below.

But when I run "./ -t iOS", I always get first 3 failed and the others not built:

I then tried uninstall all tools (git, wget, automake, autoconf, libtool), and reinstall again but using brew.

This time, at least got first 2 working! The "ARSAL" one still failed...

I then check the log, and noticed it's hard coded somewhere and tried to find "ARSDKBuildUtils/Utils/m4/ARSDK.m4" (see green highlighted part), but my directory name is "ARSDKBuildUtils-master" (see red highlighted part) when downloaded from github, and I can see the "ARSDK.m4" file in there (see yellow highlighted part!

After renamed the directory name, yes! Finally got the whole thing compiled ok. That is definitely a lot of work and the SDK is really badly documented.....

[Update 25/Apr/2015]
Please see this post for info about compiling V3.1.0 version of the SDK in Xcode 6.3.1 and OS X 10.10.3 Yosemite.

[Update 04/Oct/2015]
Please see this post for info about failed experience with compiling V3.6 version of the SDK in OS X 10.10.5 Yosemite on new MacBook Pro with retina display.

Wednesday, 28 January 2015

Not much luck with ARDroneSDK3 from Parrot

Was following information from this link to install the ARDroneSDK3 for the drones released by Parrot on my MacBook, was thinking to compile and deploy the drone controlling app on iOS devices. However not much luck, tried  searching the net but also couldn't find much info.

I ran the "" and as shown below it says "iOS: OK"

But when actually run "./ -t iOS" and after a long wait, the result is as below. iOS: curl, json, ARSAL failed, rest all "NOT_BUILT".

Went through the long list of logs and found lots of errors such as:

Running <xcrun --sdk iphoneos --find llvm-gcc>

Error while running <xcrun --sdk iphoneos --find llvm-gcc>

But I thought from XCode 5 onward no longer uses llvm-gcc??!! according to this link from Apple:

Deprecation and Removal Notice:
Important: Xcode 5 does not support use of the LLVM-GCC compiler and the GDB debugger. Existing projects configured to use LLVM-GCC and GDB will be reconfigured to use the LLVM compiler and LLDB debugger when opened by Xcode 5.

I also installed all the tools mentioned in the ARDroneSDK3 document: git, wget, automake, autoconf, libtool, rpl. Even installed brew, but still not working.... quite frustrating...

[Update 11/Feb/2015]
Finally got it compiled ok, please see this post for further details.

[Update 04/Oct/2015]
Please see this post for info about failed experience with compiling V3.6 version of the SDK in OS X 10.10.5 Yosemite on new MacBook Pro with retina display.