Showing posts with label HTML5. Show all posts
Showing posts with label HTML5. 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.

My top moments of 2015 — so far

Paul Leroux
Yes, I know, 2015 isn’t over yet. But it’s been such a milestone year for our automotive business that I can’t wait another two months to talk about it. And besides, you’ll be busy as an elf at the end of December, visiting family and friends, skiing the Rockies, or buying exercise equipment to compensate for all those holiday carbs. Which means if I wait, you’ll never get to read this. So let’s get started.


We unveil a totally new (and totally cool) technology concept car
Times Square. We were there.
It all began at 2015 CES, when we took the wraps off the latest QNX technology concept car — a one-of-a-kind Bentley Continental GT. The QNX concept team outfitted the Bentley with an array of technologies, including a high-definition DLP display, a 3D rear-view camera, cloud-based voice recognition, smartphone connectivity, and… oh heck, just read the blog post to get the full skinny.

Even if you weren’t at CES, you could still see the car in action. Brian Cooley of CNET, Michael Guillory of Texas Instruments, the folks at Elektrobit, and Discovery Canada’s Daily Planet were just some of the individuals and organizations who posted videos. You could also connect to the car through a nifty web app. Heck, you could even see the Bentley’s dash on the big screen in Times Square, thanks to the promotional efforts of Elektrobit, who also created the 3D navigation software for the concept car.

We ship the platform
We wanted to drive into CES with all cylinders firing, so we also released version 2.0 of the QNX CAR Platform for Infotainment. In fact, several customers in the U.S., Germany, Japan, and China had already started to use the platform, through participation in an early access program. Which brings me to the next milestone...

Delphi boards the platform
The first of many.
Also at CES, Delphi, a global automotive supplier and long-time QNX customer, announced that version 2.0 of the QNX CAR Platform will form the basis of its next-generation infotainment systems. As it turned out, this was just one of several QNX CAR customer announcements in 2015 — but I’m getting ahead of myself.

We have the good fortune to be featured in Fortune
Fast forward to April, when Fortune magazine took a look at how QNX Software Systems evolved from its roots in the early 1980s to become a major automotive player. Bad news: you need a subscription to read the article on the Fortune website. Good news: you can read the same article for free on CNN Money. ;-)

A music platform sets the tone for our platform
In April, 7digital, a digital music provider, announced that it will integrate its 23+ million track catalogue with the QNX CAR Platform. It didn't take long for several other partners to announce their platform support. These include Renesas (R-Car system-on-chip for high-performance infotainment), AutoNavi (mobile navigation technology for the Chinese market), Kotei (navigation engine for the Japanese market), and Digia (Qt application framework).

We stay focused on distraction
Back in early 2015, Scott Pennock of QNX was selected to chair an ITU-T focus group on driver distraction. The group’s objective was serious and its work was complex, but its ultimate goal was simple: to help reduce collisions. This year, the group wrapped up its work and published several reports — but really, this is only the beginning of QNX and ITU-T efforts in this area.

We help develop a new standard
Goodbye fragmentation; hello
standard APIs.
Industry fragmentation sucks. It means everyone is busy reinventing the wheel when they could be inventing something new instead. So I was delighted to see my colleague Andy Gryc become co-chair of the W3C Automotive and Web Platform Business Group, which has the mandate to accelerate the adoption of web technologies in the car. Currently, the group is working to draft a standard set of JavaScript APIs for accessing vehicle data information. Fragmentation, thy days are numbered.

We launch an auto safety program
A two-handed approach to
helping ADAS developers.
On the one hand, we have a 30-year history in safety-critical systems and proven competency in safety certifications. On the other hand, we have deep experience in automotive software design. So why not join both hands together and allow auto companies to leverage our full expertise when they are building digital instrument clusters, advanced driver assistance systems (ADAS), and other in-car systems with safety requirements?

That’s the question we asked ourselves, and the answer was the new QNX Automotive Safety Program for ISO 26262. The program quickly drew support from several industry players, including Elektrobit, Freescale, NVIDIA, and Texas Instruments.

