Like I said in the last post, my app is in the Google PlayStore, and can be downloaded by anyone. There were some things I found out the hard way, but overall, it was a pleasant experience. Yes, I am working on the engine monitor, I just needed to get this wrapped up. I am guessing there will be updates when people start giving me feedback, and there are a couple items I want to update for the next revision.
To get an app in the store, you need to sign up as a developer. This is a simple task, agreeing to Google's terms, and paying $25. The $25 is a one time fee, and allows you to put in as many apps as you want.
The Playstore is trying to be fair to everyone, without putting them at risk. They don't want apps that are all spam, or extortion type apps, where you can't use the app without paying something extra. They kind of control that by mostly forcing you to use their services to pay for the in app purchases, if there are any, or to clearly label your app as pay to use.
If you want to distribute your app outside the US, you need to certify that the app doesn't break any ITAR rules. They ask you to check a box, and aren't really into looking for specific certifications. That check box probably keeps Google an arms reach out of any ITAR enforcement action.
The one thing that took the most time, Google was a little more picky about my package name. This, being my first app, I went with the defaults in Android Developer Studio. When I created the app, it asked for the package name, and filled the box in with "com.example". I didn't make any plans at the time, so I left that alone. When I uploaded the app to the playstore the first time it rejected it, saying that "com.example is reserved for special items".
You can look, according to IANA.org, example.com is available to be used for illistrative purposes:
As described in RFC 2606,
a number of domains such as example.com and example.org
for documentation purposes. These domains may be used as illustrative
examples in documents without prior coordination with us. They are
not available for registration or transfer.
Wow, who knew. For the engine monitor code, I changed that already to com.engmon, at least for now.
All the icons I had already done. If you look at the icons on a phone, they are a little better looking than in the play store. Maybe if I was making money from this app, I would hire a graphic designer to come up with something clever, but these kind of illustrate the walking outside the app requires.
I did need a large icon to get it in the play store. I didn't start with the big one(512x512 pixels) while building the app. I started with the second big one (144x144pixels), and built proper layers using gimp to build the icon. I scaled the 144 pixel image down to make the smaller icons, and that worked well, as I expected. I tried a couple trees in front of the Android, but it didn't look well. For the big image, gimp did an OK job scaling up the 144 pixel image.
The other thing the app needed, was to be built without any debugging turned on. I get it, many of the debugging facilities are entered using various networking ports. Once someone has access to an app, in a nefarious way, they can do bad stuff, due to the fact that there is really only one user for all the apps on the smart phones out there. All apps have the same permissions for everything.
Google has some funny algorithm that determines where the app shows up when you search. When I type in Acreage calculator, it find an app called Acreage Calculator (the play store allows apps to have the same name, I am guessing trademark registration would trump any conflicts, but I am not gonna worry about it). The other app converts square meters entered in a text field to acres, as a converter would do. My app didn't show up this morning. It may when it gets enough downloads, but how do you get downloads if it isn't visible?
You should down load my app and give it a shot. Please give me feedback in the Playstore, or here. Your ideas may be incorporated in the next release of the app.
Thanks for listening.
Process of building an Airplane Engine monitor. It will connect a Arduino to an Android phone or Tablet.
Friday, April 4, 2014
Sunday, March 30, 2014
Getting Back at It
I've finished my other Android app. It is non- aviation related, and it doesn't use an Arduino, but it proves my skill as an Android developer (or not). It may be in the Playstore real soon now. The weather is warming, and I can get at the plane in the hangar, so I am going at least make an effort to move forward with the engine monitor project.
I've been playing with the Android PFD that I really like. The A-EFIS is really nice, and I can see this as the primary display I use going forward. Long term, before I would fly any tablet in IFR conditions, I would like a AHRS system bolted to the aircraft, and connected to the tablet. This app is good enough for daily use otherwise using only the tablet gyros. I tested this while flying on a commercial flight (I wouldn't want to test and document while flying solo in GA).
It is time to replace the engine instruments with an Android app. I have the skills, and proved that I can get the data, I just need to put it all together. So I will document my design with this post, and move on to actually finishing it, showing my test results. I look forward to your feedback, and want to know your thoughts.
I am trying to use best practices, so I will try to use modern technology, and communications. It will still use the Arduino, since that platform is reliable and well documented.
Using the 3 layer design Model, View Controller (MVC) pattern, I will use the Arduino output as the Model, the Android display as the View and the logic to monitor and log the data as the controller. There may be redundant logging on both the Arduino and the Android. The Arduino will be attached to the aircraft, and have the aircraft data. The Android will be removable, and allow interpretation and modeling at remote locations.
The Arduino will read all the raw values from the sensors, and convert those values to actual real numbers. The actual message will contain units, so the numbers have a context.
The output from the Arduino will be in JSON format, allowing different platforms to use the information. Someday someone may want to replace the Android display with another platform, and that will be possible using this design. The message will be sent from the Arduino about once a second, but can come more often. A sample message will be similar to:
{"engineParams":
["CHTS":[
"Cyl1": "340F", "Cyl2": "341F", "Cyl3":"348F", "Cyl4":"333F" ],
"EGTS":[
"Cyl1":"1530F", "Cyl2":"1520F", "Cyl3":"1550F", "Cyl4":"1545F" ],
"RPM": 2330,
"OilPress": "50lb",
"OilTemp": "220F",
"FuelPress":"25lb",
"Volts" : 14.2,
"Amps" : +12.3,
"ManifoldPress", "32.29InHg",
"Timestamp", "2142325533.5sec"]}
The Android will use this information to display graphically the current engine situation. The Android will be able to interpret these values and display the data in other units, set monitoring points with alarms, and other alerting mechanisms. Logging will try to be as similar to the Insight engine monitoring data formats (CSV), allowing existing analysis tools to utilize this data, and make common sense results.
Some of the alerts will include:
Using the JSON input format can allow debugging and testing on a desktop computer. Creating or using recorded data can allow playback to the Android device. The Android emulator included with the ADK is very good, and allows devices of all types to be used, to insure the display will work. I can start working on the Android code without having a functioning Arduino device working.
I welcome your input
I've been playing with the Android PFD that I really like. The A-EFIS is really nice, and I can see this as the primary display I use going forward. Long term, before I would fly any tablet in IFR conditions, I would like a AHRS system bolted to the aircraft, and connected to the tablet. This app is good enough for daily use otherwise using only the tablet gyros. I tested this while flying on a commercial flight (I wouldn't want to test and document while flying solo in GA).
It is time to replace the engine instruments with an Android app. I have the skills, and proved that I can get the data, I just need to put it all together. So I will document my design with this post, and move on to actually finishing it, showing my test results. I look forward to your feedback, and want to know your thoughts.
I am trying to use best practices, so I will try to use modern technology, and communications. It will still use the Arduino, since that platform is reliable and well documented.
Using the 3 layer design Model, View Controller (MVC) pattern, I will use the Arduino output as the Model, the Android display as the View and the logic to monitor and log the data as the controller. There may be redundant logging on both the Arduino and the Android. The Arduino will be attached to the aircraft, and have the aircraft data. The Android will be removable, and allow interpretation and modeling at remote locations.
The Arduino will read all the raw values from the sensors, and convert those values to actual real numbers. The actual message will contain units, so the numbers have a context.
The output from the Arduino will be in JSON format, allowing different platforms to use the information. Someday someone may want to replace the Android display with another platform, and that will be possible using this design. The message will be sent from the Arduino about once a second, but can come more often. A sample message will be similar to:
{"engineParams":
["CHTS":[
"Cyl1": "340F", "Cyl2": "341F", "Cyl3":"348F", "Cyl4":"333F" ],
"EGTS":[
"Cyl1":"1530F", "Cyl2":"1520F", "Cyl3":"1550F", "Cyl4":"1545F" ],
"RPM": 2330,
"OilPress": "50lb",
"OilTemp": "220F",
"FuelPress":"25lb",
"Volts" : 14.2,
"Amps" : +12.3,
"ManifoldPress", "32.29InHg",
"Timestamp", "2142325533.5sec"]}
The Android will use this information to display graphically the current engine situation. The Android will be able to interpret these values and display the data in other units, set monitoring points with alarms, and other alerting mechanisms. Logging will try to be as similar to the Insight engine monitoring data formats (CSV), allowing existing analysis tools to utilize this data, and make common sense results.
Some of the alerts will include:
- Low oil pressure
- High CHT
- High oil temprature
- Low voltage
- Low charge (amps)
Using the JSON input format can allow debugging and testing on a desktop computer. Creating or using recorded data can allow playback to the Android device. The Android emulator included with the ADK is very good, and allows devices of all types to be used, to insure the display will work. I can start working on the Android code without having a functioning Arduino device working.
I welcome your input
Labels:
ADK,
Amps,
Android,
arduino,
CHT,
CSV,
EGT,
Engine Monitor,
GEM,
Insight Engine Monitor,
JSON,
Oil Pressure,
Oil Temprature,
RPM,
Volts
Saturday, March 8, 2014
Android ADS/B in for $20 available NOW!
It is finally available! I predicted it about a year ago, when I first ordered my tablet, and thought about writing it myself, and asked for help. I am glad there are more ambitious people out there, because they get it done. My Android development skills aren't there yet either. I am working on an app that will use maps, but haven't got to that part yet.
The app is $1.50 in the PlayStore, called ADS-B on USB SDR RTL (beta) it shows up in apps called "USB ADSB..." on the tablet. The USB dongles are really only about $15-20 US, plus shipping. You will probably need an OTG cable or adapter for a phone or tablet. (The OTG cable allows attaching USB client devices like mice and keyboards to a phone or tablet). Really the cost may approach $50 plus a tablet.
The app shows promise, and really looks nice. It starts the map centered on Lakeland Florida, so it needs to be adjusted to where you are. The maps can be sectional, WAC, IFR, and street maps, and can be selected from a menu. The pinch to zoom works, but the menu allows zooming, along with buttons in the upper corners.
When the app comes up, it displays all the available devices, selecting the available device starts the app. The top part shows the map, the bottom part shows a list of the aircraft that the software has heard recently (can be adjusted in startup menu, defaults to 60 seconds).
It appears to be listening for 1090MHz Mode S with Extended Squitter (ES) transponders. 1090ES is the world wide standard. GA in the US will probably focus mostly on the 978MHz UAT devices, since there is more bandwidth available to those devices. See UAT or 1090ES in my other blog).
The developer says it will have weather eventually. Weather alone would make this app worth while, but the aircraft positions is a huge benefit. "Mounting" a tablet in an aircraft isn't hard, and there are a few adapters to make it easy.
This doesn't completely compete with the Garmin GDL-39, and their Pilot app, but it will give you the chance to see what is possible, and the benefits to having ADS/B service.
I had trouble using it. The SDR dongle is very sensitive to the antenna chosen. I found a link to a site were there are extensive design and testing of antennas especially for ADS-B reception:
http://forum.planefinder.net/threads/ads-b-diy-antenna.23
I chose the simple 1/4 wave dipole and was able to get some reception. I didn't want a large antenna, nor an amplified one. I want to be able to use this portable in rental aircraft and such. It did seem if I got the SDR farther away from the tablet, it worked better. I used a USB extender to do that.
The battery life doesn't seem to be negatively affected running the SDR dongle, the screen still eats most of the battery. Someone suggested a split OTG cable, so it could be connected to power while running the SDR dongle. That is a great idea.
I can't say this will save a life, or replace TCAS for alerting, but it could help someone get the big picture when ATC calls out traffic.
If everyone only does ADS-B in, it looses some of the benefit. The future will require us to use ADS-B out as well, then everyone should be on the same level.
The app is $1.50 in the PlayStore, called ADS-B on USB SDR RTL (beta) it shows up in apps called "USB ADSB..." on the tablet. The USB dongles are really only about $15-20 US, plus shipping. You will probably need an OTG cable or adapter for a phone or tablet. (The OTG cable allows attaching USB client devices like mice and keyboards to a phone or tablet). Really the cost may approach $50 plus a tablet.
The app shows promise, and really looks nice. It starts the map centered on Lakeland Florida, so it needs to be adjusted to where you are. The maps can be sectional, WAC, IFR, and street maps, and can be selected from a menu. The pinch to zoom works, but the menu allows zooming, along with buttons in the upper corners.
When the app comes up, it displays all the available devices, selecting the available device starts the app. The top part shows the map, the bottom part shows a list of the aircraft that the software has heard recently (can be adjusted in startup menu, defaults to 60 seconds).
It appears to be listening for 1090MHz Mode S with Extended Squitter (ES) transponders. 1090ES is the world wide standard. GA in the US will probably focus mostly on the 978MHz UAT devices, since there is more bandwidth available to those devices. See UAT or 1090ES in my other blog).
The developer says it will have weather eventually. Weather alone would make this app worth while, but the aircraft positions is a huge benefit. "Mounting" a tablet in an aircraft isn't hard, and there are a few adapters to make it easy.
This doesn't completely compete with the Garmin GDL-39, and their Pilot app, but it will give you the chance to see what is possible, and the benefits to having ADS/B service.
I had trouble using it. The SDR dongle is very sensitive to the antenna chosen. I found a link to a site were there are extensive design and testing of antennas especially for ADS-B reception:
http://forum.planefinder.net/threads/ads-b-diy-antenna.23
I chose the simple 1/4 wave dipole and was able to get some reception. I didn't want a large antenna, nor an amplified one. I want to be able to use this portable in rental aircraft and such. It did seem if I got the SDR farther away from the tablet, it worked better. I used a USB extender to do that.
The battery life doesn't seem to be negatively affected running the SDR dongle, the screen still eats most of the battery. Someone suggested a split OTG cable, so it could be connected to power while running the SDR dongle. That is a great idea.
I can't say this will save a life, or replace TCAS for alerting, but it could help someone get the big picture when ATC calls out traffic.
If everyone only does ADS-B in, it looses some of the benefit. The future will require us to use ADS-B out as well, then everyone should be on the same level.
Tuesday, March 4, 2014
A Quick Look at A Couple Android Gyro Apps
Tonight I was flying from KDAL to KMSP on Southwest. Now with the technology on all the time policy, I've been getting more bold. I actually try to use aviation apps on the plane while riding in the back. I've tried GPS based apps, and the metal tubes that are commercial aviation make using the built in phone and tablet GPS unreliable at best, and mostly unusable. I have maybe gotten 4 satellites at once on my tablet.
Gyro apps should be usable on aircraft, no matter where you are sitting. I tried a couple at random while coming home. I didn't start using them until we penetrated the clouds just north of KRST. We were supposed to be flying the KASPR4 arrival, but when we got in close, the controllers gave us all routing.
The two apps I used were Sensors and Gyro. Both apps portray an aircraft Attitude Indicator (AI), where gyro also displays a Directional Gyro (DG).They both rely on the sensors in the tablet or phone. I tested both on my Samsung Galaxy Note 10.1 (classic?).
I've written before about how the gyros work on an Android device. The gyros in the device are rate sensors, and to display current attitude information, they need to be integrated over time. Both apps seem to have done this well, with limits.
Sensors, (I can't find it in the play store any more, I did crash it this evening, so I was able to send the author a note about me wanting to get in touch with him/her) is a really basic AI. It is probably designed for a phone, but it seems really reliable. The gaps around the angle display seem to be quite revealing on the tablet, but probably look good on a phone. The calibrate button is needed, and should be set while the aircraft is on the ground.
Where the Sensors app has trouble, is the coarseness of the changes. I had to integrate its reading to determine our attitude. I don't want to be too harsh on this app, it does well. It is a little jerky, and tended to not lock in to a particular pitch or bank angle. The bottom numbers are always integer values, so I wonder if there is some rounding going on, and that makes it less smooth. Overall, I really like the work that went into this app.
The other app, Gyro, or Inflight Instruments looks really good. It has a ton of settings. I've said before the Galaxy Note 10.1 sometimes doesn't work with some apps, because of the gyros, but this app lets you adjust around it with different Gyro configurations (in the settings menu). Once I found that my tablet seems to have the gyroscope orientation "C" with the tablet in portrait mode, and set the calibration, I could see it work.
The AI wasn't as sensitive as I might like. During the big right turn in the picture at the top, it seemed like we were doing a 15 degree bank, and the AI only showed about half a line of turn. The DG seemed right on, or very close. I got myself turned around, and thought the DG was pointing the wrong way, but let it go, it turns out it was pretty much right on.
Summary
Right now, I wouldn't use either of these for instrument replacements in actual IFR conditions. They show promise. I probably won't write my own gyro instrument app.
I did want to try A-EFIS, but thought it needed GPS (it does for altitude). That appears to be a reliable panel replacement. Next time, I will try it.
Labels:
AI,
Android,
Apps,
Attitude Indicator,
DG,
Directional Gyro,
flightaware,
gps,
gyro,
HI
Sunday, February 23, 2014
Watch Operating Systems
This is kinda becoming my Android discussion page, so I'll talk a little about a change that Samsung has made, and why it doesn't matter at all.
Samsung has a couple watches on the market, the Samsung Galaxy Gear and the Gear 2, and the Gear 2 Neo. The Gear 2 watches were announced yesterday, and have some people in a tizzy.
The original Gear watch that Samsung announced over the summer was not well received by most consumers. Partially it was some of the limitations it had initially (I only worked with the Note 3 when it first came out), and partially it was the price (retail was almost $400). The battery only lasted about a day (25hours), and the camera was fairly big in the band.
The one thing that Samsung tried was putting the full Android OS on the watch. I commend them for trying to put a full mobile OS on a watch. There are several facilities in the Android OS that probably weren't needed for a watch. As an example, the watch didn't have any phone hardware, so that facility could be turned off, but probably there are things that cause the OS to at least check for the hardware.
The new gear 2 watches no longer run Android. The new watches run Samsung's other OS, Tizen. Some folks thought Samsung was using Tizen as a threat to Google. The worry was that Samsung was going to switch all their phones and tablets from Android to Tizen, freezing Google out of that section of the market. Maybe Samsung folks were making that threat to Google, but recently Samsung and Google have put together a more cooperative agreement.
Tizen on the watch will make some people wring their hands. They will say, it is the end of Android, and that Samsung has started the switch. Maybe Samsung will try some Tizen phones, but I don't see them running all their mobile devices on Tizen. The Android/Google eco-system has too many facilities that Samsung would have to duplicate and get 100% right. Some people think Android is inferior to iOS, can you imagine the reaction if the Tizen eco-system isn't as good as iOS on day 1.
At the heart, or at least the lowest level, both Tizen and Android run Linux OS. There are many variants of Linux, and over the last couple (ten?) years the Linux OS has been optimized for lower power. Anything put on top of Linux will use more resources, and more power (IE Battery). Faster processors are generally more power hungry as well.
A watch should last a while before needing a new battery or recharge. How inconvenient to be somewhere without a charger, but needing a watch to work.
A watch doesn't need as much operating system as a smart phone. I played with the TI Chronos watch. That watch didn't have bluetooth or WiFi, but it still had wireless capability, so it could be programmed and get alerts from a computer, using the enclosed USB FOB. It has fitness functions, and tells time, and each segment in the face is programmable. The cool thing is, the battery lasts about a year!
Last week I saw on Hack A Day a watch someone built with an Arduino (ok now this post matches the charter of the blog :-). This watch has bluetooth, and can talk to an Android device. There are no claims on the battery life, but it has a rechargable lithium battery, and would guess, it might last several days at least. Put something like this in a 3D printed case, and some other cleanups, and it could be something I would be proud to wear.
No on seems to care what OS any of the other smart watches run. I've heard Pebble runs the FreeRTOS, but I don't know or care. Sony smart watch, according to Wikipedia runs the Micrium uC/OS-II. Meta watch also seems to run the FreeRTOS according to Wikipedia.
None of the other smart watches run Android. Samsung tried it, and it didn't work. They are smart to try something else.
Samsung has a couple watches on the market, the Samsung Galaxy Gear and the Gear 2, and the Gear 2 Neo. The Gear 2 watches were announced yesterday, and have some people in a tizzy.
The original Gear watch that Samsung announced over the summer was not well received by most consumers. Partially it was some of the limitations it had initially (I only worked with the Note 3 when it first came out), and partially it was the price (retail was almost $400). The battery only lasted about a day (25hours), and the camera was fairly big in the band.
The one thing that Samsung tried was putting the full Android OS on the watch. I commend them for trying to put a full mobile OS on a watch. There are several facilities in the Android OS that probably weren't needed for a watch. As an example, the watch didn't have any phone hardware, so that facility could be turned off, but probably there are things that cause the OS to at least check for the hardware.
The new gear 2 watches no longer run Android. The new watches run Samsung's other OS, Tizen. Some folks thought Samsung was using Tizen as a threat to Google. The worry was that Samsung was going to switch all their phones and tablets from Android to Tizen, freezing Google out of that section of the market. Maybe Samsung folks were making that threat to Google, but recently Samsung and Google have put together a more cooperative agreement.
Tizen on the watch will make some people wring their hands. They will say, it is the end of Android, and that Samsung has started the switch. Maybe Samsung will try some Tizen phones, but I don't see them running all their mobile devices on Tizen. The Android/Google eco-system has too many facilities that Samsung would have to duplicate and get 100% right. Some people think Android is inferior to iOS, can you imagine the reaction if the Tizen eco-system isn't as good as iOS on day 1.
At the heart, or at least the lowest level, both Tizen and Android run Linux OS. There are many variants of Linux, and over the last couple (ten?) years the Linux OS has been optimized for lower power. Anything put on top of Linux will use more resources, and more power (IE Battery). Faster processors are generally more power hungry as well.
A watch should last a while before needing a new battery or recharge. How inconvenient to be somewhere without a charger, but needing a watch to work.
A watch doesn't need as much operating system as a smart phone. I played with the TI Chronos watch. That watch didn't have bluetooth or WiFi, but it still had wireless capability, so it could be programmed and get alerts from a computer, using the enclosed USB FOB. It has fitness functions, and tells time, and each segment in the face is programmable. The cool thing is, the battery lasts about a year!
Last week I saw on Hack A Day a watch someone built with an Arduino (ok now this post matches the charter of the blog :-). This watch has bluetooth, and can talk to an Android device. There are no claims on the battery life, but it has a rechargable lithium battery, and would guess, it might last several days at least. Put something like this in a 3D printed case, and some other cleanups, and it could be something I would be proud to wear.
No on seems to care what OS any of the other smart watches run. I've heard Pebble runs the FreeRTOS, but I don't know or care. Sony smart watch, according to Wikipedia runs the Micrium uC/OS-II. Meta watch also seems to run the FreeRTOS according to Wikipedia.
None of the other smart watches run Android. Samsung tried it, and it didn't work. They are smart to try something else.
Labels:
Android,
Galaxy,
Gear,
Gear 2 Neo,
Meta Watch,
Operating System,
OS,
Pebble,
Samsung,
Sony,
TI,
Tizen,
Watch,
Wearable
Sunday, February 9, 2014
Developing For Android
I have been doing a little developing for Android. I've mostly been trying to familiarize myself with Android Developer Studio (ADS). I used to use eclipse, and it worked great. ADS is based on intelliJ, and I kind of like it, I see where it is heading, and can sort of see that it has the potential of making developing something almost anyone could do.
I've also been frustrated with it. It seems every other time I use it, it says there is an upgrade ready. I've upgraded a couple times, and lost hours trying to get it working again. Sure if you are working 8 hours a day on this, you probably know right where to look, and besides what is a couple hours. If you are doing this weekends and nights, and you loose a couple hours, that can quickly translate into days.
The main failing is the build process. Yea, ADS uses Maven, and that doesn't change. What typically breaks though is the Gradle part. Plenty of note on how to fix gradle every time it breaks on StackOverflow and other places. I've just decided I don't need the updates, and I won't have to loose any time. What I got seems to work for me, and I see no reason to upgrade.
My app is using the android devices gyro's. I am not trying to build a glass panel yet, but just trying to understand the sensors and their limitations. I have the accelerometers working, and you can see graphically and textually how the sensors work. The gyros, I am trying something similar. The gyros are rate gyros, meaning they return the degrees per second the unit is changing. A turn coordinator is a rate gyro, where a standard rate turn in a Cessna 172 is 3 degrees per second.
To make something like an attitude indicator, the rate gyro must be integrated over time. Once the device starts a 3degree/second bank change, as long as the gyro is reporting 3 degrees per second, it will keep adding these values. The first second will be 3 degrees, the second 6 degrees and so on. The math can get a little complicated, but there are plenty of examples on line.
So right in the middle of that, the emulator was working great, but the phone kinda quit working. It would paint the screen once, and the crash. The dreaded "Unfortunately, ExampleMain has stopped". message. (No I haven't created a cool name for this app yet). The emulator doesn't have real sensors, so it is hard to figure out why this is crashing.
I tried to connect the phone to the computer using USB, and debugging that way. Wow, that took more than I thought it would take. Samsung's web site was no help, try searching their site for "windows 7 usb android drivers", and you'll get taken to the laptop support page where you can download USB drivers for samsung laptops.
After many hours, I finally found this site: http://developer.samsung.com/android/tools-sdks/Samsung-Andorid-USB-Driver-for-Windows Just by the name you can tell it is what I am looking for. This is supposed to be the drivers that will allow debugging adb and the phone! Yes, finally the phone shows up in the list, but it is listed "Off-Line". If I click on it, the debug window just says "Waiting for device.". Finally someone said stop ADS and restart it. That was the magic.
Now I can debug on the phone. I am getting the same results, "Unfortunately, ExampleMain has stopped". message, and even the debugger isn't pointing me in a direction. Dang it, but at least I can set breakpoints in places I think there might be trouble. The two thread main loops don't seem to be the target yet. Next I'll try some of the new code I added.
I've also been frustrated with it. It seems every other time I use it, it says there is an upgrade ready. I've upgraded a couple times, and lost hours trying to get it working again. Sure if you are working 8 hours a day on this, you probably know right where to look, and besides what is a couple hours. If you are doing this weekends and nights, and you loose a couple hours, that can quickly translate into days.
The main failing is the build process. Yea, ADS uses Maven, and that doesn't change. What typically breaks though is the Gradle part. Plenty of note on how to fix gradle every time it breaks on StackOverflow and other places. I've just decided I don't need the updates, and I won't have to loose any time. What I got seems to work for me, and I see no reason to upgrade.
My app is using the android devices gyro's. I am not trying to build a glass panel yet, but just trying to understand the sensors and their limitations. I have the accelerometers working, and you can see graphically and textually how the sensors work. The gyros, I am trying something similar. The gyros are rate gyros, meaning they return the degrees per second the unit is changing. A turn coordinator is a rate gyro, where a standard rate turn in a Cessna 172 is 3 degrees per second.
To make something like an attitude indicator, the rate gyro must be integrated over time. Once the device starts a 3degree/second bank change, as long as the gyro is reporting 3 degrees per second, it will keep adding these values. The first second will be 3 degrees, the second 6 degrees and so on. The math can get a little complicated, but there are plenty of examples on line.
So right in the middle of that, the emulator was working great, but the phone kinda quit working. It would paint the screen once, and the crash. The dreaded "Unfortunately, ExampleMain has stopped". message. (No I haven't created a cool name for this app yet). The emulator doesn't have real sensors, so it is hard to figure out why this is crashing.
I tried to connect the phone to the computer using USB, and debugging that way. Wow, that took more than I thought it would take. Samsung's web site was no help, try searching their site for "windows 7 usb android drivers", and you'll get taken to the laptop support page where you can download USB drivers for samsung laptops.
After many hours, I finally found this site: http://developer.samsung.com/android/tools-sdks/Samsung-Andorid-USB-Driver-for-Windows Just by the name you can tell it is what I am looking for. This is supposed to be the drivers that will allow debugging adb and the phone! Yes, finally the phone shows up in the list, but it is listed "Off-Line". If I click on it, the debug window just says "Waiting for device.". Finally someone said stop ADS and restart it. That was the magic.
Now I can debug on the phone. I am getting the same results, "Unfortunately, ExampleMain has stopped". message, and even the debugger isn't pointing me in a direction. Dang it, but at least I can set breakpoints in places I think there might be trouble. The two thread main loops don't seem to be the target yet. Next I'll try some of the new code I added.
Friday, February 7, 2014
More Aviation Software For Android
That last post got some good hits, and then I looked at my tablet, and realized I forgot a whole bunch of apps. I'll include the same categories, and list 10 more titles.
Moving Maps
To get good reliable moving maps in most aircraft will take an external GPS unit. These external GPS receivers can be mounted somewhere with a clear view of the sky. Sometimes the tablets will be used in places where they are unable to get a full view of the sky, making them unreliable. The external GPS receivers may have other capabilities (IE WAAS or ADS/B) as well.
I forgot the biggest of the big names. Garmin has and Android app, Garmin Pilot. The tag line "Plan, File, Fly" is what it seems it can do. There is a 30 day trial with this app, and requires a $9.99 monthly subscription. It includes charts (VFR, low and high IFR, approach plates and airport diagrams. Gets weather from NWS, including METARs TAF, winds aloft, PIREPs and various maps. Allows flight plan filing via DUATs.
Avilution AviationMaps is another application that seems really nice for maps. Allows breifing and filing through DUATS. Advertises that it can get weather including NEXRAD through ADS/B receiver, making it a very handy tool. Can get weather maps, METARs, TAFs, PIREPs and NOTAMs while in flight, or on the ground. Icing, winds and area forecasts are only available on the ground (this is a ADS/B limitation, not the software). All the same maps, VFR, Hi/Lo IFR, approach plates and airport diagrams. The subscription is either $74.95/year or 149.90/yr premium.
AirNavigation Pro includes maps and instruments.The instrument looks like an HSI, which I have always preferred for telling me where to go, or if I am on course or not. The charts they say are free and cover the whole world. The cost is $26.95 to buy, and doesn't really mention any subscriptions. This may be an app to keep an eye on.
E6B/Weather
AirWX Aviation Simple layout, enter an airport, the tabs appear for METAR, TAF, PIREPS, Charts and Plates. A really simple thing to be able to check as you get to an airport, not sure how useful it will be when flying for a couple hours (doesn't say ADS/B receivers are supported). No subscription fee, but will cost you $6.99 to buy it.
Weather Pilot Simple organization, allowing looking at text weather for multiple airports at a time. Very light weight, seems pretty fast and reliable. Still limited to mobile data, and not ADS/B receivers. It is free, and no subscription is required.
Avilution E6B Flight Computer - Real basic conversions, but seems well organized. Enter what you know, and it will figure out the rest. It is $4.95 to purchase it. It is likely you will not be able to use this on a test, since the proctors will confiscate your tablet and phone before going into the testing area.
Misc
Trade-A-Plane I used this weekly for a while on my old phone. Really handy for looking up used plane prices, or avionics or whatever you used to see in the yellow paper. Loved it, but I am not looking to buy things these days, so sadly, I haven't used it in a while. This app is free.
Aviation Exam just had a huge upgrade, it is very pretty now. I most recently used their app to earn my AGI rating. The Flight/Ground instructor review was really helpful, and allowed me to get a good grade the first time. The app is free, but you need to buy the test you want to study from. The tests are mostly $9.99-13.12 for 2 months, and can be had in bundles (IE PPL, IR, CPL). The tests are for EASA and FAA. Hooks into http://aviationexam.com and allows sync'ing tests and results.
GPS Status isn't just for aviation, but if you use GPS for anything, it may give you more insight about the accuracy of your GPS receiver. It shows the receivers in the sky right and their relative position. On the bottom, it shows the relative signal strength in a bar graph. Most Androidn GPS receivers will allow picking up US GPS and Russian GLONASS GNSS satellite signals and use them to give even more accurate position reports. This will show most of the relative position information the device can provide, including error information (DOP/HDOP/VDOP and absolute error in ft).
Ultimate Flight Checklist Mobile is a huge name, and will put it in the bottom of any alphabet list, but it is a great checklist tool. It allows adding any number of checklists for various aircraft. It comes with the three popular training aircraft; Cessna 172, Piper Cherokee 180, and Socata TB-10. You may add your aircraft and customize the checklist for any particular aircraft. Set your checklists in a way that works for you and be safe.
This again is not an exhaustive list of the aviation apps out there for the Android. It is a collection of some that I have used, or thought were interesting. If you have a favorite, let me know, and I'll take a look. Authors, users, doesn't matter to me, I'd love to hear what your favorites are.
Moving Maps
To get good reliable moving maps in most aircraft will take an external GPS unit. These external GPS receivers can be mounted somewhere with a clear view of the sky. Sometimes the tablets will be used in places where they are unable to get a full view of the sky, making them unreliable. The external GPS receivers may have other capabilities (IE WAAS or ADS/B) as well.
I forgot the biggest of the big names. Garmin has and Android app, Garmin Pilot. The tag line "Plan, File, Fly" is what it seems it can do. There is a 30 day trial with this app, and requires a $9.99 monthly subscription. It includes charts (VFR, low and high IFR, approach plates and airport diagrams. Gets weather from NWS, including METARs TAF, winds aloft, PIREPs and various maps. Allows flight plan filing via DUATs.
Avilution AviationMaps is another application that seems really nice for maps. Allows breifing and filing through DUATS. Advertises that it can get weather including NEXRAD through ADS/B receiver, making it a very handy tool. Can get weather maps, METARs, TAFs, PIREPs and NOTAMs while in flight, or on the ground. Icing, winds and area forecasts are only available on the ground (this is a ADS/B limitation, not the software). All the same maps, VFR, Hi/Lo IFR, approach plates and airport diagrams. The subscription is either $74.95/year or 149.90/yr premium.
AirNavigation Pro includes maps and instruments.The instrument looks like an HSI, which I have always preferred for telling me where to go, or if I am on course or not. The charts they say are free and cover the whole world. The cost is $26.95 to buy, and doesn't really mention any subscriptions. This may be an app to keep an eye on.
E6B/Weather
AirWX Aviation Simple layout, enter an airport, the tabs appear for METAR, TAF, PIREPS, Charts and Plates. A really simple thing to be able to check as you get to an airport, not sure how useful it will be when flying for a couple hours (doesn't say ADS/B receivers are supported). No subscription fee, but will cost you $6.99 to buy it.
Weather Pilot Simple organization, allowing looking at text weather for multiple airports at a time. Very light weight, seems pretty fast and reliable. Still limited to mobile data, and not ADS/B receivers. It is free, and no subscription is required.
Avilution E6B Flight Computer - Real basic conversions, but seems well organized. Enter what you know, and it will figure out the rest. It is $4.95 to purchase it. It is likely you will not be able to use this on a test, since the proctors will confiscate your tablet and phone before going into the testing area.
Misc
Trade-A-Plane I used this weekly for a while on my old phone. Really handy for looking up used plane prices, or avionics or whatever you used to see in the yellow paper. Loved it, but I am not looking to buy things these days, so sadly, I haven't used it in a while. This app is free.
Aviation Exam just had a huge upgrade, it is very pretty now. I most recently used their app to earn my AGI rating. The Flight/Ground instructor review was really helpful, and allowed me to get a good grade the first time. The app is free, but you need to buy the test you want to study from. The tests are mostly $9.99-13.12 for 2 months, and can be had in bundles (IE PPL, IR, CPL). The tests are for EASA and FAA. Hooks into http://aviationexam.com and allows sync'ing tests and results.
GPS Status isn't just for aviation, but if you use GPS for anything, it may give you more insight about the accuracy of your GPS receiver. It shows the receivers in the sky right and their relative position. On the bottom, it shows the relative signal strength in a bar graph. Most Androidn GPS receivers will allow picking up US GPS and Russian GLONASS GNSS satellite signals and use them to give even more accurate position reports. This will show most of the relative position information the device can provide, including error information (DOP/HDOP/VDOP and absolute error in ft).
Ultimate Flight Checklist Mobile is a huge name, and will put it in the bottom of any alphabet list, but it is a great checklist tool. It allows adding any number of checklists for various aircraft. It comes with the three popular training aircraft; Cessna 172, Piper Cherokee 180, and Socata TB-10. You may add your aircraft and customize the checklist for any particular aircraft. Set your checklists in a way that works for you and be safe.
This again is not an exhaustive list of the aviation apps out there for the Android. It is a collection of some that I have used, or thought were interesting. If you have a favorite, let me know, and I'll take a look. Authors, users, doesn't matter to me, I'd love to hear what your favorites are.
Subscribe to:
Posts (Atom)