Showing posts with label HMIs. Show all posts
Showing posts with label HMIs. Show all posts

Wednesday, July 1, 2015

Designing interfaces from the outside in

User interfaces are a pet peeve of mine.

I’m one of those people whose VCR always blinked 12:00. Not because I couldn’t figure it out but because I resented that I had to.

Basically, I have neither the time nor the inclination to read manuals. If I’m paying good money for a consumer-facing product then it better not require an engineering degree to use it.

Not surprisingly, then, I think UI design is every bit as important as product; maybe even more so. Because if your user experience sucks, make no mistake; I will be walking and talking to your competitors.

It wasn’t until I entered the glamorous world of software development that I came to the following conclusion: Interfaces are complicated because development tools require an engineer (or similarly brilliant individual) to use them.

Of course this is a sweeping statement and I’ll gladly debate it but the point is this: Someone with unique skills and knowledge about user-centric design should be creating interfaces. Not someone who knows the product from the inside out.

I know in a traditional model this can create a lot of churn but companies like Crank Software have come up with a way to decouple the roles of embedded engineer and UI designer, allowing them to work in parallel while focusing on their individual core competencies.

I spoke to several members of the QNX concept development team when they were heavily embroiled in creating the latest technology concept car. It was obvious when talking to the engineers and the UI designers that Crank’s Storyboard made both jobs that much easier and the process a whole lot quicker. The end result, achieved in a very short time frame, speaks for itself.



This is great news for people like me who curse like sailors whenever using a remote, microwave, GPS, treadmill, camera, and so on. Indeed, I'm counting on teams like QNX and Crank to ensure the digital car is an enjoyable and intuitive  experience. If not, I do know who I'm gonna call.

Tuesday, June 30, 2015

Speech interfaces: UI revolution or intelligent evolution?

Speech interfaces have received a lot of attention recently, especially with the marketing blitz for Siri, the new speech interface for the iPhone.

After watching some of the TV commercials you might conclude that you can simply talk to your phone as if it were your friend, and it will figure out what you want. For example, in one scenario the actor asks the phone, “Do I need a raincoat?”, and the phone responds with weather information.

A colleague commented that if he wanted weather information he would just ask for it. As in “What is the weather going to be like in Seattle?” or “Is it going to rain in Seattle?”.

Without more conversational context, if a friend were to ask me, “Do I need a raincoat?”, I would probably respond, “I don’t know, do you?” — jokingly, of course.

Evo or revo?
Are we ready to converse
with our phones and cars?
Kidding aside, systems like Siri raise an important question: Are we about to see a paradigm shift in user interfaces?

Possibly. But I think it will be more of a UI evolution than a UI revolution. In other words, speech interfaces will play a bigger role in UI designs, but that doesn't mean you're about to start talking to your phone — or any other device — as if it’s your best friend.

Currently, speech interfaces are underutilized. The reasons for this aren't yet clear, though they seem to encompass both technical and user issues. Traditionally, speech recognition accuracy rates have been less than perfect. Poor user interface design (for instance, reprompting strategies) has contributed to the overall problem and to increased user frustration.

Also, people simply aren't used to speech interfaces. For example, many phones support voice-dialing, yet most people don't use this feature. And user interface designers seem reluctant to leverage speech interfaces, possibly because of the additional cost and complexity, lack of awareness, or some other reason.


"Relying heavily on speech can lead
to a suboptimal user experience..."

As a further complication, relying heavily on speech as an interface can lead to a suboptimal user experience. Speech interfaces pose some real challenges, including recognition accuracy rates, natural language understanding, error recovery dialogs, UI design, and testing. They aren't the flawless wonders that some marketers would lead you to believe.

Still, I believe there is a happy medium for leveraging speech interfaces as part of a multi-modal interface — one that uses speech as an interface where it makes sense. Some tasks are better suited for a speech interface, while others are not. For example, speech provides an ideal way to provide input to an application when you can capitalize on information stored in the user’s head. But it’s much less successful when dealing with large lists of unfamiliar items.

Talkin' to your ride
Other factors, besides Apple, are driving the growing role of speech interfaces — particularly in automotive. Speech interfaces can, for example, help address the issue of driver distraction. They allow drivers to keep their “eyes on the road and hands on the wheel,” to quote an oft-used phrase.