We jive up the Jeep
A tasty mix of HTML5 & Android
apps, served on a Qt interface,
with OpenGL ES on the side.
If you don’t already know, we use a Jeep Wrangler as our reference vehicle — basically, a demo vehicle outfitted with a stock version of the QNX CAR Platform. This summer, we got to trick out the Jeep with a new, upcoming version of the platform, which adds support for Android apps and for user interfaces based on the Qt 5 framework.

Did I mention? The platform runs Android apps in a separate application container, much like it handles HTML5 apps. This sandboxed approach keeps the app environment cleanly partitioned from the UI, protecting both the UI and the overall system from unpredictable web content. Good, that.

The commonwealth’s leader honors our leader
I only ate one piece. Honest.
Okay, this one has nothing to do with automotive, but I couldn’t resist. Dan Dodge, our CEO and co-founder, received a Queen Elizabeth II Diamond Jubilee Medal in recognition of his many achievements and contributions to Canadian society. To celebrate, we gave Dan a surprise party, complete with the obligatory cake. (In case you’re wondering, the cake was yummy. But any rumors suggesting that I went back for a second, third, and fourth piece are total fabrications. Honestly, the stories people cook up.)

Mind you, Dan wasn’t the only one to garner praise. Sheridan Ethier, the manager of the QNX CAR development team, was also honored — not by the queen, but by the Ottawa Business Journal for his technical achievements, business leadership, and community involvement.

Chevy MyLink drives home with first prize — twice
There's nothing better than going home with first prize. Except, perhaps, doing it twice. In January, the QNX-based Chevy MyLink system earned a Best of CES 2015 Award, in the car tech category. And in May, it pulled another coup: first place in the "Automotive, LBS, Navigation & Safe Driving" category of the 2015 CTIA Emerging Technology (E-Tech) Awards.

Panasonic, Garmin, and Foryou get with the platform
Garmin K2 platform: because
one great platform deserves
another.
August was crazy busy — and crazy good. Within the space of two weeks, three big names in the global auto industry revealed that they’re using the QNX CAR Platform for their next-gen systems. Up first was Panasonic, who will use the platform to build systems for automakers in North America, Europe, and Japan. Next was Foryou, who will create infotainment systems for automakers in China. And last was Garmin, who are using the platform in the new Garmin K2, the company’s infotainment solution for automotive OEMs.

And if all that wasn’t cool enough…

Mercedes-Benz showcases the platform
Did I mention I want one?
When Mercedes-Benz decides to wow the crowds at the Frankfurt Motor Show, it doesn’t settle for second best. Which is why, in my not so humble opinion, they chose the QNX CAR Platform for the oh-so-desirable Mercedes-Benz Concept S-Class Coupé.

Mind you, this isn’t the first time QNX and Mercedes-Benz have joined forces. In fact, the QNX auto team and Mercedes-Benz Research & Development North America have collaborated since the early 2000s. Moreover, QNX has supplied the OS for a variety of Mercedes infotainment systems. The infotainment system and digital cluster in the Concept S-Class Coupé are the latest — and arguably coolest — products of this long collaboration.

We create noise to eliminate noise
Taking a sound approach to
creating a quieter ride.
Confused yet? Don’t be. You see, it’s quite simple. Automakers today are using techniques like variable cylinder management, which cut fuel consumption (good), but also increase engine noise (bad). Until now, car companies have been using active noise control systems, which play “anti-noise” to cancel out the unwanted engine sounds. All fine and good, but these systems require dedicated hardware — and that makes them expensive. So we devised a software product, QNX Acoustics for Active Noise Control, that not only out-performs conventional solutions, but can run on the car’s existing audio or infotainment hardware. Goodbye dedicated hardware, hello cost savings.

And we flub our lines on occasion
Our HTML5 video series has given companies like Audi, OnStar, Gartner, TCS, and Pandora a public forum to discuss why HTML5 and other open standards are key to the future of the connected car. The videos are filled with erudite conversation, but every now and then, it becomes obvious that sounding smart in front of a camera is a little harder than it looks. So what did we do with the embarrassing bits? Create a blooper reel, of course.

Are these bloopers our greatest moments? Nope. Are they among the funniest? Oh yeah. :-)

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.



HTML5 blooper reel

I find bloopers infinitely amusing — mind you I’m talking about those that come on a reel, not those that happen for real. Missed deadlines, cost over-runs, IP disputes — these are the bloopers we all could do without.

