Ford Ditches Microsoft for QNX in Latest In-Vehicle Tech Platform
techcrunch.com
techcrunch.com
Apple and Google already solved the UI problem - you don't need to have the damned ugly in-car UI anymore. Just stick decent hardware with Android Auto and CarPlay support and be done with it. Make decent looking apps for each platform to provide functionality outside of platform supported features.
I just don't understand why on earth would Ford need to have their own system with QNX, WiFi updates and Maps that are not free. What problem does it solve that is worth solving at the expense of reinventing the wheel and making users deal with yet another system?
Edit: One way Ford to justify it is to think of the non-SmartPhone, non-Apple, non-Google users. Though in terms of numbers, at least in the US this bunch is a tiny minority. Ford could give them a Moto G free with every Car for not having to pay for QNX licensing fees, maps and updates etc.! OR they could limit the QNX based independent system to lower end cars and make the higher end ones compatible with Android Auto and CarPlay.
There's also the question of longevity - what if in 2017 Apple and Google stop being compatible with the older version of Carplay/Auto compatible implementation Ford shipped in their 2014 car? What if users switched to non-Apple, non-Android phones? In that case it would make the in-car system useless for the user. So given people use cars for way longer than SmartPhones - I guess it makes some sense for Ford to have an independent system.
Regardless they should still rid themselves of the NIH and stick with Android based UI and not have their own based on QNX. That part hardly makes sense.
It's a car. It's not going to have an app store. You don't want an app store. You don't need an app store.
QNX is a well-understood RTOS--look up "hard real time".
There's a lot more important things in a car for an OS than being able to display a notification on Facebook; things like deploying airbags, coordinating brakes, and all these other things.
I can cause my BMW's i-drive (CIC-HIGH NBT F20 2013) to completely crash if I perform a specific action. After fifteen seconds the system detects the freeze and reboots. The way the reboot occurs strongly suggests the reboot is performed by a hardware level supervisor. But the rest of the car continues to function.
Directly building a system on top of android instead of QNX or a custom linux distribution is certainly possible. Every approach here has some pros and cons. Keep in mind that not all of android is open source and available for everyone. You can't directly use a normal Android phone UI because it is not certified for in-car use (driver distraction regulations). But you could at least use it's UI framework and some of the widgets. For the widgets there is the question if you want them. If they started development 3-4 years ago and based on android you would now get a brand new Ford with a Android 2.3 UI. Wouldn't look sexy either and even less in some years from now. Therefore going with some custom UI can make sense.
> I just don't understand why on earth would Ford need to have their own system with QNX, WiFi updates and Maps that are not free.
I agree this is the wrong way to go about this, but rolling your own solution should not be indicative of NIH syndrome if existing options are sub-optimal.
You think risk-averse Ford would attract the same talent as a hot-as-shit disruptor with a large upside stock potential and the chance to "redefine the world"?
[1] http://9to5mac.com/2014/07/29/much-of-teslas-ui-design-team-...
I haven't seen a good example of those systems not sucking yet. Also, they require that you plug in your phone, which is really a downgrade from our current Bluetooth systems.
>Ford could give them a Moto G free with every Car for not having to pay for QNX licensing fees, maps and updates etc.!
Or they could just build the Moto G into the car! And now you are back to square one.
You also have to remember when SYNC was in the planning stages long before the public knew about it. I was part of the original team responsible for taking the whole concept to reality.
I can tell you that internally, it was one of the most well run software architecture teams I was ever apart of. The middle level managers really know how to run software teams which is not something you might expect from a big old automotive company.
But in many ways, our hands were tied. Recall about the time Bill Gates and Bill Ford riding around in a model-T. A lot of us didn't want Windows for automotive and were trying to champion Linux. Also, the iMX3 which was in the first generation SYNC modules was at the time a slow processor.
And to top things off, a fair bit of the software running on the SYNC module is not written by Ford. Ford partnered up with a crappy company called B-Squared.
The Maps are not Ford's either. When I was on the team, Ford had partnered with INRIX for Maps, traffic and direction.
SYNC is just not a simple single board computer with some apps running on it. There is an entire eco-system build around the SYNC module because it's connected to the vehicle networks (CAN Bus). Microsoft & Ford being partners (Windows servers in data center), Microsoft wanted to handle some of the software development but when Ford asked Microsoft to sign off on some legal agreement asking MS to take any and all responsibility for things like inadvertently deploying an air bag, they backed off.
Also, Ford SYNC as I said has an eco system of roughly 20-30 backend applications that support it. Some of these have to do with 911 assist and the TREAD act. The TREAD act is the US Federal Government's oversight on safety claims.
Because via SYNC you can report problems and have your vehicle serviced, their is a lot internal logic that keeps track of what is called EOL (End of Line) data about a vehicle which needs to funnel into TREAD act reporting.
Think about the not so long ago Toyota problem where they tried to blame floor mats for gas peddles getting stuck.
EDIT: Also, the GUI is not Microsoft CE native. The WindowsCE is just the OS running on the SYNC module. The GUI was Adobe ActionScript. Trust me, many of us yelled very loud about how stupid an idea this was but because B-Squared own the implementation (not the architecture), they were aloud to chose whatever they wanted to meet Ford specs. The results are a history less: JD Powers gave it SYNC poor ratings and many of us (myself included) got the hell out of dodge.
Middle managers, managing the day to day software architecture and specifications, were caught between a rock and a hard place with senior management (Allan Mullaly, Mark Fields, Bill Ford, Marcy Klevorn) pushing these partnership relationships we were forced to work within.
Just as Google and Apple do, QNX contains multiple open source components from other parties that QNX does not own the copyright to including code licensed under APACHE, BSD-2C, BSD-3C, BSD-OPENSSL, BSD-V, ISC-V, GPL2-EX2, MIT, MIT-V, MPL, MPL10, PYTHON, UL, ZLIB (this is copy-pasted from QNX's own open source license compliance documentation). Anyone can sue Ford directly for using those components just as they can with the use of Google or Apple software.
Now, if QNX itself provides a complete indemnification from both copyright and patent lawsuits arising from the use of said code and Apple and Google do not, that's a different story. But unless that is the case, Ford is no safer with QNX.
As an example, Ford is also a big Linux shop but they do not use any old Linux distro. They have partnered with Novell (SUSE Linux) who indemnifies them from all open source code found in the SUSE distribution.
When I was on Ford SYNC, no Google code ran on the module. The feature they are talking about is called Send To Sync and it's a web service where the SYNC module can receive a map planned on Google Maps. The mapping software in Ford SYNC is simply given the data output in the form of lat/long info.
I agree that Ford appears to consider the benefit of a QNX system high enough to accept the risk of patent lawsuit.
But as far as the Open Source indemnification goes - for the Android Auto use case it would be completely irrelevant right? That would be like suing Vizio for showing a pirated movie on the screen as far as I can tell.
For using AOSP - I can see that there may be some reservations there. But it is not unprecedented - Honda I think is using Android 4.0.4 to run their in-car system. Besides the biggest threat to Android from a patent / legal standpoint is Microsoft. Worst case Ford would pay up the $5 or whatever and still win on not paying QNX and having a better solution.
As for the dependencies / ecosystem - they could still support the older released models and start working with vendors/suppliers to get what they need supported on the new system. It's doable because presumably with the new Architecture - most things are either built in or you don't need those and people already have experience building what's missing. For example I don't see why they can't build the CAN Bus connectivity into Android in a way that it supports the same existing functionality.
I know it's work, money and risk but I think it would be towards a better outcome and there are some potential saving in not rebuilding everything from scratch and maintaining it and paying less royalties etc.
Keep in mind to add SYNC to your vehicle, it's $300 (or it was when it first came out). Cheap right? Ford is in the business to sell cars and what sells more cars, they want.
I'm not a lawyer, I see your point and was somewhat vocal on my own, but in my tenure I learned that Ford is a very successful company and they pay smart people to keep them out of trouble. I have to give Ford props for not taking any bail out money but I digress...
One more tid-bit I will add is that Ford never deals directly with the public. You get your vehicle serviced through dealerships.
So when Ford SYNC came out, they were trying to find away for customers to buy additional services via the SYNC system. This of course meant Ford had to now deal with the whole concept of accepting credit cards or finding a partner who knew how to accept credit cards.
As an architect on the team, one of my tasks was to assess the whole PCI compliance, what it would do to us if we got hacked, etc... In the early days, Ford tried to partner with PayPal to handle the credit card stuff but because Ford has a products it would collect for that are also provided by 3rd parties, it just made things very challenging. I'll spare the details but one of the issues I worked on was single sign on technology. You have a mix of technologies like WS-Federation, SAML, etc... and trying to get Ford and all the partners to adopt and stand up this stuff takes a L O N G time. Consider also some of these smaller companies don't have same budget as a Fortune-5 or even know what SAML is so you have a lot of educating going on too.
Best I can tell is that they're so tight with Microsoft (ex-employees, maybe?) so when a large F-100 class company wants an embedded GUI and goes to Microsoft first, MS sells them on WinCE and then points the client to B-Squared to finish the work.
Or maybe B-Squared is the only firm left still writing GUIs for WinCE.
Pepsi has had time to catch up and has recently launched Spire, their multi-flavor machine. They chose a simpler approach and skipped the whole microfluidic flavor cartridge thing. It's simply a revamped fountain/flavor dispenser with a new interface. It works just as well as Freestyle IMO, and actually has an advantage of using less physical space up front (but still needs the whole syrup stack behind the scenes)
Sadly, this is how GUI design is in a lot of larger companies. The corporation hires a design firm to flesh out the UI concepts and test them on customers, so they quickly storyboard stuff up in Illustrator and Adobe Flash/Shockwave/whatever.
The concepts get tested, everyone gives a thumbs up, and then the software team gets handed a bunch of precooked assets and wireframes and told "make it run."
Then it's up to the embedded guys to make the system fly, except either a) the design firm has created graphics and animations so complex the underpowered hardware (designed and certified years ago on the last h/w cycle) can't make it go or b) the design guys took way too long in testing and focus groups so now the software guys are under the gun and instead of a rewrite/port, they port a crappy FlashLite player to the target hardware and cross their fingers.
Granted, that's no ActionScript, but very much a prototype being pressed into duty.
Agreed that the actual GUI is atrocious and clunky. The way it deals with text messages is hilarious. Really I just pretend it doesn't exist and I'm happy.
I had to work with some of those folks after they left B-Squared. Ugh. I shouldn't have to explain why you shouldn't just dump everything in the master branch, how to write a unit test, or why it's a bad idea to pull builds for app store submission from a random dev's machine. But I did. Which went a long way in explaining my horrific experience with the SYNC-enabled Ford I rented once. To someone not versed in the basics of professional software development, choosing embedded Adobe Flash probably seems like a good idea.
If you interested in the flight industry, something I've been looking at too:
Check out Disti (www.disti.com). Disiti is a company with an HMI(Human Machine Interface) that is gaining a lot of attention and they came out of a military flight industry. Their displays are in the Apache helicopter and the Virgin Atlantic Space Ship as a couple of their selling points. Because of their military involvement, everything they do is ISO26262 compliant which is attractive to the automotive space.
Don't forget that after all your math and science and engineering efforts are over, it still comes down to who knows whom. I'm not trying to be cynical, I'm trying to say: Plan for your end game. Don't fool yourself about the actual nature of that end game; it is not technical.
Ford had another venture with DWalt (the tool company) and they partnered with Magneti Marelli who did most of the work. I wasn't involved in that project, but that endeavor was a situation where Ford basically said here some dashboard space and a list of specs., make it work. This system was called Ford Works.
Are you saying that the navigation and entertainment system in Ford vehicles is not isolated from the critical safety systems? If that's the case I hardly think sluggish interaction is the biggest problem.
The fact that any safety critical systems just die when the key comes out of the ignition, while moving at high speeds, is even more damning, IMO.
My point though is that the fact cars would be that fragile at all, that simple mistakes could disable critical systems, is bizarre. The MP3 player system should be totally unable to affect other operations, full stop. The ignition system shouldn't be able to kill power to critical systems.
Airplane passengers shouldn't be able to access flight controls.
It is crazy because it's not as though a CAN or LIN bus is an expensive thing. It has been discussed ad nauseam that the option systems need to be segregated from the critical systems, and as far as I was aware, the entertainment / option systems were segregated.
Some bad designs might neglect those guidelines and build everything in one box to save costs. However I hope that those only happens in the cheapest offerings.
However I think the discussion between Ford and MS could be more due to political reasons. Automotive OEMs like to put all risks (whether likely or unlikely) to their suppliers and make them liable. Changes from standard automotive contracts are unlikely. And MS might not be not accept such a standard contract.
I work for another fortune-5 company who uses linux in many products that we sell. Another well-regulated industry, too. I will concede that the hazards for operating automobiles are well-beyond many other industries' products.
I own a 2010 Ford Fusion with SYNC and I really enjoy the features. I suppose it could've been done better, but the speaker-independent voice recognition is stellar.
The fact is that there are fairly easy workarounds for this kind of legal threats. The "I Agree" is quite powerful button. Most consumer protection legal threats are actually fairly difficult to execute - thanks to severely weakened consumer protection laws in most states. Even if they do get executed in few rare cases or even become class action, settlements are fairly easy to achieve with often tiny impact on balance sheets. I understand that risks in automotive industry is higher when safety is compromised that case cause billions of dollars in recall in extreme cases (for example, Toyota and Firestone cases) but this is like wearing bullet proof vest all the time because you fear you will get in to some physco's shooting spree. These lawyer driven companies don't get wake up call until competition starts doing all these supposidly legally risky things and grabs all market share. Companies that win usually are fire firstt, ask forgiveness later kind. This is also the reason why enterprisy companies like Ford will never come out first with self driving car even if they had tech.
http://en.wikipedia.org/wiki/Ford_Sync
The first generation SYNC has a monochrome display (blue or red on black) with a very basic GUI (like a 90s Nokia cell phone). Despite a 400MHz CPU and WinCE the menu is slow and looks ugly, but it is solid and works.
Later SYNC generations had a graphical GUI with touch, that's probably the slow Actionscript based one the other commentor mentioned.
With the MyTouch issues, several european Ford 2014 models still ship with the first generation SYNC. The SYNC menu features an appstore entry despite the appstore was never activated for non-US models. The Google Maps feature is not available, in the EU version. The MyFord website with additional diagnostic features about the car as well as software update downloads is only available for US car models. There are no updates e.g. for the european models, not from the car dealers nor from Ford website.
The one thing I do like though, is the voice commands. At least that actually made things easier. Speech recognition wasn't perfect, but it worked most of the time.
I wish there were more competition in the automobile in-vehicle tech platform space. I wish someone would get it right, given that most people are in their vehicles a good portion of the day.
My thoughts are that Adobe Actionscript (in conjuction with AIR) isn't that bad. It could do years ago everything that is now reinvented with HTML5 and MVC frameworks (like angular), has a decent performance (if the port of the AIR runtime to your plattform was well done) and the the language is halfway sane (at least better then Javascript). I also liked it better then the new trend towards QT, because you can do everything in a single language.
I actually know some high end cars with some decent user-interfaces that are also using Adobe technology.
However you can do crappy UIs and a crappy implementation in every technology. If JD power gave bad ratings it's most likely more due to a bad UI design and usability than due to the underlying technology.
I actually had expected that Ford uses Silverlight Embedded, as this was pushed by Microsoft at that time. Interesting that this is not case.
Good to hear that Ford has at least some decent understanding about software. Here in europe trying to do something Software-like isn't a pleasant experience at all.
Don't forget that most game UIs are still built in ActionScript, and they're just fine.
Have you seen any demos of these systems? Because I thought this as well until the video evidence began to mount. Both CarPlay and Android Auto are slow, laggy and overly complicated solutions. And that's before we account for both systems' odd reliance on cloud-driven voice navigation. And that's without trying to account for the frankly-unlikely notion that people will fish their device out of their pocket/bag, and physically plug it into their car, with any regularity.
Both Apple and Google's efforts are attempts to cram their existing platforms into a use-case where it isn't needed and it just doesn't fit. It's akin to Microsoft trying to cram kbm windows onto a tablet. That is not the way forward for car manufacturers. That's not the way forward for anyone.
The primary desired integrations by the user are: being able to listen to the audio that's on their device and exchanging voice with contacts on their device.
Even turn-by-turn is a thing that most people, most of the time, don't need. And when they do need it, the odds of having their own car, or a car in which they had any choice on the underlying in-dash technology, are low. Niche groups might select a car/radio and regularly plug their device in to attain these features -- just as niche people suffered various iterations of Windows Tablets over the last decade. But there will be no widespread adoption or use.
What's needed is an update to bluetooth [1] and dash designs that acknowledge mobile devices by providing a universal mount and some signalling method that can shift those devices, themselves, into a "car mode". So 80% of the time, 80% of people aren't mounting anything and are having a better experience.
And when they do want some device feature, they don't need to hunt through the purchase process for various possible mounts, suffer fiddly installs and then live with obscured dash controls.
So I see every reason in the world why Ford would need a competent in-dash solution above and beyond simply supporting CarPlay and Android Auto.
As to why Ford would want a QNX solution with wi-fi, for-pay turn-by-turn, etc? Fleet sales / rental services.
[1] improve the audio handling. improve the pairing situation. voice command pass through.
What I want is to connect my phone and then have a nice big touch screen on the dash that functions like the phone. I don't care much about voice control (I don't have Siri) but I suppose it would be nice.
I'll look for the videos. It seems improbably to me that they could screw this up but I am often dissappointed
CarPlay and Android Auto both do not allow arbitrary apps (which would be needed to i.e. control the head unit's FM/AM radio or climate controls). I expect this will happen someday, but it's not here yet.
"Two-thirds of Americans now have smartphones:"
http://www.engadget.com/2014/02/11/two-thirds-of-americans-n...
One-third is not a tiny minority.
That's one of the big arguments for QNX. The QNX microkernel is very stable. It barely changes from year to year. Versions from 15 years ago run fine. There's no need for OS updates.
Cars last a long time. I have a 1985 Ford Bronco in my driveway, and it still has the original EEC IV electronic engine control unit, still working fine. That was designed for a 30 year lifespan, and it made it.
I love Linux, use it all day, every day, but I can see the wisdom of choosing QNX. It's very stable.
The downside is you don't get all the new shiny stuff that runs on Linux without some amount of effort. I suspect Ford doesn't care, Ford has always been more about "it works" than "it's shiny".
Says the dude who just bought a 1994 F15 5 speed so his son can learn how to drive a manual :)
Yes, you could contract for longer support, but how much current energy will remain with whoever's engineers you contracted to for supporting that older and older version?
Also, QNX is an RTOS. Maybe they actually needed an RTOS. How well does Android do as an RTOS?
Another issue is, that you have even in a simple car you have at least 15 different control units and the HMI/MMI is only one of these. Throwing hardware at it means increasing prices, which you don't want as a consumer. Also remind you, that development of a car starts somewhere 3 to 5 years before you buy the car. Because the hardware has to be tested very extensively so that everything works in without problems in most worst environment like from Alaska to Mojave desert. Designing hardware with such a broad requirement is not as easy as you may think. That is the reason why automotive rated components are way more expensive than industrial rated components, not even talking about consumer rated components. The problem of what you call "decent hardware" is, that it is only consumer rated from 0°C (32°F) to 80°C (176°F) vs. automotive rated, which is -20°C (-4°F) to 125°C (257°F). Then there are also EMI requirements and much more.
The only consumer company that is close to the quality requirements of the automotive industry is Apple. But Apple has a different advantage over the automotive industry, which is they sell millions of their phone within a month vs. a carmaker sells a million of a model may be within 3 to 5 year, depending on the market level (small car vs. premium car). The iPhone within a car is only one ECU, but a car as at least 15 of them (up to 100 in the premium class, like Mercedes S class, Porsche). So the cost structure is completely different.
Another thing: Android Auto and CarPlay are no OS at all. Both are just interface definitions. Both are implemented by QNX for example. That said, QNX was one of the first suppliers who teamed up with Apple to provide an integration of the iPod.
In 15 years, your car will still be around but there is a very good chance that neither CarPlay nor Android Auto will exist anymore.
You're going in the right direction - this is slightly less stupid than having something like a Pandora client permanently installed in your car such that it cannot and will not ever be updated once the next model year comes out and Pandora makes breaking API changes or ceases to exist.
The only reasonable thing to do is provide long-lived open standard interfaces like the 3.5mm analog connector. Anything else is deliberately anti-consumer planned obsolescence. It doesn't matter if you think "Android is the platform of the future" or something. It probably isn't. Don't tie something with the release-replacement cycle of a car to a disposable device like a smartphone.
Yes, it was killed a few years ago. But it lasted way too long, and did untold amounts of damage to Microsoft's ability to execute in mobile. They spent a lot of time recovering from many bad decisions, mostly politically driven nonsense having nothing to do with making CE any good.
I imagine the politics at Microsoft still remain at, "Catch up to Apple, make our own iPad, iPhone, etc" instead of delivering a good product in the dozen other realms they compete in. Of course the automakers were going to ditch the MS product. Its substandard.
I really wish MS would find a way to up their game. Nadella's tenure isn't looking so bright 8 months in. Not sure if MS is salvageable, to be honest. I sometimes think how much better the products would be if Clinton actually tried to split up the enterprise stuff from the home stuff during the anti-trust settlement, instead of allowing MS to continue as-is and continue to force IE6 on the web for 4 or 5 more years than it deserved to.
I think many here would disagree with that, as shown by the last... 8 months of news about open source this, Linux that, iOS/Android apps, web standards, and GitHub.
I've never heard any complaints about Office 2013, and I haven't heard any complaints about Windows 8 that haven't been solved by Windows 8.1 or Windows 10.
You cannot judge a new CEO in just 8 months.
That's what happens when a company refuses to pay market rate to its top people. Other Seattle-area tech companies have been poaching from Microsoft for years, and Microsoft hasn't bothered to even try to stop it.
The target markets are pretty limited: obviously not smartphones, not automotive infotainment, really just vertical devices (industrial control panels, portable inventory/barcode scanners)
WinCE 6 is still used widely for car radios, especially by the cost-sensitive Asian suppliers (but not as much by OEs/tier-1s who are all going QNX/Linux). Unfortunately MS hasn't kept supporting it with new toolchains, VS2008 is the newest version that can target CE5/CE6.
Microsoft was once dominant in high-end infotainment, now they're not even trying to compete.
Prior versions of CE were a bit janky sure, but remember the sort of hardware it was meant to run on. Having a limited number of process slots isn't the worst idea in the world if you are targeting just a couple MB of RAM!
I'd say that just like any other large legacy code base, CE had some good parts and some bad parts. Everyone on the (6.0+ at least) kernel team knew their stuff, as did the media codec team. I know the C Run Time for 6.0+ was good (I was on the test team for it ;) ).
The lack of a concept of a current working directory was interesting though, of course no smart phone today has such a thing (and we'd think people to be crazy if they requested it!) but the idea was so baked into parts of the Win32 API that it was a fair bit of a porting pain for developers.
Drivers were always a problem for Windows Mobile devices. I actually owned some rock solid high performing WinMo phones, but they were few and far in-between. My Motorola Q9h is still the best smartphone experience I have ever had, it felt /natural/ for me to use, I cannot say that of any other phone I've used since. Also it was lightening fast on just 96MB of RAM. WinMo crawled at 64MB, but it flew at 96MB!
As an example of what it was like from the inside trying to make everything work, when working on WinMo6.5, we couldn't get our OEM partners to give us source access to their keyboard driver for us to make fixes for them to our test devices! (You ever try testing software when you cannot get hardware that it runs on? Ugh) They considered their keyboard driver to be "secret".
These types of problems were a large part of the reason behind the decisions for MS to write the majority of drivers for Windows Phone. When they wiped all the code, and started out with a brand new kernel, the decision was made to limit SoC support to ensure platform stability.
And that there is the kicker about mobile development. Every single new platform is a whole new adventure when it comes to software stability. Because so much changes when platforms iterate, you have a lot of drivers that need to be written.
Traditionally on PC we've only had a handful of chipset manufacturers, and the field has shrunk considerably. But in the late 90s I remember certain VIA AMD chipsets having known stability issues (a large part of the reason why AMD went to making all their own chipsets and not relying on 3rd parties anymore), and more recently even Intel has not been immune to bugs in their chipset drivers.
Now that the mobile field has consolidated to just a few chipset vendors (although this is changing with a flood of Chinese chipsets finally reaching awareness amongst western companies) that iterate on a good schedule, well at least phones don't just randomly reboot.
GPU drivers are still crap though, I'm not sure if the Windows Phone team still writes their own, but they sure as heck did for WinPhone7, there've been multiple posts on HN about Smartphone GPU driver bugs, I wish someone would test out WinPhone for those same issues! :)
tl;dr Aging embedded OS kernels don't behave well when scaled to 15x what they were intended to do. Just when WinCE started to get really good (involving a complete kernel rewrite) it was de-emphasized by the company.
- The WinCE driver model was pretty hopeless; you could write a simple interrupt handler, but a thread was supposed to do most of the work. There was a ton of context switching involved in any I/O, and the drivers tended to have many useless layers of abstraction, which was probably half architectural and half bad practices followed by the CE culture. (We managed to get about 8 Mbits/second of bulk traffic through USB on WinCE, using 100% of the CPU of our 800Mhz ARM, while a later bare-bones embedded system with a gutted but more functional version of the same driver got 40 Mbits/second with about 5% CPU).
- You could choose what features to build in (this was really baroque and complicated, to say the least). I remember getting WinCE down to 6MB, and this got you an empty app with some drivers. It took 45+ minutes to build (we never got incremental builds working reliably), maybe 20-30 seconds to boot, and did nothing. For 6MB. Yike.
- The BSP (Board Support Package) drivers from vendors were miseries. We found so many bugs in them that we just gave up and wrote our own, which wound up being smaller and way more reliable. Our feedback to the BSP folks was usually ignored (I'm hedging "usually" because I don't know a single case of a bug we reported ever being fixed).
Our decision (inside of MS!) to punt WinCE 6 and do our own thing was one of the best we ever made. It was politically rocky for a while, but if we hadn't done it, we would not have shipped.
Platform Builder wasn't nice. With full interal source access there were esoteric sets of build parameters that worked much better.
That said, the 6MB image got you a complete OS Kernel and Runtime, as well as the full working C Run time, and also a remoting system that allowed for debugging from halfway across the campus.
Not saying you cannot do better with less, but the OS image scaled pretty far down all things considered.
> The BSP (Board Support Package) drivers from vendors were miseries. We found so many bugs in them that we just gave up and wrote our own, which wound up being smaller and way more reliable. Our feedback to the BSP folks was usually ignored (I'm hedging "usually" because I don't know a single case of a bug we reported ever being fixed).
Many of the BSPs were bad. :(
I don't know much about the driver model, I never touched it!
> Our decision (inside of MS!) to punt WinCE 6 and do our own thing was one of the best we ever made. It was politically rocky for a while, but if we hadn't done it, we would not have shipped.
If I may ask, what did you ship?
When you want to implement entertainment stuff you want to reuse software and have it running on CE as well as your development platform. However the the compiler and library support is very limited. Don't even discuss about C++11 - you don't even get a normal standard template library :( Even for all windows APIs you first have to look up if they are also supported for CE. Then there are kernel features that are so different that you also need extra code for it. E.g. normal Windows supports IOCP, CE does not and Linux does it completely different. Maybe it's different when you build applications that only target CE. But when you want to have code-sharing between embedded target and normal PCs then working with embedded linux is here a much more pleasent experience where you can run the same code on the target and have state-of-the-art tooling.
> However the the compiler and library support is very limited. Don't even discuss about C++11
Back when I was on the compiler team, it was a bit before the revitalization of Native had happened at MS, so there wasn't the huge push that there is now. I am sad to hear that CE never got the same compiler love that Windows on ARM got. (All that happened well after I had left.)
> Maybe it's different when you build applications that only target CE. But when you want to have code-sharing between embedded target and normal PCs then working with embedded linux is here a much more pleasent experience where you can run the same code on the target and have state-of-the-art tooling.
Back in the glory days, you did have the same tooling, for anything non-kernel related you got VS support! (If you were doing kernel work you instead dealt with Platform Builder.)
One advantage of One Core at Microsoft is that everyone gets the same tooling now. There was an entire team who had to support a debugging platform for WinCE, but Visual Studio at the time (and to a much lesser extent now) was not designed to support plugging in new debugging frameworks. Thankfully it is now /possible/, back then it required that the WinCE team fork all of VS!
Suffice to say this was a huge headache and it was responsible for a large part of why WinCE's dev story was so unpleasant.
The article fails to also mention that QNX is owned by Blackberry, they acquired QNX Software Systems in 2010. I am honestly surprised that this isn't a stated fact in the article. In-fact, it is a known fact that QNX dominates the in-car operating system market and have contracts with a few other car manufacturers, notably BMW.
The real story here is: Microsoft loses out to market dominating Blackberry QNX.
This is the #1 reason why I'm not interested in high-tech displays and car automation from the car manufacturers.
I drive an 18-year-old car, mostly because I enjoy not having a car payment. I'd rather deal with an ancient cassette deck than have more of my dashboard functionality imprisoned in an ancient (and possibly poor-performing) UI that cannot be upgraded.
Right now I could just get a DIN2 system with Arduino and plug an OBD-II to the car to get info from the central unit, but what I have works for me.
I bought a great Sony double-DIN head unit for like $250 and installed it myself. Now I have bluetooth handsfree + audio streaming and it make the stock speakers in my car sound amazing.
Best car upgrade ever.
If I were an auto mfg, I'd make a car with an iPad in the dash in a modular mount. If you wanted to replace it or whatever down the line, get the new mount for the newest whatever tablet. They'd save so much on software, since their car control stuff could just be an app (or just actual buttons), and owners would be happier because an iPad or Nexus tablet is lightyears ahead of the junk they currently put in cars.
Doesn't that pretty much describe a cassette deck? :)
It's easy to fall into the version-chaser trap with easily upgradable digital systems. But I've come to realize, when it comes to digital appliances, do they really need to be upgraded? I don't think so. My Toyota has a basic touchscreen UI that will probably never receive a software update, but you know what? That's fine. The CD player works, the radio works, the bluetooth works, and it will all continue to work. It really isn't all that different from the cassette decks of my past cars.
LOL, yes, if the manufacturer components aren't intended to be upgradeable via software. A virtual speedometer or gas-gauge, for instance, should be simple enough to never need a patch.
Navigation and entertainment systems, on the other hand, can be a lot more complex. Not only does mapping software need to be upgraded, but I think there can be some temptation on the part of content publishers to endlessly tweak potential revenue channels (the continuously increasing number of apps on my AppleTV comes to mind).
What happens when one of these updates results in degraded performance? Again with an Apple comparison: I think about my iPhone 4S' performance after iOS7 rolled out. A vehicle's performance degrades as it gets more mileage, but it can be offset by care and maintenance. What happens when a manufacturer (or their subcontractor) pushes an update that turns your 2-year-old responsive console system into a sluggish mess? Would you have purchased the car if it had performed like that?
Through that lens, you could view the fact that pre-WiFi, pre-cellular dash systems can only be upgraded by invasive action at the dealer as a blessing...
Luckily, it's still possible to buy a new car that doesn't have a giant LCD in the middle of the dashboard, but I don't know how long that will last...
Also, because SYNC is not connected to the internet it does not have an always on connection. SYNC uses data over voice. Think old school dial up internet connection. SYNC, however, dialed into a partner company that provided a strict set of customer experienced data like ball scores, get your horoscope, etc...
So to update maps, requires you to plug an update stick into the USB port. MAPs are also very large data and would take too long to update on a dial up connection. Again, it has WIFI but the WIFI is not internally used by SYNC or wasn't when I was on the program.
Secondly, because of the partnership with INRIX, I think INRIX gets some kickback for maps updates. And after the trial period, if you decide to keep traffic and direction subscription, I think INRIX also got a kickback for that too.
It will be interesting to see where SYNC goes in the future with 4G now available. When I was at Ford, they wanting to have a celluar data service that was vendor agnostic but it gave them problems for 911 assist. Maybe that has improved.
My point is that there are a whole host of problems a first mover has to over come. Yea they made some mistakes but dam, you have to give them credit for being one of the first to start putting some of this out there.
What about updating the maps over the diagnostic connector? You'd just send over the deltas, obviously.
second this. I was really impressed with QNX - I played with it a bit and stopped when the licensing changed.
This killed open source development efforts for QNX. There used to be a Firefox build for QNX. The underlying QNX OS technology is great, but the organization, which has now been acquired twice, is a pain to deal with.
Either the author is confused, or you're literally going to have to connect your car to a WiFi network to receive updates.
How can carriers know when the phone is acting as a hotspot, and why are those bytes more expensive?
And then you remember that AT&T and Verizon used to be the same company...
I would also expect Switzerland to have less regime risk than the US.
They aren't. I also wouldn't compare a Swiss canton to a US state - Switzerland in total is about as large and about as populated as an average US state - which is true for most many European contries. So IMO it's a better comparison to just look at Europe as a whole and you'll probably find much more regulatory grind for the carriers. And yes, of the three Swiss carriers only one is domestic only, so the others deal with this vast landscape of regulations just fine.
So to conclude I don't see how regulations are the problem - the US with a more centralistic system than Europe as a whole should do better there. My suspicion is that because the US regulations can be influenced at the federal level, it's just much easier for Big Corp. to pour lots of money into lobbying to get their way. In European countries you (a) don't get as much ROI and (b) the political system doesn't lend itself as much to it because there is a more diverse party landscape in almost all European nations, so you would have to deal with more people to get a majority. This is why I think that the US needs two things politically:
1) a switch to a more proportional election system in order to break gerrymandering and the two-party system.
2) decentralisation for industry regulations.
Both these would lead to more difficult lobbying and it has better political representation as a nice 'side effect'.
Even though it's likely trivial for most to connect their car to a network, I'm sure there will be a subset of that 19-91 audience left out.
Seems like this sync process is a point to target for hackers / law enforcement. Imagine turning cars into bugging devices just by doing a drive-by update on Sync.
Or the lulz of having the media screen rickroll someone relentlessly.
Ford's recent models are truly excellent cars (I've rented many Tauruses, Explorers, and Fusions over the last couple of years), but they were all utterly ruined by that dreadful system with its awful, ugly, laggy console you're forced to use for everything that isn't actually driving.
Good on them for moving on.
For me, the test was to pair my phone before I left the rental car garage. Ford was the most difficult compared to Nissan, Chevy, Dodge and Toyota.
I did manage to get music from an iPhone through the USB port, but that was on an Expedition which has a different system (and it also only worked sporadically, requiring lots of re-plugging).
Such a crying shame. Since the company moved to the global platform and started making ROW-quality cars in the USA, I've been so impressed. They look good, drive well, ride comfortably, have good engines, have fantastic interiors (by mass-market US standards)... Then you go to turn up the AC and you realize that the rotting turd in the center console means that Ford hates you.
Wow I sure hope that's a dumbed-down explanation for the press, because I don't want my radio and (say) my ABS or traction control to have enough of a connection to each other to even establish any kind of "firewall" between them.
And the concern is precisely as you said. They don't want 3rd party software setting off air bags as the inside joke always was.
Don't worry. The airbag supplier is looking out for themselves and doesn't want anything screwing up their modules function. The engine controller and brake system are certainly connected via CAN but you're not going to reflash anything without using the correct protocol and having the right key for each controller. You also don't need to worry about buffer overflows or such because CAN is strictly limited to 8 byte (or less) packets and a 29bit message ID. Most messages define particular signals to be in those bytes and critical signals have checks run on them. And on and on...
No, it's not perfect but I don't think you need to worry.
You don't need to worry if, and only if, you assume that the standards are designed correctly and all vendors code to all the standards correctly.
As Quviq found, you should not assume either of those things.
Funny how many successful embedded OS are micro-kernels while desktops OS are still struggling to achieve similar designs, the best being the Mac OS X and Windows hybrid designs.
Ford committed to the hacker community that their systems could be open and maybe a standard connector will be made... but anything is better than Ford Sync.
QNX is excellent and has been the clear dominant player in the auto world for decades. However I think is unlikely Ford will go with QNX for the major in-vehicle display in a wider capacity, Intel/Apple/Microsoft will throw cash at the pie to make it worth using their suite of technologies. Also don't forget Ford would have already used QNX already, its in embedded system everywhere! QNX just needs a better good IoT pitch yet for it to become better known or popular in the mainstream software world.
I found a car that had all I wanted, but SYNC was there so I told him I would walk away and find one that didn't have the SYNC, and was ready to do it too. In the day they lent me it to test drive, it had all sorts of WTF and features not working.
So eventually they gave me the car without charging the $1200+ for it.
I live in the Redmond area. As I was leaving he mentioned that most Microsoft employees declined that system too.
MS would acknowledge the bugs - but then it wouldn't fix them.