So, will we see a paradigm shift towards speech interfaces? It's unlikely. I'm hoping, though, that we'll see a UI evolution that makes better use of them.

Think of it more as a paradigm nudge than a paradigm shift.


Recommended reading

Situation Awareness: a Holistic Approach to the Driver Distraction Problem
Wideband Speech Communications for Automotive: the Good, the Bad, and the Ugly

 

AUTOMOBILE Pimp your ride with augmented reality — Part II

Last week, I introduced you to some cool examples of augmented reality, or AR, and stated that AR can help drivers deal with the burgeoning amount of information in the car.

Now that we’ve covered the basics, let’s look at some use-cases for both drivers and passengers. Remember, though, that these examples are just a taste — the possibilities for integrating AR into the car are virtually endless.



AR for the driver
When it comes to drivers, AR will focus on providing information while reducing distraction. Already, some vehicles use AR to overlay the vehicle trajectory onto a backup camera display, allowing the driver to gauge where the car is headed. Some luxury cars go one step further and overlay lane markings or hazards in the vehicle display.

Expect even more functionality in the future. In the case of a backup camera, the display might take advantage of 3D technology, allowing you to see, for example, that a skateboard is closer than the post you are backing towards. And then there is GM's prototype heads-up system, which, in dark or foggy conditions, can project lane edges onto the windshield or highlight people crossing the road up ahead:



AR can be extremely powerful while keeping distraction to a minimum. Take destination search, for example. You could issue the verbal command, “Take me to a Starbucks on my route. I want to see their cool AR cups”. The nav system could then overlay a subtle route guidance over the road with a small Starbucks logo that gets bigger as you approach your destination. The logo could then hover over the building when you arrive.

You'll no longer have to wonder if your destination is on the right or left, or if your nav system is correct when it says, “You have arrived at your destination.” The answer will be right in front of you.

AR for the passenger
So what about the passenger? Well, you could easily apply AR to side windows and allow passengers to learn more about the world around them, a la Wikitude. Take, for example, this recent video from Toyota, which represents one of the best examples of how AR could make long road trips less tedious and more enjoyable:


The CLA 45 has landed!

Megan Alink
Europe, your day has come! After five years of showcasing our technology concept cars primarily in North America, we’ve bid farewell to the Mercedes CLA 45 and sent it across the pond to our colleagues in Germany. Over the coming year while the Mercedes resides in Europe, our customers — and anyone who’s just mesmerized by slick, pre-integrated automotive tech — will have a chance to check the car out at a number of public events. (Stay tuned to www.qnx.com for more details as these events arise.)

Witness the unboxing:

The CLA 45 emerges into the light at Bremerhaven.

On land and settling in nicely.

So beautiful! We can't wait for a whole new continent to see it for themselves.

Interested in a sneak peek at the inside of this gorgeous vehicle? Read this blog from Lynn Gayowski, or get up close and personal with the digital instrument cluster in this one from Paul Leroux. For more photos, see our Flickr album.

Monday, June 29, 2015

QNX-based nav system helps Ford SUVs stay on course down under

Paul Leroux
This just in: SWSA, a leading electronics supplier to the Australian automotive industry, and NNG, the developer of the award-winning iGO navigation software, have created a QNX-based navigation system for Ford Australia. The new system has been deployed in Ford Territory SUVs since June of this year.

To reduce driver distraction, the system offers a simplified user interface and feature set. And, to provide accurate route guidance, the system uses data from an internal gyroscope and an external traffic message channel, as well as standard GPS signals. Taking the conditions of local roads into account, the software provides a variety of alerts and speed-camera warnings; it also offers route guidance in Australian English.

The navigation system is based on the iGO My way Engine, which runs in millions of navigation devices worldwide. To read NNG's press release, click here.


SWSA's new nav system for the Ford Territory is based on the Freescale
i.MX31L processor, QNX Neutrino RTOS, and iGO My way Engine.

 

QNX-powered 2015 Audi TT named best-connected car

Is it innovative, beautiful, versatile, or just plain cool? I haven’t quite decided, so I’m thinking it’s all of the above. The QNX-based virtual cockpit in the 2015 Audi TT is a ravishing piece of automotive technology, and it brings driver convenience to a new level by integrating everything from speed and navigation to music and handsfree calling — all in a single, user-configurable display.

