Showing posts with label Apps. Show all posts
Showing posts with label Apps. Show all posts

Tuesday, June 30, 2015

DevCon5 recap: building apps for cars

Tina Jeffrey
Last week I had the pleasure of presenting at the DevCon5 HTML5 & Mobile App Developers Conference, held at New York University in the heart of NYC. The conference was abuzz with the latest and greatest web technologies for a variety of markets, including gaming, TV, enterprise, mobile, retail, and automotive.

The recurring theme throughout the event was that HTML5 is mainstream. Even though HTML5 still requires some ripening as a technology, it is definitely the burgeoning choice for app developers who wish to get their apps onto as many platforms as possible, quickly and cost effectively. And when a developer is confronted with a situation where HTML5 falls short (perhaps a feature that isn’t yet available), then hybrid is always an option. At the end of the day, user experience is king, and developers need to design and ship apps that offer a great experience and keep users engaged, regardless of the technology used.

Mainstream mobile device platforms all have web browsers to support HTML5, CSS3, and JavaScript. And there’s definitely no shortage of mobile web development frameworks to build consumer and enterprise apps that look and perform like native programs. Many of these frameworks were discussed at the conference, including jQuery Mobile, Dojo Mobile, Sencha Touch, and Angular JS. Terry Ryan of Adobe walked through building a PhoneGap app and discussed how the PhoneGap Build tool lets programmers upload their code to a cloud compiler and automatically generate apps for every supported platform — very cool.

My colleague Rich Balsewich, senior enterprise developer at BlackBerry, hit a homerun with his presentation on the multiple paths to building apps. He walked us through developing an HTML5 app from end to end, and covered future features and platforms, including the automobile. A special shout-out to Rich for plugging my session “The Power of HTML5 in the Automobile” held later that afternoon.

My talk provided app developers with some insight into creating apps for the car, and discussed the success factors that will enable automakers to leverage mobile development — key to achieving a rich, personalized, connected user experience. Let me summarize with the salient points:

What’s needed

What we're doing about it

The automotive community wants apps, and HTML5 provides a common app platform for infotainment systems. We’ve implemented an HTML5 application framework in the QNX CAR Platform for Infotainment.
Automotive companies must leverage the broad mobile developer ecosystem to bring differentiated automotive apps and services to the car. We’re helping by getting the word out and by building a cloud-based app repository that will enable qualified app partners to get their apps in front of automotive companies. We plan to roll out this repository with the release of the QNX CAR Platform 2.1 in the fall.
The developer community needs standardized automotive APIs. We’re co-chairing the W3C Automotive and Web Platform Business Group, which has a mandate to create a draft specification of a vehicle data API. We’re also designing the QNX CAR Platform APIs to be Apache Cordova-compliant.
Automotive platform vendors must supply tools that enable app developers to build and test their apps. We plan to release the QNX CAR Platform 2.1 with open, accessible tooling to make it easy for developers to test their apps in a software-only environment.

Monday, June 29, 2015

Report from CTIA Wireless: Apps in the Car

You wouldn’t think that CTIA Wireless, a mobile show, would be a good venue for a car guy. But automotive journalist Doug Newcomb put together a set of panels that managed to attract everyone from the automotive industry who attended the show.

I met a good number of friends from a variety of automakers, tier one suppliers, and hardware and software vendors. I also had the distinct pleasure of participating in one of Doug's panels, which was moderated by Damon Lavrinc of WIRED.

The topic was the future of apps in the car, and it generated a spirited discussion. Panel participants included Geoff Snyder from Pandora, Michelle Avary from Toyota, Henry Bzeih from Kia, and Scott Burnell from Ford — all experts on the topic.

Andy speaking on the
apps panel. Videos of all
the panels are now online.
In general, we agreed: apps are coming to the car. They have already arrived in several cases, and it’s only a matter of time before they come to mass-market vehicles. And apps are not for North American alone: it's a worldwide phenomenon.

Mind you, we engaged in lively debate on a number of questions: What role does the mobile app developer play? How to deal with the fragmentation caused by different OEM app platforms? How to deal with driver distraction? And when will the "one man app" ever make it into the car? We all had good and varied opinions on these topics, and the session was very well received by the audience.

Derek Kuhn, QNX vice president of sales and marketing, also participated in a panel session, titled "Can we all just get along… for the consumer's sake?". That panel focused on how the industry as a whole can create a more seamless experience for the consumer. Derek's co-panelists included Mark Harland from GM, Leo McCloskey from Airbiquity, Brian Radloff from Nuance, and Niall Berkery from Telenav.