Helping customers avoid bloopers is what we do — so to speak. Except it seems, when we put them in front of the camera. <grin>

Seriously though, no customers were hurt in the making of this video.



This compilation of bloopers from the HTML5 series highlights the professionalism of QNX customers, partners, and employees as well as their good nature.
 

Biff! Bap! Ker-Pow! It’s the BatBerry interview!

Paul Leroux interviews Tim Neil, a director of product management at RIM, who is building his very own Batmobile™. This project might sound like fun (and Tim assures us it is), but it also demands a wealth of skills, from welding to HTML5 programming.


Tim Neil
Tim, could you give us a quick overview of the BatBerry project?
The BatBerry combines my love of cars, Batman, and technology. I’ve always wanted to build this car and I’ve had a couple of unsuccessful attempts at creating a carputer. When RIM started creating a 7" tablet, I knew the time was right to bring all of these interests together.

How did you get started on this project?
I started my research about 15 years ago, trying to determine how and where to get started. For instance, I needed to track down the shifter, which is a throttle quadrant from a WWII US Navy bomber.

By 2010, I had finished modifying my custom Subaru WRX, and I needed to get started on something new — working on cars is my way of escaping and relaxing. The time was right, and I got the green light from my wife. Luckily for me, she knew of my desire to build this car when we met and it didn’t scare her away. :-)

The BatBerry, about a year after Tim launched his project
Reading your blog, I’m totally impressed by the scope of the BatBerry project — be it creating dashboard panels, writing control software, or building a retractable license plate. Do you do most of the work yourself?

Yes, I try to do as much of the work myself as possible. I leave important things that I don’t have experience in, like doing the frame stretch, to the professionals. I did the same thing building up my Subaru over the past 7 years: learning how to do body work, interior, stereo, engine modifications, etc. I like to learn things as I go and I’ve always had a knack for figuring out how things work. I always figure, what’s the worst thing that can happen? If screw up, I just have to try again.

To pull this off, you need to be a jack of all trades. I’m sure you had skills to begin with — but did you also have to pick up any along the way?
Welding is one of the biggest skills that I’ve picked up so far. I bought myself a welder, watched a couple of YouTube videos, and got to work. I can tell you, my welds look MUCH better now than my first ones. From all the welders I’ve talked to, it’s a skill that simply takes patience and practice.

Since I was a kid I have always been able to figure things out. When I was 8 years old I was wiring my bedroom up to have a switch on my headboard automatically open the door. The best way that I can describe to people how I see the world is by watching the movie Iron Man. When you see Iron Man’s computer JARVIS take an object and expand it out into a million pieces to show how it works, that’s what I see when I look at something.

Tim's other project a highly modified Subaru WRX
What kind of power plant does the BatBerry use? Have you modded it?
The car currently has a 305 4.3L L99 V8. I haven’t really modified it yet. I will likely go with a re-built version of the same engine so that I can re-use the ECU. I’m not looking to make this car into a high-performance hot rod — that’s where my Subaru comes in. Plus, it’s nice to drive distances not always looking for a gas station that serves 94 octane. :-)

The V8 puts out 200hp, which should be pretty good for the BatBerry, considering it is basically a frame with a 400-pound fiberglass body mounted to it. As long as it sounds nasty I’ll be happy. I have a couple of Flowmaster 40 series mufflers for it.

Anyone who reads this blog knows we are bullish on HTML5. So I was fascinated to hear that the BatBerry project has an HTML5 connection. Could you tell us about it?
As the former development manager for BlackBerry WebWorks at RIM, I wanted to show what could be done with HTML5 technology. I wanted to build an interface on my PlayBook and BlackBerry Smartphone that could control some of the systems of the car.

I also wanted to share as much code as possible between the Smartphone and PlayBook, and using WebWorks and HTML5 allows me to do this. These devices pair with a Bluetooth connection on an Arduino board to control a series of relays that raise and lower the 30-cal machine guns, open and close the canopy, raise and lower the suspension, and perform other functions.

All the source code for the project, including Arduino microcontroller code, is being shared in my BatBerry repo on github.


Sample screen captures of the BatBerry user interface