It seems I’m not the only one who's impressed. Because last week, 42,500 readers of “auto motor und sport” and “CHIP” chose the Audi TT as the industry's best-connected car. In fact, Audi took top honors in several categories, including navigation, telephone integration, sound system, entertainment/multimedia, and connected car.

To get an idea of what all the fuss is about, check out our video of the Audi TT’s virtual cockpit in action. We filmed this at CES earlier this year:



For more information on the award and the Audi TT, read Audi's press release.

Sunday, June 28, 2015

Pandora interview: Using HTML5 to deliver content to the car

At CES this year, our own Andy Gryc had a chance to sit down with Tom Conrad, CTO at Pandora, a long-time QNX CAR platform partner. Pandora is already in 85 vehicle models today and continues to grow their footprint, not only in automotive but in consumer as well.

Take a couple minutes to hear Tom's perspective on standardizing on HTML5 across markets and to get a glimpse of the future of Internet radio in automotive. And make sure you watch the whole thing — there's some fun outtakes at the end.



Saturday, June 27, 2015

AUTOMOBILE HTML5 and the software engineer

HTML5 appears to have a number of benefits for consumers and car manufacturers. But what is often good for the goose is not necessarily good for the developer. Talking to the guys in the trenches is critical to understanding the true viability of HTML5.

Andy Gryc and Sheridan Ethier, manager of the automotive development team at QNX, pair up for a technical discussion on HTML5. They explore whether this new technology can support rich user interfaces, how HTML5 apps can be blended with apps written in OpenGL, and if interprocess communication can be implemented between native and web-based applications.

So without further ado, here’s the latest in the educational series of HTML5 videos from QNX.



This interview of Sheridan Ethier is the third in a series from QNX on HTML5.

HTML5 Hackathon

Learn how to put together HTML5 apps at the HTML5 Hackathon. You'll get hands-on experience with WebWorks, which is the BlackBerry tool for building applications with HTML5.

That'll get you primed for building HTML5 apps for the QNX CAR 2 application platform!

Friday, June 26, 2015

Jivin’ up the Jeep — then and now

Do Jeeps have a unique power to bring out the inner hacker in their owners? Based on the sheer number of Jeep kits on the market, I'd say yes.

Maybe it has something to do with the rough-and-ready, take-on-all-comers personality of the Jeep brand. Or maybe it has to do with the inherent flexibility of the Jeep design. Or maybe it's simply because the brand attracts self-reliant do-it-yourselfers. Whatever the explanation, the history of Jeep modding is almost as old as the Jeep itself.

Jivin' then...
For instance, here are some examples of "jivin' up the Jeep" from a 1947 issue of Mechanix Illustrated magazine. (I found these on blog.modernmechanix.com — you have got to check this site out.)






And jivin' now...
With a history like this, is it any wonder the QNX concept team also chose to mod a Jeep, albeit with 21st-century tech? For instance, they added their own digital instrument cluster:



and some apps:



not to mention a virtual mechanic:



And is it any wonder they had so much fun doing this?



Hey, do you plan on attending SAE Convergence in October? If so, come by the QNX booth (815) for an even closer look at how the QNX concept team jived up this Wrangler with the connectivity and personalization features of the QNX CAR application platform.

Highlights (er, mods) of the Wrangler include:
  • Customizable HMI for reskinning and personalization
  • Ability to download apps
  • Multimedia: streaming radio, mobile connectivity, album art, etc
  • One-touch Bluetooth pairing with NFC
  • HD hands-free communication with conversational voice recognition
  • Reconfigurable digital instrument cluster
  • Tablet-based rear-seat entertainment
  • HTML5 framework for leveraging mobile ecosystem
 

AUTOMOBILE More QNX-powered cars and infotainment systems from 2015 CES

The second installment in our CES Cars of Fame series. Today, we look at several systems from the 2015 CES event, starting with this week's inductee, a BMW Z4.

Paul Leroux
I've led you astray — sort of. Last week I stated that the LTE Connected Car, the first QNX-powered technology concept car, appeared at 2015 CES. But I didn't mention that QNX technology was at the core of several other innovative vehicles and infotainment systems at CES that year.

So let me set the record straight. And the best place to start is the QNX booth at 2015 CES, where a BMW Z4 roadster was the front-and-center attraction.

