Ok, not really, but I'm still in a hole. It's late Friday night/early Saturday morning, with only a few hours before the competition, and I've achieved some workable results with Android.
First up, 3D orientation. While it seems that the world and APIs for accessing the 3D orientation of the phone have gotten better, tests are still not what I'd like them to be. Depending on the method, I either get lots of noise, lots of drift, or really slow response time. This just won't do. Looks like I'll be doing things manually with the IMU on the Robotics BoosterPack. I would have liked to avoid this if at all possible.
Second, GPS. I did not expect that the GPS would need Google APIs to use, but it did. Spent some time getting that figured out, which wasn't all that hard. Once I got that going, I was actually able to get decent accuracy most of the time (~4m). Now, I don't know whether this is a radius or diameter, but at this point, I'll take what I can get.
Third, game logic (aka, the interface between the Smartphone and BoosterPack). This is one of the reasons why I wanted to put myself through the headache of using a smartphone to begin with. With embedded systems, every time you make a change, you need to recompile the entire program and hope that the change you made doesn't completely bork everything. I would MUCH rather have my lower level controller take care of generating the signals needed to control my electronics, while having something at a higher level to control the objects on the actual Hovercraft. To summarize, I got this working and abstracted away the commands well enough that I'll be able to easily make changes as I need.
Fourth, the UI. This might not sound like much, but this was a huge plus for me. The ability to program in a high level language to a device that already has a well defined method for interacting with a display was a huge plus in my book. In addition to using the touchscreen as the Start/Stop button for the Hovercraft, I also used it as a debug screen to print out strings of debug text. Definitely superior to LEDs.
Despite how much progress I've made (and the fact that I proved that I can still pull all-nighters when I want), there's still a few fundamental things I need to figure out, the most important being that I STILL CAN'T GO STRAIGHT! This in and of itself is going to be a deal breaker if I can't figure it out. I'm not all that optimistic about this, since I haven't really gotten much *good* time logged with the IMU on the BoosterPack, but I'll need to make due.
At this point, I'm not optimistic about finishing the course. Something as basic as driving straight still isn't figured out, and frankly, I'd be ecstatic if I even cleared the first corner.