Did I mention? Videos of all the panels are now on Doug Newcomb's website — check them out!
 

Friday, June 26, 2015

The challenge of creating an (auto)mobile user experience

On March 12, I had the honor of joining a distinguished group of panelists at a luncheon for the Los Angeles Motor Press Guild. The panelists included:


The purpose of the panel was to share information on trends in the connected car space and in the automotive application ecosystem. The panel was well attended, with journalists from publications like the New York Times, and with representatives from companies like Alpine, Beats by Dr. Dre, Hyundai, and Toyota.

Two things stood out for me. First, the press really picked up on the need for solutions that can offer ease of use, upgradeability, and reliability while also reducing distraction and liability. Second, an expert witness hired by car companies to testify in Lemon Law suits told the panel that he was already being hired to provide testimony in cases involving in-vehicle electronics. He speculated that the technology described on the panel was going to “make him rich.”

His comments help illustrate a point. A car isn’t a mobile phone. OEMs and end-users may want the same kind of fresh and updateable experience that a phone can provide, but unlike a phone, an in-car infotainment system must be simple to use even while you’re driving down the highway. Such systems offer the ideal environment for a hard real-time OS that can also enable the latest consumer technologies and applications in a reliable and easy-to-use way.

Jim Pisz mentioned a sign he saw at the Geneva Motor Show. The sign said “Don’t Worry, Be Appy.” That sign makes me realize that the industry is at a crossroads. OEMs want access to consumer app developers and, in some cases, the apps themselves. At the same time they want a reliable solution that they won’t have to “worry” about. With QNX’s pedigree of reliability and amazing app ecosystem, we are uniquely positioned to help OEMs build “appy” cars, without the worry.

Thursday, June 25, 2015

AUTOMOBILE New webinar: Understanding mobile apps for the car

You're an app developer. You're looking for new opportunities. You were hoping, perhaps, that Web-connected refrigerators would be the next big thing. Being first to market with a fridge app — that would have been cool, right? I mean, literally.

Problem is, the market for fridge apps hasn't warmed up yet. I'm sure it will, though. But until then, why not the car? Cars are already connected. Car makers want to make them even more connected. And those cars will need apps, whether those apps are hosted on a phone, in the cloud, or in the car itself.

Interested? Intrigued?
Then set your calendar to the webinar happening this Thursday, June 28, at 1:00 pm ET. Here's the official synopsis:

Wouldn't your app look good here?
    Understanding Mobile Apps for Automotive
    Today's merger of mobile handsets and automotive platforms is creating a brand-new market for app developers. However there are many differences between a phone and car.
    This session provides an introduction to the automotive market for the app developer looking to get into this space. Learn how a car infotainment system is structured, UI considerations that help prevent driver distraction, why HTML5 promises to be the next killer development environment for the car, and more.


On the downside, you won't learn about apps for white goods.
But, because the webinar is hosted by my inimitable colleague Andy Gryc, who has actually written software for cars, you will get the straight goods. Which is, well, cool.

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:




Can I get a roadmap? Amen!

I attended SAE Convergence last week, and I've got a couple observations that I'll be blogging about. Here’s the first.

The Panel
On the second day of the show, I attended a very informative OEM panel moderated by Paul Hansen. Paul asked the automakers what their suppliers could do to help them build their infotainment systems. Alan Amici from Fiat said, "I would like suppliers to share their roadmaps," to which the other OEMs nodded in agreement. On the surface, this seems like a rather gentle, generic request. However, I think it's actually a powerful insight that signals a fundamental change in our industry. Mr. Amici took a cue from our former president Theodore Roosevelt, speaking softly but carrying a big stick. Let me elaborate.

The History
If you stepped back in our way-back machine to three years ago or earlier, you'd find a persistent pattern. Every OEM would fully spec every software feature of every module. Which meant that every Tier 1 and software supplier, including QNX Software Systems, would have to jump through hoops trying to cut, fold, and tear their existing software to meet those custom specs. It also meant building tons of new software on top to fill the gaps. The reasoning here is pretty simple — an automaker is building a custom system, so why not build something that reflects exactly what they want? In this environment, we always presented our software roadmap and the OEMs would look politely, but it rarely influenced their designs. Instead, we ended up providing a completely bespoke version of our software stack.

The Change
About two years ago, we started to notice a powerful undercurrent in automotive that bucks this trend. Why the change? OEMs absolutely need to create consumer relevant products, and to reduce the time required to release them. More and more, they need to reuse rather than re-invent. Several OEMs at the forefront of this trend have already been exploring this. How? By working directly with the Tier 1 and suppliers to design the system with an eye towards heavy reuse of existing technologies, instead of trying to design each system from the ground up.