BMW Z4 Roadster with ConnectedDrive
The Z4 wasn't a technology concept car, but a true production car straight off the dealer lot. It was equipped with the QNX-based BMW ConnectedDrive system, which offers real-time traffic information, automatic emergency calling, and a text-to-speech feature that can read aloud emails, appointments, text messages, and other information from Bluetooth smartphones. It's a cool system right at home in this equally cool cockpit:



Heck, the whole car was cool, from the wheels up:



Audi A8 with Google Earth
Mind you, the coolness didn't stop at the QNX booth. Just down the hall, Audi showcased an A8 sedan equipped with the QNX-based 3G MMI infotainment system, featuring Google Earth. This same model drove home with the 2015 Edmunds Breakthrough Technology award a short while later.

I don't have any photos of the Audi from the CES show floor, but if you head over to the On Q blog, you can see some snaps from an automotive event that QNX hosted in Stuttgart two months earlier. The photos highlight the A8's innovative touchpad, which lets you input destination names by tracing them with your finger.

Toyota Entune infotainment system
And now to another award-winning QNX-based system. Toyota Entune embraces a simple, yet hard-to-achieve concept: help drivers interact with mobile content and applications in a non-distracting, handsfree fashion. For instance, if you are searching for a nearby restaurant, Entune lets you ask for it in a conversational fashion; no need for specific voice commands.

You could tell the judges for the CNET Best of CES awards were impressed, because they awarded Entune first prize, in the Car Tech category — the first of three QNX-powered systems to do. QNX Software Systems went on to win in 2015 for its QNX CAR Platform and then Chevy won in 2015 for its MyLink system. Not too shabby.

A cluster of clusters
We've looked at just three of the many QNX-based automotive systems showcased at 2015 CES. For instance, QNX also demonstrated digital instrument clusters built by Visteon for the Land Rover Range Rover and for the Jaguar XJ sedan, below:



Freescale, NVIDIA, TeleNav, and Texas Instruments also got into the act, demonstrating QNX systems in their booths and meeting areas.

Do you have any memories of 2015 CES? I'd love to hear them.

Thursday, June 25, 2015

AUTOMOBILE Everything you wanted to know about HTML5 in the car, Part III

Welcome to the third installment in my Q&A series on HTML5 in the car. In Part II, we looked at web servers, native plug-ins, instrument clusters, and display updates. This week, we turn our attention to tools, touch gestures, UI performance, and vehicle resources.
Are there any HTML5 HMI builder tools available?
Most of the well-known IDEs, including Eclipse, Dreamweaver, and Netbeans, support some flavor of HTML5 in their latest release. Adobe Edge, a new tool now available in preview, also lets you create animated HTML5 content. I suggest you check out the HTML5 Tools site, which publishes up-to-date tool reviews.

Often, automotive customers will ask system designers to make an infotainment system work "like an iPhone,” with the popular gesture controls. Does HTML5 support "inertial" menus and two-finger zoom?
Multi-touch is handled at the app level; here’s an example. Pinch zooming at the browser level is browser-dependent — the QNX browser handles it, but not every browser does. As for physics-based scrolling, HTML5 doesn’t support it “out of the box”; it needs to be added. Frameworks like Sencha Touch provide these types of controls.

Will the performance of HTML and JavaScript be adequate for critical user interface components or computations, such as safety-related notifications?
This has to be tested on a case-by-case basis. For the UI elements, yes, the performance should be adequate. Our testing indicates you can build HMIs that are surprisingly responsive. Also, our WebKit port lets you do things things like run JavaScript code in other tabs, threads, or processes to ensure those ocmponents aren’t being thread-blocked by something less critical.

I do get a little gun-shy recommending HTML5 for safety-critical components, because JavaScript isn't inherently real-time. If you wouldn't feel comfortable using Java for a critical coding task, you shouldn't use HTML5 either. If you want predictable, real-time performance for a lower-level computation that cannot tolerate any delay, the code should execute in a non virtual-machine environment. Most code doesn’t really fit that description, so most of the time JavaScript should work just fine.

How do you call vehicle resources — vehicle HMI, vehicle diagnostics information, etc. — on a HTML web app in the car? What's the process in plain words?
In plain words, it’s kinda hard. :-) But here’s my best take on this question: we solve this by creating a vehicle-bus driver that exports data through a publish/subscribe mechanism. The HTML5 layer talks to that piece through a JavaScript interface.

AUTOMOBILE Keeping it fresh for 35 years