What has been your greatest challenge? And what are you most proud of, so far?
My biggest challenge has been finding time! I’ve been travelling for work more on weekends and while this winter was pretty mild, it was still a bit hard to head out into a freezing cold garage to put in a couple hours of work during the evenings.

I would say the two things I’m most proud of so far are my welding skills and my dash panels. I really wanted to give back something to others who have been building their own versions of this car. Screen-accurate dash panels were something missing from the community. In general, I really like to share what I’m doing so that others who want to do something similar can see what worked, and what didn’t work, for me.

The Discovery Channel has been tracking the BatBerry project. Do they plan to broadcast anything soon?
Nothing to air at the moment. The next step will be to get updated footage of some of the technology integration points. I’m getting close to being able to show the combination of HTM5, Arduino, and the machine guns to get some new footage. Once we reveal the car, filming will wrap up and go into post-production for airing sometime in the future on Daily Planet.

When you aren’t working on the BatBerry, what do you do?
I spend my spare time hanging out with my family, doing something with cars, or playing with technology. My daughter is a big Star Wars fan so she and I have been having some epic lightsaber battles lately. I’ve done a lot of car shows in the past with my Subaru and I really like meeting up and trading experiences with the car community around Toronto. At RIM, I direct the product management group responsible for developer tools, APIs, and SDKs — our focus is on removing barriers and adding features to make developers successful.

One more question: Which Batman character do you most identify with?
I would say Batman himself. While I’m not on the tipping point of insanity and looking to be a vigilante, I identify with the desire to make a difference. I also relate to the do-it-yourself attitude and the love of cool tech and cars. Plus, I’m just a geek at heart. :-)



To track the progress of the BatBerry project, check out Tim’s blog. You can also follow him on Twitter.

And while you’re at it, visit Tim’s YouTube channel. Here, for example, is a video showing the BatBerry’s replica machine guns:




Neither Tim Neil, his vehicle, nor Research In Motion (BlackBerry) are licensed by, endorsed by, sponsored by or affiliated with DC Comics or the owners of the “Batman” properties.
 

AUTOMOBILE Video: Talking HTML5 with Audi’s Mathias Halliger

Derek Kuhn
From the elegant look outside to the technology inside, Audi has some of the most advanced cars on the road today. At CES this year, I sat down with Mathias Halliger, head of architecture, MMI system, for Audi AG, to talk about some of this technology and how HTML5 will transform the infotainment systems found in their cars.

Mathias firmly believes that HTML5 is an automotive game changer because of the doors it can open for OEMs, technology providers, app developers, and consumers. So pass the popcorn and without further ado, here is the latest video in our HTML5 video series.


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
 

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.

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:




Tuesday, June 23, 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.

Sunday, June 21, 2015

Making your car a first-class citizen of the Web

Tina Jeffrey
Anyone who follows the latest ongoings of the Worldwide Web Consortium (W3C) may have heard today’s news: the launch of the Automotive and Web Platform Business group. We live in a connected world, and let’s face it, many of us expect access to our favorite applications and services while on the road. I see the formation of this W3C group as a huge step in the pursuit of marrying web technology and the automobile.

The business group will bring together developers, OEMs, automotive technology vendors — many of who, like QNX, were part of Web and Automotive Workshop held last November. The group allows us to continue the discussion and to define a vehicle data API standard for enabling automotive services via the Web. And this is just the start of greater things to come: standards for OTA (over-the-air) software updates, driver safety, security, and seamless integration of smart phones and tablets.

As a member of the QNX automotive team, I second my colleague Andy’s enthusiasm in the announcement in saying we’re extremely excited to be part of this group and the process of helping to define these standards for the industry.

Check out the W3C press release.



Tina is an automotive product marketing manager at QNX Software Systems

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.

Friday, June 19, 2015

AUTOMOBILE Is HTML5 a good gamble?

As the consumer and automotive worlds continue to collide, HTML5 looks like a good bet. And not a long shot either. In fact, the odds are all automakers will eventually use it. But since the standard won’t be mature for some time yet, should you take a chance on it now? 

To answer this, Andy Gryc talks to Matthew Staikos of RIM. Matthew is the manager of the browser and web platform group at RIM, and has over 10 years of software development experience with a strong focus on WebKit for mobile and embedded systems. Matthew co-founded Torch Mobile, which was acquired by RIM for their browser technology.