The Apps
This effort to reuse instead of recreate will be necessary not just to reduce the time of delivery, but also to enable any type of cross-brand app experience. Apps that live in app stores require a consistent set of APIs. It’s very hard to do that if every single OEM is busy customizing and recreating every aspect of the system software. The “we’ll design our own” approach will result in fragmentation even worse than that experienced by the Android community. Unconstrained, it carries the threat of creating dozens of independent silos, with no ability to share apps between car makers. It means dilution of the already small automotive volume into even tinier markets — one for each automaker — which doesn’t bode well for anyone building automotive apps. OEMs will need to buck the desire to customize everything if they want to build a thriving app community.

The Punchline
When automakers are focused on their value-add, like HMI designs and custom features, instead of reinventing plumbing, it helps everyone. The OEMs, the tier ones, and the software suppliers benefit from using a consistent platform amongst themselves. So Mr/Ms Carmaker: would you like to see our roadmaps? We'd absolutely love to share them. We’d even like to help build them with you!

This post originally appeared in Andy's True Gryc blog.

Wednesday, June 24, 2015

AUTOMOBILE When will I get apps in my car?

I read the other day that Samsung’s TV application store has surpassed 10 million app downloads. That got me thinking: When will the 10 millionth app download occur in the auto industry as a whole? (Let’s not even consider 10 million apps for a single automaker.)

There’s been much talk about the car as the fourth screen in a person’s connected life, behind the TV, computer, and smartphone. The car rates so high because of the large amount of time people spend in it. While driving to work, you may want to listen to your personal flavor of news, listen to critical email through a safe, text-to-speech email reader, or get up to speed on your daily schedule. When returning home, you likely want to unwind by tapping into your favorite online music service. Given the current norm of using apps to access online content (even if the apps are a thin disguise for a web browser), this begs the question — when can I get apps in my car?

Entune takes a hands-free
approach to accessing apps.
A few automotive examples exist today, such as GM MyLink, Ford Sync, and Toyota Entune. But app deployment to vehicles is still in its infancy. What conditions, then, must exist for apps to flourish in cars? A few stand out:

Cars need to be upgradeable to accept new applications — This is a no-brainer. However, recognizing that the lifespan of a car is 10+ years, it would seem that a thin client application strategy is appropriate.

Established rules and best practices to reduce driver distraction — These must be made available to, and understood by, the development community. Remember that people drive cars at high speeds and cannot fiddle with unintuitive, hard-to-manipulate controls. Apps that consumers can use while driving will become the most popular. Apps that can be used only when the car is stopped will hold little appeal.

A large, unfragmented platform to attract a development community — Developers are more willing to create apps for a platform when they don't have to create multiple variants. That's why Apple maintains a consistent development environment and Google/Android tries to prevent fragmentation. Problem is, fragmentation could occur almost overnight in the automotive industry — imagine 10 different automakers with 10 different brands, each wanting a branded experience. To combat this, a common set of technologies for connected automotive application development (think web technologies) is essential. Current efforts to bring applications into cars all rely on proprietary SDKs, ensuring fragmentation.

Other barriers undoubtedly exist, but these are the most obvious.

By the way, don’t ask me for my prediction of when the 10 millionth app will ship in auto. There’s lots of work to be done first.

Tuesday, June 23, 2015

OnStar RemoteLink app comes to BlackBerry smartphones

This just in: The RemoteLink App from OnStar, which allows smartphone owners to remotely start their vehicles, check fuel levels, and lock or unlock their doors, is now available for the BlackBerry Bold 9900 and 9930 phones.

RemoteLink has been available for iPhone and Android phones, but many OnStar subscribers have asked for a BlackBerry version of the app. In response, Onstar wrote a new version for the BlackBerry platform, in HTML5.

“Writing the app using HTML5... positioned us to be more flexible supporting new phone operating systems,” said Steve Schwinke, director of advanced systems development for OnStar.
Opening screen
for RemoteLink

© GM Company 

In 2015, OnStar added navigation to RemoteLink, allowing users to search for a destination on their smartphone and send it directly to their vehicle. Users can then access the route through the QNX-powered OnStar system.

By leveraging OnStar’s connection to the vehicle, the app can report on oil levels, tire pressures, fuel level, and lifetime miles per gallon. It also offers remote commands, such as remote start, door lock/unlock, and horn/light activation.

According to OnStar, a total of 821,000 smartphone owners actively use the RemoteLink app.