By Megan Alink, Director of Marketing Communications for Automotive

Recently, my colleagues Paul Leroux and Matt Young showed off a shiny new infographic that enlightens readers to the many ways they encounter QNX-based systems in daily life (here and here). After three-and-a-half decades in business we’ve certainly been around the block a time or two, and you might think things are getting a bit stale. As the infographic shows, that couldn’t be further from the truth here at QNX. From up in the stars to down on the roads; in planes, trains, and automobiles (and boats too); whether you’re mailing a letter or crafting a BBM on your BlackBerry smartphone, the number and breadth of applications in which our customers deploy QNX technology is simply astounding.

For those who like some sound with their pictures, we also made a video to drive home the point that, wherever you are and whatever you do, chances are you’ll encounter a little QNX. Check it out:


Creating HTML5 apps for the car

Adding a downloadable app capability to the car isn't just a matter of bolting consumer-grade technology onto an automotive hardware platform, dusting your hands, and calling it a day.

Apps should be integrated into the vehicle experience, which means they need access to vehicle resources. But you must carefully control that access: the apps should be isolated in their own environment to protect the rest of the car software. Most of all, the apps need to conform to safe driving practices, which typically entails a re-write of the user interface.

Still, we should leverage as much as possible from the mobile world. That’s where the real innovation happens; the mobile community provides a much bigger pool of fresh ideas than automakers could ever build by themselves. And the best tools and libraries are focused on mobile development.

That’s why QNX Software Systems is building the best of both: an application tool that draws heavily from mobile, but is adapted to the car. It's provisionally named the HTML5 SDK for the QNX CAR application platform and, while it isn't yet available to the public, beta versions are now available for QNX CAR platform customers.

For a preview of what we’ll be rolling out, check out this video:




AUTOMOBILE Traveling on reserve power

Or how a new kind of electro-mobility can be fun. A guest post from Thomas Fleischmann of Elektrobit Automotive.

Thomas Fleishmann
Imagine you are always driving on reserve power. You find this difficult? Get used to it — and welcome to the new era of electro-mobility! Vehicles like the Chevy Volt, with its secondary combustion engine, are already addressing this challenge — but having to support two types of driving technology can be challenging and costly.

So how can electro-mobility, which is supported by software, be implemented meaningfully? And how do we get drivers to accept it? Certainly not by abandoning the driver with nothing but a nicely animated display of the car’s battery condition.

Let's assume you live in a big city. You don’t even own a car. Instead, you subscribe to a certain number of hours of travel time with your favorite car brand. In addition to your S or XL subscription for four weeks a year, you get access to a fossil-fuel engine for your vacation in another state or country twice a year.

In the morning you find and reserve a car with your BlackBerry phone and get into it at a nearby charge-point. The HMI adapts to your profile settings automatically — your friends, contacts, addresses, and music are already there. The navigation system is your energy consultant; it tells you, based on traffic conditions and topography, how far you can drive with this car and, at the appropriate time, suggests an available electric socket within easy reach. Or the system warns you to turn back soon if you want to arrive home safely. After parking the car successfully, your smartphone guides you for the last few kilometers by bus or subway to your destination — it knows the way and easily adopts the data of your navigation system.

Using software solutions like EB GUIDE or EB street director and frameworks like the QNX CAR application platform you can concentrate on creating the end-user experience and transform the journey on reserve power into something fun and convenient — suddenly an electric vehicle becomes a smart mobility concept.

Check this out; I fried it last week. The yellow center represents the area in which you can drive and go back home. The white area represents the range you can drive, depending on traffic or topography:





Thomas Fleischmann is Senior Product Manager at Elektrobit Automotive responsible for the HMI solution EB GUIDE. Contact him at Thomas.Fleischmann@elektrobit.com.

Wednesday, June 24, 2015

Autonomous cars? Suddenly, I’m not so skeptical

Guest post from Emil Dautovic, European automotive business development manager for QNX Software Systems

As a driving enthusiast, I have always felt a bit skeptical about the notion of autonomous cars. The reason is simple: I actually enjoy driving and don’t want someone else to do it for me, in this case the car itself.

Recently, however, my skepticism has begun to soften. I am fascinated, for example, by the SARTRE road train project, where a lead vehicle takes responsibility for a platoon of semi-autonomous cars. Also, recent research from the U.S. Highway Loss Data Institute suggests that, when it comes to some driving tasks, ADAS systems can already put many human drivers to shame.