Andy’s conversation with Matthew is the subject of the following video, the second in an educational series designed to get an industry-wide perspective on HTML5. 




This interview of Matthew Staikos is the second in a series from QNX on HTML5.

Open standards, open source, and why the difference matters

As Andy Gryc reported in a previous post, Paul Hansen of the Hansen Report asked six automakers whether they plan to ship products based on the GENIVI open source platform. Not one of them said yes.

This underwhelming response to open source may seem surprising, especially to people outside of the auto industry. It seems even more surprising when you consider the many companies that belong to the GENIVI Alliance — a veritable who’s who of high-tech and automotive companies, from ARM to IBM to Volvo. Why the disconnect?

A couple of reasons come to mind. First, the automotive market is exceedingly competitive. Asking automakers to collaborate on a common OS platform — the GENIVI approach — is arguably a non-starter. Also, many automakers seem to grasp that open source OSs don't necessarily address the issues that matter to them most.

Allow me to explain. Automotive companies entertain the option of using open source for several reasons. They want to avoid vendor lock-in. They want to leverage a large developer community. They want to access a rich toolset. And, in many cases, they hope to avoid the costs of runtime licensing.

Yes, open source can help address these requirements. But more often than not, open standards offer a better route to achieving what automakers really need.

Vendor neutral, OS neutral, hardware neutral
Take the goal of avoiding vendor lock-in. An open standard is, by definition, vendor neutral. It is typically the product of a collaborative and transparent process free of domination by a single company or interest group. Likewise, it isn’t controlled or maintained by a single, self-interested entity. HTML 5, for instance, isn’t owned by any one company, but is a standard embraced by Apple, Google, Microsoft, Mozilla, QNX, and others.

HTML5 isn't just vendor neutral; it's also OS and hardware neutral. By using it as an HMI and application environment, automakers gain the freedom to choose the best OS platform for the job at hand, and the option to migrate across platforms, if required. In other words, HTML5 enables automakers to use the platform that can offer fastest boot speed, the highest reliability, the best mobile device integration, or the best performance on automotive silicon — things that can reduce costs and improve the user experience. (To put this another way, the underlying OS platform is anything but a commodity — a fact demonstrated every day in the mobile device world.)

An open source platform may or may not share these characteristics. Even though developers can access the source code, a single entity may still control the technology’s roadmap and licensing terms. In effect, the platform can constitute a single point of failure for the automaker — exactly what automakers try to avoid. Compare this to an open standard, which is defined collaboratively and then supported over a long period of time. POSIX, with its 20+ year history, comes to mind.

Also, open standards like HTML5 are unencumbered by the protective licensing terms often associated with open source OSs — terms that can lead to greater system costs and complexity. For instance, the GNU Public License (GPL) that governs use of the Linux OS ensures that any modifications to the original program are released as open source. That's a problem for any OEM that doesn’t want to “open source” its technology; for instance, vehicle bus information. It is also incompatible with the certifications and licenses of consumer device manufacturers whose licensing terms are designed to prevent integration of their code with GPL code bases; iPod support and integration is a good example. Such technologies must, as a result, be separated into another virtualized OS or onto external hardware modules. The result is a more expensive and more complex system — another thing that automakers try to avoid.

Delivering the goods
Of course, all this hinges on whether a standard like HTML5 can deliver the goods. And from my perspective, it does. For instance, it can provide all the capabilities of a traditional HMI toolkit, including a rendering engine, content authoring and packaging tools, and sophisticated graphic transitions. But unlike proprietary solutions, it can also help automakers:

  • tap into a vast pool of apps and developers
  • integrate with mobile devices
  • build user interfaces that incorporate virtually any delivery model
  • customize the UX and simplify access to mobile apps
  • customize apps and the UX for context: park, creep, drive, etc.

In addition, HTML5 can, with the right platform, work in concert with other HMI technologies (Adobe AIR, OpenGL ES, Qt, etc.) and blend seamlessly with those technologies on same display. As a result, system designers can choose the most appropriate technology for each application.

Incorporating open source
So is open source a total non-starter in automotive? Absolutely not.