To read OnStar's press release, click here. To download the RemoteLink app from BlackBerry App World, click here.

On a related note, here's a conversation between QNX's Andy Gryc and OnStar's Steve Schwinke. The topic: how HTML5 can benefit the auto industry.


 

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 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.

Sunday, June 21, 2015

ZENRIN Datacom integrates mobile navigation app with QNX CAR Platform

Don't know if you've noticed, but a variety of navigation software vendors have been integrating their solutions with the QNX CAR Platform for Infotainment. In the last few months alone, QNX has announced partnerships with Nokia HERE, Kotei Informatics, and AISIN AW — this in addition to its longstanding partnerships with navigation leaders like Elektrobit, TCS, and TeleNav.

The new partnerships are a boon to automakers and Tier 1 suppliers, especially those that target multiple geographies. More than ever, these companies can choose the navigation solution, or solutions, best suited to a given country or region.

The good news continues with ZENRIN DataCom, a leading provider of mapping services and products from Japan. ZENRIN is now integrating its Its-mo NAVI [Drive] 2015 application — which offers fuel prices, nearby parking spots, and other location-based features — with the QNX CAR Platform. In fact, ZENRIN and QNX demonstrated this integration last week at the Smartphone Japan conference in Tokyo.

The choice of venue may seem surprising, but it makes sense: Its-mo NAVI [Drive] is a smartphone app that, thanks to the collaboration between ZENRIN and QNX, can now run on head units as well. More to the point, this integration illustrates the benefit of building support for mobile app environments into a car infotainment platform: automakers can tap into a much larger developer community.

A spokesperson from ZENRIN DataCom says it best: “The automotive market in Japan and the rest of Asia is a vibrant and compelling environment for app developers but market volume is significantly lower than that for smartphones. A cross-platform concept is key as it enables apps to run on both smartphones and vehicle head units with minimal changes. The QNX CAR Platform, with its rich support for mobile application environments, is a very attractive feature for app developers in the mobile world.”

If you’d like more about ZENRIN and its navigation app, I invite you to read the press release and visit the ZENRIN website.

Saturday, June 20, 2015

So where is QNX going in automotive?

Want a short and sweet intro on what QNX is doing in the automotive industry? Then be sure to check out "A Look At The Near Future Of In-Car Technology," published this week in The Washington Post and in Motor Authority. (Same article in both cases, though Motor Authority has more pictures :-)

The article is based on an interview with my friend and colleague Andy Gryc. It covers the bases, from how QNX technology helps automakers project their brand identities to how it will enable a new generation of apps in the car.

Enough of my blather. Check out the article and let me know what you think.

Thursday, June 18, 2015

The ultimate show-me car

The fifth installment in the CES Cars of Fame series. Our inductee for this week: a most bodacious Bentley.

It's one thing to say you can do something. It's another thing to prove it. Which helps explain why we create technology concept cars.

You see, we like to tell people that flexibility and customization form the very DNA of the QNX CAR Platform for Infotainment. Which they do. But in the automotive world, people don't just say "tell me"; they say "show me". And so, we used the platform to transform a Bentley Continental GT into a unique concept car, equipped with features never before seen in a vehicle.

Now here's the thing. This is the same QNX CAR Platform found in the QNX reference vehicle, which I discussed last week. But when you compare the infotainment systems in the two vehicles, the differences are dramatic: different features, different branding, different look-and-feel.

The explanation is simple: The reference vehicle shows what the QNX CAR Platform can do out of the box, while the Bentley demonstrates what the platform lets you do once you add your imagination to mix. One platform, many possibilities.

Enough talk; time to look at the car. And let's start with the exterior, because wow:



The awesome (and full HD) center stack
And now let's move to the interior, where the first thing you see is a gorgeous center stack. This immense touchscreen features a gracefully curved surface, full HD graphics, and TI’s optical touch input technology, which allows a physical control knob to be mounted directly on the screen — a feature that’s cool and useful. The center stack supports a variety of applications, including a 3D navigation system from Elektrobit that makes full use of the display:



At 17 inches, the display is big enough to display other functions, such as the car’s media player or virtual mechanic, and still have plenty of room for navigation:



The awesome (and very configurable) digital instrument cluster
The instrument cluster is implemented entirely in software, though you would hardly know it — the virtual gauges are impressively realistic. More impressive still is the cluster’s ability to morph itself on the fly. Put the car in Drive, and the cluster will display a tach, gas gauge, temperature gauge, and turn-by-turn directions — the cluster pulls these directions from the center stack’s navigation system. Put the car in Reverse, and the cluster will display a video feed from the car’s backup camera. You can also have the cluster display the current weather and current sound track:



The awesome (and just plain fun) web app
The web app works with any web browser and allows the driver to view data that the car publishes to the cloud, such as fluid levels, tire pressure, brake wear, and the current track being played by the infotainment system. It even allows the driver to remotely start or stop the engine, open or close windows, and so on:



The awesome (and nicely integrated) smartphone support
The Bentley also showcases how the QNX CAR Platform enables advanced integration with popular smartphones. For instance, the car can communicate with a smartphone to stream music, or to provide notifications of incoming email, news feeds, and other real-time information — all displayed in a manner appropriate to the automotive context. Here's an example:



The awesome everything else
I’ve only scratched the surface of what the car can do. For instance, it also provides:

  • Advanced voice rec — Just say “Hello Bentley,” and the car’s voice recognition system immediately comes to life and begins to interact with you — in a British accent, of course.
     
  • Advanced multimedia system — Includes support for Internet radio.
     
  • Video conferencing with realistic telepresence — Separate cameras for the driver and passenger provide independent video streams, while fullband voice technology from QNX offers expanded bandwidth for greater telepresence.
     
  • LTE connectivity — The car features an LTE radio modem, as well as a Wi-Fi hotspot for devices you bring into the car.

Moving pictures
Okay, time for some video. Here's a fun look at the making of the car:



And here's a run-through of the car's many capabilities, filmed by our friends at TI during 2015 CES:





Wednesday, June 17, 2015

AUTOMOBILE Finally, I can throw away my 8 tracks

Okay, maybe I'm not old enough to have owned 8-track tapes. But I do remember that my uncle had an 8-track player in the dash of his station wagon when I was a kid, and I am old enough to have owned a car with a cassette player.

Music has been fundamental to the driving experience for about as long as cars have been on the road. Terrestrial radio dominated forever, supplemented by tape and then CD. XM radio came along in 2001 and connecting your iPod started to show up in the late 2000s. That's 5 formats since the Model T was introduced in 1908 (okay, so it didn't  have a radio) and 3 formats in the first 90 years.

Now, with connected cars becoming a reality, the rate of change is shifting into overdrive. Want Pandora – check. Want to listen to the top alternative radio station in Dublin while driving in California – check. Want to keep listening to your Songza programming as you move from the house to the car – check.

Today's announcement from QNX and 7Digital adds a whole new dimension. Having 7Digital in the car will unify the music ownership experience across the big three: car, pocket, and home. Want to listen to your own music programming in the car – check. Want to buy a song you just heard on that Dublin radio station – check.

Read the press release for details. And when you're done, check out the 7digital blog.

Tuesday, June 16, 2015

AUTOMOBILE Ontario tech companies team up to target the connected car

To predict who will play a role tomorrow's connected vehicles, you need to look beyond the usual suspects.

When someone says “automobile,” what’s the first word that comes to mind? Chances are, it isn’t Ontario. And yet Ontario — the Canadian province that is home to QNX headquarters — is a world-class hub of automotive R&D and manufacturing. Chrysler, Ford, General Motors, Honda, and Toyota all have plants here. As do 350 parts suppliers. In fact, Ontario produced 2.5 million vehicles in 2015 alone.

No question, Ontario has the smarts to build cars. But to fully appreciate what Ontario has to offer, you need to look beyond the usual suspects in the auto supply chain. Take QNX Software Systems, for example. Our roots are in industrial computing, but in the early 2000s we started to offer software technology and expertise to the world’s automakers and tier one suppliers. And now, a decade later, QNX offers the premier platform for in-car infotainment, with deployments in tens of millions of vehicles.

QNX Software Systems is not alone. Ontario is home to many other “non-automotive” technology companies that are playing, or are poised to play, a significant role in creating new automotive experiences. But just who are these companies? The Automotive Parts Manufacturers Association (APMA) of Canada would like you to know. Which is why they've joined forces with QNX and other partners to build the APMA Connected Vehicle.

A showcase for Ontario technology.
The purpose of the vehicle is simple: to showcase how Ontario companies can help create the next generation of connected cars. The vehicle is based on a Lexus RX350 — built in Ontario, of course — equipped with a custom-built infotainment system and digital instrument cluster built on QNX technology. Together, the QNX systems integrate more than a dozen technologies and services created in Ontario, including gesture recognition, biometric security, emergency vehicle notification, LED lighting, weather telematics, user interface design, smartphone charging, and cloud connectivity.

Okay, enough from me. Time to nuke some popcorn, dim the lights, and hit the Play button:



AUTOMOBILE HTML5 SDK for the QNX CAR 2 platform — the back story

Kerry Johnson
Today, at SAE Convergence, QNX Software Systems announced the new HTML5 SDK for the QNX CAR 2 application platform. I’d like to provide some insight into this announcement, describe what you can expect to find in the SDK, and explain how it builds on the HTML5 capabilities already available in the QNX CAR 2 application platform.

Enabling apps for the car
Almost every consumer who owns a smart phone or tablet is familiar with the app experience: you go to an online marketplace, find apps of interest, and download them onto your device. With the HTML5 SDK, the automotive team at QNX is creating an analogous experience for the car.

Just as Apple, Android, and RIM provide SDKs to help vendors develop apps for their mobile platforms, QNX has created an SDK to help vendors to build apps for the QNX CAR 2 application platform. The closest analogies you will find to our HTML5 SDK are Apache Cordova and PhoneGap, both of which provide tools for creating mobile apps based on HTML5, CSS, JavaScript, and other web technologies.

App developers want to see the largest possible market for their apps. To that end, QNX also announced today that it will participate in the W3C’s Web and Automotive Workshop. The workshop aims to achieve industry alignment on how HTML5 is used in the car and to find common interfaces to reduce platform fragmentation from one automaker to the next. Obviously, app developers would like to see a common auto platform, while automakers want to maintain their differentiation. Thus, we believe the common ground achieved through W3C standardization will be important.

It bears mentioning that, unlike phone and tablet apps, car apps must offer a user experience that takes driver safety into consideration. This is a key issue, but beyond the scope of this post, so I won’t dwell on it here.

So what’s in the SDK, anyway?
As in any SDK, app developers will find tools to build and debug applications, and APIs that provide access the underlying platform. Specifically, the SDK will include:

  • APIs to access vehicle resources, such as climate control, radio, navigation, and media playback
  • APIs to manage the application life cycle: start, stop, show, hide, etc.
  • APIs to discover and launch other applications
  • A packaging tool to combine application code (HTML, CSS, JavaScript) and UI resources (icons, images, etc.) with QNX CAR APIs to create an installable application – a .bar file
  • A emulator for the QNX CAR 2 platform to test HTML5 applications
  • Oh yeah, and documentation and examples

The development and deployment flow looks something like this:




Emulator and debugging environment
The QNX automotive team has extended the Ripple emulator environment to work with the QNX CAR 2 application platform. Ripple is an emulation environment originally designed for BlackBerry smart phones that RIM has open sourced on github.

Using this extended emulator, application developers can test their applications with the correct screen resolution and layout, and watch how their application interacts with the QNX CAR 2 platform APIs. For example, consider an application that controls audio in a car: balance, fade, bass, treble, volume, and so on. The screenshot below shows the QNX CAR 2 screen for controlling these settings in the Ripple emulator.


Using the Ripple emulator to test an audio application. Click to magnify.

In this example, you can use the onscreen controls to adjust volume, bass, treble, fade, and balance; you can also observe the changes to the underlying data values in the right-hand panel. And you can work the other way: by changing the controls on the right, you can observe changes to the on-screen display. The Ripple interface supports many other QNX CAR 2 features; for examples, see the QNX Flickr page.

You can also use the emulator in conjunction with the Web Inspector debugger to do full source-code debugging of your Javascript code.

Creating native services
Anyone who has developed software for the QNX Neutrino OS knows that we offer the QNX Momentics Tool Suite for creating and testing C and C++ applications. With the QNX CAR 2 application platform, this is still the case. Native-level services are built with the QNX Momentics suite, and HTML5 applications are built with our new HTML5 SDK. We've decided to offer the suite and the SDK as separate packages so that app developers who need to work only in the HTML5 domain needn't worry about the QNX Momentics Tool Suite and vice versa. Together, these toolkits allow you to create HTML5 user interface components with underlying native services, where required.

Thursday, June 11, 2015

Moving beyond the browser: HTML5 as an automotive app environment

If you’ve already visited this blog, you’ll know that we are bullish on HTML5 as a way to implement infotainment system HMIs. Not surprisingly, I’ve spent a fair amount of time searching the Web for facts and opinions on using HTML5 in the car, to see how this idea is catching on.

Overall, people see numerous benefits, such as the ability to leverage mobile app development to keep pace with the consumer demands, the availability of a large pool of knowledgeable developers, and the attractiveness of a truly open specification supported by many possible vendors.