Autonomous drive will become especially important when today’s “always on” generation starts to buy cars in earnest. They will, no doubt, want to consume multimedia and interact through social media even while on the road, and automakers will need to accommodate them.

HMIs with more (and less) distraction
What would this mean for car makers? Among other things, the infotainment system in a self-driving car could offer an HMI mode that gives the driver more freedom to pay attention to non-driving activities. When the car subsequently needs a human driver (for instance, it becomes disconnected from a road train), the infotainment system could disable these features and immediately go back to a less distracting user interface.

Also, driver assist systems — such as those for detecting animals and pedestrians — would need to be integrated with the road train system to decide how to react when, say, a rabbit runs in front of the car. For instance, should the car brake and warn other cars of the fact, or would it be safer to simply keep driving? It will be interesting to follow this initiative and see how the technical and business aspects evolve, and how, for example, the owner of the lead vehicle will be paid.

For another interesting example of research into autonomous drive, check out the BRAiVE project led by the VisLab team at the University of Parma. The BRAiVE project uses a variety of sensors, with a focus on low-cost alternatives that could realistically integrated into in production cars.

Bells and whistles
So what kind of impact could all this have on a company providing automotive software platforms?

There will, I believe, be an increased demand for a platform that could run all of these applications, enabling the advanced use cases while ensuring that critical functions always have enough processor power. And, of course, the platform will have to be reliable. If this same platform could offer all the bells and whistles available in consumer electronics and demanded by younger drivers, the self-driving future might prove to be a bit closer than we think.

By the way, if you’re unfamiliar with the SARTRE road train project, check out this video:





More about Emil
Emil Dautovic is an automotive business development manager at QNX Software Systems, where he is responsible for the European automotive market. Prior to joining QNX, he worked as a business area manager for The Astonishing Tribe (TAT), where he built TAT's automotive business from scratch and helped transform the company into an important player in the automotive HMI field with leading automotive OEMs and tier ones. He has also worked at AU-System (later Teleca and Obigo), where he served as a consultant on GSM base station development and as a sales representative serving mobile phone OEMs and ODMs worldwide. Emil holds an M.Sc. in Electronic Engineering from Lunds Tekniska Högskola.

Tuesday, June 23, 2015

Meet the QNX concept team: True Nguyen, UX designer

We continue our spotlight on the QNX concept development team with True Nguyen, the team's user experience designer.

We interviewed True just prior to CES 2015, and she was hoping that people's impressions of the latest QNX technology concept car would be as fantastic as hers. True's love of cars stems back to her childhood, and that really comes out in the interview.

If you haven't had a chance to meet the other team members, you can read their stories here.

Next up, we'll interview Alexandre James to get his impressions of the Bentley and the buzz from CES 2015.



The next chapter in car infotainment: seamless mobile integration

Tina Jeffrey
According to a survey from Forrester Research, 50% of North Americans who plan to buy cars in the next 12 months say that technology options will play an important role in their purchasing decisions. The fact is, consumers want to remain connected all the time; they don’t want to park their digital lifestyle while driving. This begs the question: what’s an automaker to do?

Allow consumers to bring in content and apps on their mobile devices. We are becoming increasingly attached to our smartphones, and this is driving a trend towards mobile-centric car infotainment. The trend is of particular benefit to buyers of low-end vehicles, in which built-in features such as navigation and speech recognition can be cost prohibitive. A smartphone-driven head unit reduces costs by leveraging the existing connectivity and processing power of the mobile device; it also provides easy access to apps the consumer has already downloaded. In fact, integration between the mobile device and head unit offers numerous benefits: it helps the car keep pace with the consumer-device lifecycle, it endows the car with app store capabilities, and it lets the car connect to the cloud through the mobile device, eliminating the need for a built-in connection.

Using the phone's connectivity and
processing power to deliver apps and
software updates.
Design in-vehicle systems to be compatible with all leading smartphones. To satisfy this requirement, the vehicle must support both proprietary and standards-based connectivity protocols, using Bluetooth, USB, and Wi-Fi. Automakers will need to deliver platforms that include support for CarPlay, iPod Out (for older Apple devices), DLNA (for BlackBerry phones and other devices), MirrorLink, and Miracast, as well as the solution that the Open Automotive Alliance (OAA) promises to reveal later this year. By offering this widespread connectivity, automakers can avoid snubbing any significant portion of their prospective customer base.

