Channels ▼
RSS

Building an Automotive Dashboard on Android


Nearly a year ago, I took a look at the original Asteroid in-car computing platform. Initially based on the Android 1.6 operation system, the first Asteroid model showed great potential but was hobbled by a small display, limited network connectivity, and a lack of video playback capabilities among other criticisms. Being a first-generation device, it was more proof of concept: Was the market ready for car computing? Apparently so, as Parrot has released its next generation in their car computing line, called the Asteroid Smart.

Features

Asteroid Smart is a 6.2-inch Asteroid tablet mounted into a car dashboard that runs a slightly enhanced version of Android 2.3.7. The first thing that struck me when I began using the new device was how much faster and responsive it is when compared with the original Asteroid. The interface was also far easier to navigate compared with the first-generation model.

Installation was easy considering that much of the hard work was done previously when I installed the original Asteroid. In addition to the audio jacks, the Asteroid Smart adds video input and output for backup cameras and broadcast to other displays in the car. The Smart also now has built-in WiFi to allow the Asteroid to connect to hotspots, WiFi cards and home networks when parked.

Installing the Asteroid Smart
Figure 1: Installing the Asteroid Smart.

Other features that take the Asteroid Smart far beyond the original hardware implementation include the ability to pair up to 10 phones for both voice activation dialing and contact list selection from the Smart's display. The bright multitouch display behaves just as you would expect any Android tablet-style surface to behave, with multitouch, scrolling, and using your finger to quickly navigate the interface. And contents being displayed can be seen easily — even in mid-day sunlight.

The Asteroid Smart's screen can be seen easily in daylight
Figure 2: The Asteroid Smart's screen can be seen easily in daylight.

You can also connect up to four USB devices, with the ability to charge power hungry 5V phones and tablets, including iPads and Nexus 7 tablets. And Bluetooth 2.1 + EDR connectivity with the full complement of profiles (HSP, HFP, OPP, PBAP, A2DP, AVRCP) are also fully supported.

The Asteroid Smart also comes with an 8GB SD card containing the iGO street navigation application. However, when I tried to upsize to a larger storage card, the iGO application complained it was missing a license to run even though I had copied over from the original SD card what I thought were all the map files associated with the application. I searched in vain for any hidden files or permissions that were different on the target SD card to no avail. Alas, I opted to remove the iGO application to try out alternative GPS road navigation applications available for download from the Parrot Asteroid Market. These were Asteroid-optimized ports of the free Maps and the subscription-based Wikango HD US. Neither were particularly compelling and I would have preferred Google Maps' Android application instead, but that's not a market option at the moment.

As for the other Asteroid Smart applications either already on the device or available from the store, all the essentials for in-car entertainment are available except video players. While the hardware is quite capable of video playback (proven by the fact that as a test, I side-loaded the open source Dolphin media player and played back several low-bit encoded MP4's without incident), I suspect Parrot is intentionally omitting video media players in their market to prevent customers from being dangerously distracted while driving. The exception to this video playback experience is the inclusion of a rear-view camera viewing application, as the Asteroid Smart has an orange ISO cable connection port for cars installed such cameras. This application is automatically launched when cars with these cameras are put into reverse. Also of note is that the Asteroid Smart features video output ports to broadcast media playback signals to displays mounted elsewhere in the car such as in the rear passenger area.

Of interest to developers is an Application safety control option in the Settings->Advanced Settings dialog box. As a safety precaution, this option is re-enabled each time car starts. Its safety features disable applications deemed distracting to the driver until the parking break is engaged. To learn more about coding this support into applications being ported to the Asteroid Smart, check out the information on the Asteroid DevZone Wiki for more information.

Development Experience

Thanks to the fact that the Asteroid Smart has built-in WiFi, I was able to connect the device to my home network. There's nothing like pulling up to your driveway and watching the Asteroid auto-negotiate a connection to your home network, ready to sync up everything from podcasts to application files.

As a result of this and Android's ability to deploy and debug APKs via a USB connection, you can easily set up a development scenario even after the Asteroid Smart has been installed. One feature that would be even nicer is the ability to eventually deploy and debug wirelessly, a feature that's standard in most Android 4.x devices. While it is possible to get remote wireless ADB capabilities to work on the Asteroid Smart, doing so requires rooting the device and installing a third party hack. Same thing goes for getting Google's own applications like the Google Play marketplace, Google Maps, and Gmail to run on the Asteroid Smart. And even though I was tempted to try, I opted to steer clear of doing so for now. Not only are most of the applications on the Google Play market not optimized for the Asteroid Smart (even though they should be able to execute without problems, assuming they were compiled to run on the Android 2.3 OS release), doing so could be hazardous while driving.

As such, developers interested in porting their Android apps for the Asteroid Smart platform need to take these design and user interaction principles to heart. Even so, a hack to install a working instance of Google Play will undoubtedly show up one day, probably by some determined tinkerer on the XDA Developer Forums.

While not required, it's a good idea to sign up for a developer account on the Parrot Asteroid Developer's Zone website in order to obtain access to the Asteroid SDK and forums to post questions to the Parrot developer support staff. The site features a Wiki where developers can learn about developing for the Asteroid Smart as well as distributing your wares through Parrot's Asteroid Market. Once you're ready to submit your app for Asteroid Market consideration, developers can sign up and sign into Parrot's Asteroid Dev Connect portal.

Dark Sky Redux

In an earlier article on Recon Instrument's wearable ski goggles article, I developed a custom application that consumed weather data from the Dark Sky web service. Given that Recon's platform was also based on Android 2.3 and the fact that the data window was intended for quick glances of information, porting the Dark Sky-powered app to the Asteroid Smart platform was an easy choice. But because the display on the Asteroid Smart is large, bright and beautiful, I opted to enhance the application with second screen that shows the current weather radar map for the region. Since the base code for obtaining GPS coordinates and submitting that data to the Dark Sky web service hasn't changed, readers interested in learning more about that portion of the project should read my Recon Instruments article.

Adding the weather-map screen was rather easy. Unlike desktop applications, especially form-driven .NET applications for Windows, Android applications do not really have a concept of forms to be displayed and hidden. Not only is this because of the need to constrain memory resources on mobile devices like Android, but also because Android employs the concept Intents to call upon other programs. As such, the weather screen in my Dark Sky-driven application on the Asteroid is an Intent that is called by my original main program. This Intent approach also can be used to expose this screen so that it can be called by other Android programs on the device that have been granted permission to do so.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video