But when it comes to the challenges of making HTML5 a reality in the car, I found a common thread of questions, mostly rooted in the erroneous belief that an HTML5 application environment is “just a browser.” Everyone is familiar with the concept of a browser, so it’s easy to see why people take this point of view.

So what are the key differences between a browser and an HTML5 application environment? Here’s my quick view.

The experience
Everyone is familiar with the browser experience. You navigate to a web site through bookmarks, a search engine, or direct entry of a URL. The browser implements a user interface (aka the chrome) around a rendering engine and provides bookmarks, URL entry, back and forward, scrolling and panning, and other familiar features.

An automotive HMI based on HTML5 provides a different experience — just look at the accompanying screen shots and decide for yourself if they look like a browser. In fact, the user experience of an HTML5-based HMI is similar to that of any other purpose-built HMI. It can consist of a main screen, window management, navigation controls, and other typical user interface widgets.


A radio tuner and a media player from the QNX CAR 2 application platform. Both apps are based on HTML5, but beyond that, they neither act nor look like a web browser.

A system that uses an HTML5-based HMI can include:

  • core applications that look and act like native applications
     
  • add-on (downloaded and installed) applications that have controlled interfaces to the underlying hardware
     
  • “web link” applications that simply link to a cloud-hosted application that can be downloaded on demand and cached

The web link approach makes it easy to update applications: just update the server and the remote client systems will automatically pull the application when needed.

Local resources
Web browsers pull text, images, and other content from the web and render it on the user’s machine. The process of loading this remote content accounts for much of the user’s wait time. This paradigm changes with a local HTML5 application environment — because resources can exist locally, images and other components can load much more quickly.

What’s more, screens and user interfaces can be designed to fit the platform’s display characteristics. There is no need for panning and scrolling, and only limited need for zooming. Resources such as RAM can be optimized for this experience.

Security and sandboxing
Browsers load content and executable JavaScript code dynamically. This really is the power of the web technologies. The problem is, dynamically loaded code represents a threat to an embedded platform.

Browsers are designed to be sandboxed. By default, JavaScript code can execute only in the context of a browser engine, and cannot access the underlying operating system primitives and hardware. This approach changes in an HTML5 application environment. To give JavaScript code the ability to behave like a native application, the environment needs interfaces to the underlying OS through to the hardware. Plugins are used to implement these HTML5-to-OS interfaces.

Nonetheless, access to the underlying platform must be carefully controlled. Hence, a security scheme forms a critical component of the HTML5 application environment.

Application packaging
The app experience has become familiar to anyone who owns a smartphone or tablet. An HTML5 application environment in the car can also support this kind of experience: developers create and sign application packages, and users can download those packages from an application store. In an automotive context, authenticity of the applications and control over what they can or cannot do is critical. Again, a security model that enforces this forms a key part of the HTML5 application environment.

So, how should you think of an HTML5 application environment?
From my perspective, an HTML5 environment is like any other traditional HMI toolkit, but with much more flexibility and with inherent support for connected applications. In an HTML5 application environment, you can find technologies similar to those of any proprietary toolkit, including:

  • a rendering engine (HTML5 rendering engine)
  • a set of content authoring and packaging tools
  • layout specifications (HTML5 and CSS3)
  • a programming language (JavaScript)
  • an underlying data model (DOM)

The difference is, these components are developed with a web experience in mind. This, to me, is the most significant benefit: the web platform is open, scalable, and well understood by countless developers.

Is this the most jazzed-up Jeep ever to hit CES?

The fourth installment in the CES Cars of Fame series. Our inductee for this week: a Jeep that gets personal.

Paul Leroux
It might not be as hip as the Prius or as fast as the Porsche. But it's fun, practical, and flexible. Better yet, you can drive it just about anywhere. Which makes it the perfect vehicle to demonstrate the latest features of the QNX CAR Platform for Infotainment.

It's called the QNX reference vehicle, and it's been to CES in Las Vegas, as well as to Detroit, New York City, and lots of places in between. It's our go-to vehicle for whenever we want to hit the road and showcase our latest infotainment technology. It even made a guest appearance at IBM's recent Information On Demand 2015 Big Data conference, where it demonstrated the power of connecting cars to the cloud.

The reference vehicle, which is based on a Jeep Wrangler, serves a different purpose than our technology concept cars. Those vehicles take the QNX CAR Platform as a starting point to demonstrate how the platform can help automakers hit new levels of innovation. The reference vehicle plays a more modest, but equally important, role: to show what our the platform can do out of the box.

For instance, we updated the Jeep recently to show how version 2.1 of the QNX CAR Platform will allow developers to blend a variety of application and HMI technologies on the same display. In this case, the Jeep's head unit is running a mix of native, HTML5, and Android apps on an HMI built with the Qt application framework:



Getting personal
We also use the Jeep to demonstrate the platform's support for customization and personalization. For instance, here is the first demonstration instrument cluster we created specifically for the Jeep:



And here's a more recent version:



These clusters may look very different, but they share the same underlying features, such as the ability to display turn-by-turn directions, weather updates, and other information provided by the head unit.

Keeping with the theme of personalization, the Jeep also demonstrates how the QNX CAR Platform allows developers to create re-skinnable HMIs. Here, for example, is a radio app in one skin:



And here's the same app in a different skin:



This re-skinnability isn't just cool; it also demonstrates how the QNX CAR Platform can help automotive developers create a single underlying code base and re-use it across multiple vehicle lines. Good, that.

Getting complementary
The Jeep is also the perfect vehicle to showcase the ecosystem of complementary apps and services integrated with the QNX CAR Platform, such as the (very cool) street director navigation system from Elektrobit:



To return to the question, is this really the most jazzed-up Jeep to hit CES? Well, it will be making a return trip to CES in just a few weeks, with a whole new software build. So if you're in town, drop by and let us know what you think.

Tackling fragmentation with a standard vehicle information API

Tina Jeffrey
Has it been a year already? In February 2015 QNX Software Systems became a contributing member of the W3C’s Automotive Web Platform Business Group, which is dedicated to accelerating the adoption of Web technologies in the auto industry. Though it took a while to rev up, the group is now in full gear and we’re making excellent progress towards our first goal of defining a vehicle information API for passenger vehicles.

The plan is to establish a standard API for accessing speed, RPM, tire pressure, and other vehicle data. The API will enable consistent app development across automakers and thereby reduce the fragmentation that affects in-vehicle infotainment systems. Developers will be able to use the API for apps running directly on the head unit as well as for apps running on mobile devices connected to the head unit.

Parallel processing
Let me walk you through our work to date. To get started, we examined API specifications from four member organizations: QNX, Webinos, Intel, and GENIVI. Next, we collected a superset of the attributes from each spec and categorized each attribute into one of several functional groups: vehicle information, running status, maintenance, personalization, driving safety, climate/environment, vision systems, parking, and electric vehicles. Then, we divvied up these functional groups among teams who worked in parallel: each team drafted an initial API for their allotted functional group before sharing it with the members at large.

Throughout this effort, we documented a set of API creation guidelines to capture the intent and reasoning behind our decisions. These guidelines cover details such as data representation, attribute value ranges and increments, attribute naming, and use of callback functions. The guidelines also capture the rules that govern how to grow or extend the APIs, if and when necessary.

Driving towards closure
In December the business group editors began to pull the initial contributions into a single draft proposal. This work is progressing and will culminate in a member’s face-to-face meeting mid-March in Santa Clara, California, where we will review the draft proposal in its entirety and drive this first initiative towards closure.

I’m sure there will be lots more to talk about, including next potential areas of focus for the group. If you're interested in following our progress, here’s a link to the draft API.

Enjoy!

Wednesday, June 10, 2015

Tech-nimble

After working more than 20 years in high tech, I've settled on a mantra: This too shall pass. (Hey, I didn’t say it was original!) To that end, patience is critical, as is flexibility. And ultimately, success depends less on predicting technology trends and more on responding to them. You've got to be tech-nimble, which requires not only the willingness to change, but the technology to accommodate — and profit from — that change.

Yesterday, Adobe announced a restructuring based on a change in direction, from mobile Flash to HTML5. Some might consider this development as proof that Adobe lost the battle to Steve Jobs. But to my mind, they've simply recognized a trend and responded decisively. Adobe has built a product portfolio based heavily on tooling, including tools for HTML5 development. So they definitely fall into the tech-nimble category.

QNX has an even greater responsibility to remain tech-nimble because so many OEMs use our technology as a platform for their products. Our technology decisions have an impact that ripples throughout companies building in-car infotainment units, patient monitoring systems, industrial terminals, and a host of other devices.

So back to the Flash versus HTML 5 debate. QNX is in a great position because our universal application platform approach enables us to support new technologies quickly, with minimal integration effort. This flexibility derives in part from our underlying architecture, which allows OS services to be cleanly separated from the applications that access them.

Today, our platform supports apps based on technologies such as Flash, HTML5, Qt, native C/C++, and OpenGL ES. More to the point, it allows our customers to seamlessly blend apps from multiple environments into a single, unified user experience.

Now that’s tech-nimble.