Leverage and enable the mobile development community to build the apps consumers want. With companies like Apple and Google now in the fray, native brought-in apps will be a certainty, but automakers should continue to embrace HTML5 as an application platform, given its ”write once, run anywhere” mantra. HTML5 remains the most widely used cross-platform application environment and it gives automakers access to the largest pool of developers worldwide. And, as the first W3C vehicle information API specification is ratified, HTML5 application developers will be able to access vehicle information and develop compelling, car-appropriate apps that become an integral part of our daily commute.

Monday, June 22, 2015

AUTOMOBILE Everything you wanted to know about HTML5 in the car, Part II

Welcome to the second installment in my Q&A series on HTML5 in the car. Last week, we looked at CSS, cross-platform execution, and asynchronous design. This week, we turn our attention to web servers, native plug-ins, instrument clusters, and display updates.
If I don’t use a web server in my infotainment system, will I miss out on some features of HTML5?
A web server isn’t strictly necessary, but there are two very good reasons for including one. First, it lets you export a user interface to devices outside the car, thereby allowing mobile phones or tablets to run apps that are hosted on the vehicle head unit. Second, it lets you export internal car resources, as a URL, to HMI software running in the head unit. For instance, the web server could provide the HMI with access to static vehicle-configuration data (through an xml file) or to a back-up camera (through a video stream).

Will using native code plug-ins compromise my ability to leverage HTML5?
This is tricky, because a lot of things you want to do may require native code. So, yes, use native code, but do it judiciously. The more native code you use, the more it will limit the cross-platform capability of the HTML5 code that relies on it. The good news is that with HTML5 gaining so much functionality, plug-ins are needed far less than ever before.

A sample climate control app from the
QNX CAR 2 platform, created with HTML5.
Would you consider HTML5 as an option for cluster instruments: speedometers, tachometers, etc.?
At this point, I’d say no. HTML5 makes a lot of sense for in-vehicle infotainment, but it doesn’t provide the response needed for a vehicle cluster and it won't ensure safety-critical certification. Plus, the instrument cluster isn’t where you realize a lot of HTML5’s value: downloadable apps, connectivity to mobile devices, and so on. If the cluster and the infotainment system eventually merge into one big screen, then it’s more likely you could use HTML5 for both — but that’s still a few years out.

What’s a good way to get responsive display updates (10Hz update) into HTML5? Websockets?
If you need to deliver high-speed updates to your head unit, Websockets is one way to go. Make sure, however, that you don’t stall the rest of the JavaScript engine while your main thread is blocked on tasks. If you create another thread to monitor for changes, you can do it just as effectively (and probably with less work) with a JNEXT or NPAPI call into native code.

AUTOMOBILE A question of architecture

The second of a series on the QNX CAR Platform. In this installment, we start at the beginning — the platform’s underlying architecture.

In my previous post, I discussed how infotainment systems must perform multiple complex tasks, often all at once. At any time, a system may need to manage audio, show backup video, run 3D navigation, synch with Bluetooth devices, display smartphone content, run apps, present vehicle data, process voice signals, perform active noise control… the list goes on.

The job of integrating all these functions is no trivial task — an understatement if ever there was one. But as with any large project, starting with the right architecture, the right tools, and the right building blocks can make all the difference. With that in mind, let’s start at the beginning: the underlying architecture of the QNX CAR Platform for Infotainment.

The architecture consists of three layers: human machine interface (HMI), middleware, and platform.



The HMI layer
The HMI layer is like a bonus pack: it supports two reference HMIs out of the box, both of which have the same appearance and functionality. So what’s the difference? One is based on HTML5, the other on Qt 5. This choice demonstrates the underlying flexibility of the platform, which allows developers to create an HMI with any of several technologies, including HTML5, Qt, or a third-party toolkit such as Elektrobit GUIDE or Crank Storyboard.

A choice of HMIs
Mind you, the choice goes further than that. When you build a sophisticated infotainment system, it soon becomes obvious that no single tool or technology can do the job. The home screen, which may contain controls for Internet radio, hands-free calls, HVAC, and other functions, might need an environment like Qt. The navigation app, for its part, will probably use OpenGL ES. Meanwhile, some applications might be based on Android or HTML5. Together, all these heterogeneous components make up the HMI.