In fact, many standards incorporate open source. Let us once again consider HTML 5. While it is built on an open standard, many HTML5 implementations are developed using open source solutions. For instance, many of the current, industry-leading HTML5 solutions are built on Webkit, an open source solution governed by the Lesser GNU Public License or LGPL.

The point is, the most successful solutions will combine the best that open standards, open source, and proprietary platforms have to offer. But if you were mandate an “open” solution, an open standard would be the best to rally behind.



If you're interested in this topic, we recommend you listen to the webinar that Andrew gave last week, "In-vehicle product differentiation: open standards vs open source." — Ed.

Marking over 5 years of putting HTML in production cars

Think back to when you realized the Internet was reaching beyond the desktop. Or better yet, when you realized it would touch every facet of your life. If you haven’t had that second revelation yet, perhaps you should read my post about the Twittering toilet.

For me, the realization occurred 11 years ago, when I signed up with QNX Software Systems. QNX was already connecting devices to the web, using technology that was light years ahead of anything else on the market. For instance, in the late 90s, QNX engineers created the “QNX 1.44M Floppy,” a self-booting promotional diskette that showcased how the QNX OS could deliver a complete web experience in a tiny footprint. It was an enormous hit, with more than 1 million downloads.

Embedding the web,
dot com style:

The QNX-powered Audrey
Also ahead of its time was the concept of a tablet computer that provided full web access. When I started at QNX, I was responsible for tablets, thin clients, and set-top boxes. The most successful of these pioneering devices was the 3COM Audrey kitchen tablet. It could send and receive email, browse the web, and sync to portable devices — incredibly sophisticated for the year 2000.

At the time, Don Fotsch, one of Audrey’s creators, coined the term “Internet Snacking” to describe the device’s browsing environment. The dot com crash in 2001 cut Audrey’s life short, but QNX maintained its focus on enabling a rich Internet experience in embedded devices, particularly those within the car.

The point of these stories is simple: Embedding the web is part of the QNX DNA. At one point, we even had multiple browser engines in production vehicles, including the Access Netfront engine, the QNX Voyager engine, and the OpenWave WAP Browser. In fact, we have had cars on the road with Web technologies since model year 2006.

With that pedigree in enabling HTML in automotive, we continue to push the envelope. We already enable unlimited web access with full browsers in BMW and other vehicles, but HTML in automotive is changing from a pure browsing experience to a full user experience encompassing applications and HMIs. With HTML5, this experience extends even to speech recognition, AV entertainment, rich animations, and full application environments — Angry Birds anyone?

People often now talk about “App Snacking,” but in the next phase of HTML 5 in the car, it will be "What’s for dinner?”!

 

Thursday, June 18, 2015

BBDevCon — Apps on BlackBerry couldn't be better

Unfortunately I joined the BBDevCon live broadcast a little too late to capture some of the absolutely amazing TAT Cascades video. RIM announced that TAT will be fully supported as a new HMI framework on BBX (yes, the new name of QNX OS for PlayBook and phones has been officially announced now). The video was mesmerizing — a picture album with slightly folded pictures falling down in an array, shaded and lit, with tags flying in from the side. It looked absolutely amazing, and it was created with simple code that configured the TAT framework "list" class with some standard properties. And there was another very cool TAT demo that showed an email filter with an active touch mesh, letting you filter your email in a very visual way. Super cool looking.

HTML5 support is huge, too — RIM has had WebWorks and Torch for a while, but their importance continues to grow. HTML5 apps provide the way to unify older BB devices and any of the new BBX-based PlayBooks and phones. That's a beautiful tie-in to automotive, where we're building our next generation QNX CAR software using HTML5. The same apps running on desktops, phones, tablets, and cars? And on every mobile device, not just one flavor like iOS or Android? Sounds like the winning technology to me.

Finally, they talked about the success of App World. There were some really nice facts to constrast with the negative press RIM has received on "apps". First some interesting comparisons: 1% of Apple developers made more than $1000, but 13% of BlackBerry developers made more than $100,000. Whoa. And that App World generates the 2nd most amount of money — more than Android. Also very interesting!

I can't do better than the presenters, so I'll finish up with some pics for the rest of the stats...