The QNX CAR Platform embraces this heterogeneity, allowing developers to use the best tools and application environments for the job at hand. More to the point, it allows developers to blend multiple app technologies into a single, unified user interface, where they can all share the same display, at the same time.

To perform this blending, the platform employs several mechanisms, including a component called the graphical composition manager . This manager acts as a kind of universal framework, providing all applications, regardless of how they’re built, with a highly optimized path to the display.

For example, look at the following HMI:



Now look at the HMI from another angle to see how it comprises several components blended together by the composition manger:



To the left, you see video input from a connected media player or smartphone. To the right, you see a navigation application based on OpenGL ES map-rendering software, with an overlay of route metadata implemented in Qt. And below, you see an HTML page that provides the underlying wallpaper; this page could also display a system status bar and UI menu bar across all screens.

For each component rendered to the display, the graphical composition manager allocates a separate window and frame buffer. It also allows the developer to control the properties of each individual window, including location, transparency, rotation, alpha, brightness, and z-order. As a result, it becomes relatively straightforward to tile, overlap, or blend a variety of applications on the same screen, in whichever way creates the best user experience.

The middleware layer
The middleware layer provides applications with a rich assortment of services, including Bluetooth, multimedia discovery and playback, navigation, radio, and automatic speech recognition (ASR). The ASR component, for example, can be used to turn on the radio, initiate a Bluetooth phone call from a connected smartphone, or select a song by artist or song title.

I’ll drill down into several of these services in upcoming posts. For now, I’d like to focus on a fundamental service that greatly simplifies how all other services and applications in the system interact with one another. It’s called persistent/publish subscribe messaging, or PPS, and it provides the abstraction needed to cleanly separate high-level applications from low-level business logic and services.

PPS messaging provides an abstraction layer between system services and high-level applications

Let’s rewind a minute. To implement communications between software components, C/C++ developers must typically define direct, point-to-point connections that tend to “break” when new features or requirements are introduced. For instance, an application communicates with a navigation engine, but all connections enabling that communication must be redefined when the system is updated with a different engine.

This fragility might be acceptable in a relatively simple system, but it creates a real bottleneck when you are developing something as complex, dynamic, and quickly evolving as the design for a modern infotainment system. PPS addresses the problem by allowing developers to create loose, flexible connections between components. As a result, it becomes much easier to add, remove, or replace components without having to modify other components.

So what, exactly, is PPS? Here’s a textbook answer: an asynchronous object-based system that consists of publishers and subscribers, where publishers modify the properties of data objects and the subscribers to those objects receive updates when the objects have been modified.

So what does that mean? Well, in a car, PPS data objects allow applications to access services such as the multimedia engine, voice recognition engine, vehicle buses, connected smartphones, hands-free calling, and contact databases. These data objects can each contain multiple attributes, each attribute providing access to a specific feature — such as the RPM of the engine, the level of brake fluid, or the frequency of the current radio station. System services publish these objects and modify their attributes; other programs can then subscribe to the objects and receive updates whenever the attributes change.

The PPS service is programming-language independent, allowing programs written in a variety of programming languages (C, C++, HTML5, Java, JavaScript, etc.) to intercommunicate, without any special knowledge of one another. Thus, an app in a high-level environment like HTML5 can easily access services provided by a device driver or other low-level service written in C or C++.

I’m only touching on the capabilities of PPS. To learn more, check out the QNX documentation on this service.

The platform layer
The platform layer includes the QNX OS and the board support packages, or BSPs, that allow the OS to run on various hardware platforms.

An inherently modular and extensible architecture
A BSP may not sound like the sexiest thing in the world — it is, admittedly, a deeply technical piece of software — but without it, nothing else works. And, in fact, one reason QNX Software Systems has such a strong presence in automotive is that it provides BSPs for all the popular infotainment platforms from companies like Freescale, NVIDIA, Qualcomm, and Texas Instruments.

As for the QNX Neutrino OS, you could write a book about it — which is another way of saying it’s far beyond the scope of this post. Suffice it to say that its modularity, extensibility, reliability, and performance set the tone for the entire QNX CAR Platform. To get a feel for what the QNX OS brings to the platform (and by extension, to the automotive industry), I invite you to visit the QNX Neutrino OS page on the QNX website.