When Appliances Revolt
conaone writes "From the "disconcerting" file, Baseline has a weird story about how the increase in use of embedded operating systems is causing strange things to happen to consumer products. Their example is the use of Windows CE in the BMW 745i, which apparently occasionally goes nuts. The best is the list of video clips showing off the possessed car."
In an attempt to sidestep the "Windows + (vehicle) = crash LOLOL!!!!111!!one" line of comments, which I'm sure there will be many of, I'd like to ask why you need an "embedded operating system" to begin with.
What is so preferable to this approach than more traditional imbedded computer systems? Does the functionality of the system really outweigh the overhead of an entire OS/computer system? Are they really doing anything a halfway decent microcontroller unit can't handle?
Maybe the developers are just too lazy to build their systems "from scratch" like they used to. I personally can't see the benefit of using an embedded OS. What am I missing?
=Smidge=
oh yeah, videos download SLOW, you get get those two at http://www.ryankramer.com/translip.wmv and http://www.ryankramer.com/radio.wmv
So, some months ago I got a chance to drive one of the new BMW 745's and apart from the subjective opinion that the car was *ugly*, the user interface of the iDrive system was awful. Beyond that the iDrive system takes over a whole host of functions that do mimic the Windows paradigm. For instance, to complete an action that should be relatively straight forward, like change the radio station, or change the settings of the climate control system I had to make three or more separate actions in a menu driven system. What was wrong with turning a dial? Big dials are fast and I don't have to take my eyes off of the road to do it like you do in the BMW 745.
There are things that probably should not be done in automobiles just because we can and the iDrive is not for use by drivers. It's simply bad design philosophy and for many things like driving a car, they should be intuitive enough to be able to perform a quick safety check, get in, start the car and begin driving. Instead with the 745, I had to sit in the parking lot of the airport for twenty minutes while I figured out just what was going on with the thing and the fact that the manual said it was Windows CE based did not instill confidence.
Visit Jonesblog and say hello.
I don't see how. Having newsgroup support for your old release of FreeGMC ten years after release won't help the company support it. If anything, extensive car control software might present an argument against open source, at least in the minds of legislators - having people hack the operating system of their home computer only endangers the nearby network, but people being able to try out hacks to their car on the highway? As it is there are legal limits to what mods you can apply to your car, but when those mods are software-based and hidden - well, suffice it to say that it'll be a can of worms.
Okay, WinCE is the OS running in the processor. We know the car is behaving strangely in some cases. (The spitting key appears to be a faulty latching mechanism to me and not necessarily a software glitch.)
But how and where are we sure that it's an OS problem and not an application problem? If I write "hello world" and it compiles and crashes under Windows, is it MY program or the OS that is the problem? The answer is that we really cannot know without troubleshooting. But the fact that it runs WindowsCE might make it appear as suspect, but my "system-guy's gut instincts" tell me it's more of an application problem rather than an OS problem.
What a bunch of crap. How do you know that these problems are related to the OS? In all likelyhood, these problems are caused by shoddy programming of the application which runs on top of it. I've seen *plenty* of poorly-written *nix apps crater, on all of the OSes that you mention.
I've run Windows CE on an iPAQ for several years now without a single OS-related problem. For a control group, I've run Linux since early 1994, FreeBSD since 1996, QNX between 2000-2001 and Mac OS X since early 2001. All of these operating systems are quite stable but it's not hard to find a poorly-written application for them.
IMHO, this guy's problem was that he bought a BMW. Recent (1993+) BMWs are notorious for little nags like these. BMW loves to load its high-end BMWs with gee-wiz features but their quality control is horrible. Example: When the M3 convertable came out, my manager at the time bought one and was stuck driving with her top down for a day when the one-touch convertable system refused to work.
Despite the sentiment of the story, I am seeing a lot of posts here that blame CE. Why is this? CE is just the operating system. It's possible to write bad software under any OS. Blame BMW's engineers, not CE. On the few occasions where my TiVo has frozen or acted screwy, am I allowed to say "it's because they used linux"? Of course not.
Slashdot: come for the pedantry, stay for the condescension.
As a guess, I'd have to say the reason is the myth of "lower production cost". Theoretically, if BMW had a embedded system of this nature, built around a somewhat common and industry supported architecture, then after this system stabilizes, it should be fairly cheap for them to add new features in later versions and to generalize the controller across all their car models.
It's a tradeoff between a fairly specific, dedicated system designed for the "2003 745 Sedan" and a generic "BMW Car Control System". My money is they are shooting for the latter. Of course, the myth part comes in when they realize they are spending just as much, if not more, money in support, recalls, and god forbid, liability.
Also, from what I can tell, this car has a reasonably sophisticated GUI, which probably also made it seem that something like Windows CE would be a natural choice. Too bad, as another poster pointed out, that they didn't try something industrial strength like QNX (or if they did, I'd love to know why CE won the prize).
I've developed under Windows CE, Windows, Palm, Unix, and 8052 microcontrollers. For reliability I would choose those "platforms" in reverse order. And, yes, development tools, memory optimization, and watchdogs are available for all of them.
OS's are generally for when a single piece of hardware is going to have to do many different tasks. Maybe one user will use it to listen to music, another to burn CDs, another to develop software, another to surf the Internet, etc. Parts inside washing machines and cars, however, are not going to see such variable usage. A washing machine is always going to wash utensils. A car is always going to drive down the road. These are not applications that really require an OS. Some good firmware is all you need.
Using microcontrollers in cars is not new. They've been doing it for over a decade. Only now, when you start contaminating things with OS's such as CE, do you really see a problem.
If you think about it, HAL is logical extension of this same concept. And look how well that turned out.
The more control you give a machine, the more damage they can do. Yes a human is far more prone to error, but a single human would never have control of an entire ship, planet or universe.
Terminator, The Matrix, Dune...all get a bit closer to reality with each passing day.
-Chris
--an unbreakable toy is useful for breaking other toys--
How old is your current car? If it's been made in the last, oh, 15-20 years, you've probably already turned over control of many of the parts of your car to a computer. They call it an ECM and it's really a microprocessor, but it's still a "computer."
"Transmission: This is scary. His car goes from 4th down to 1st gear (auto transmission car) and he nearly gets rear-ended by the SUV behind him."
Only problem with this is that you can downshift this car from the steering wheel. Look at the video again and listen for the clicks right before the car downshifts. My guess is the guy is pressing the buttons to downshift and upshift the car. Also, he focuses the camera so you can see ONE of the downshift buttons (there are 2!) and cannot see the upshift button. That and the clicks makes this a dubious video at best.
Also, the FUD about Windows has NOTHING to do with the trunk motor or trunk activation. Two seperate things completely. He has a motor problem with his power trunk, not a Win CE problem.
Couldn't see the other videos, but I am under the impression that this guy is really pissed about some problems with his car and did not get the level of service that he wanted from his dealer so he is crusading for another vehicle and letting off steam in the process. It dosen't mean that he is not having problems (the dash lights and iDrive on when the key is not in the ignition is not a normal thing), I just suspect that he is hamming it up a bit to bolster his case and to let everyone know that BMW sucks...I mean look at his licesnse plate he made.
Just a little hint: people with an agenda are usually the least reliable sources of information on a subject. Bias bias bias.
Now for a little bit of journalistic integrity and revelation of my bias. I sell BMWs. I have seen the problems with the cars. I haven't seen the trunk thing, nor the key popping out thing, though if it is not the correct key it won't stay in no matter how hard he tries. Other than the OS problems with the 2002s the worst probles have been caused from the installation of window tint. In the first cars the water from the installation of window tint would drip onto the navigation computer and fry it. Wreaked havoc with the computers. They have fixed that though.
Since the 2003 models arrived, none of the problems have resurfaced and since the software patch for the 2002s I haven't seen any problems with those cars either. The next worst cases I have seen involve complete shutdown of the iDrive system. This, however, is not an emergency situation because you can drive the car without the iDrive system.
Now, as to the "it's hard to operate" crowd. This vehicle is not designed for the casual observer. If you sit inside the vehicle for 5 minutes and try to figure it out you will be at a loss. It is designed for someone to own and enjoy for years. I have geriatric clients that don't have computers in their homes who can operate the iDrive system with no problems. Furthermore, as you learn the iDrive interface it becomes second nature. Most of my customers are better at it than me because they use it every day. Some of them can access things from memory without looking at all. One of the really nice things about the 745 is that almost every control can be operated from the iDrive, the voice activation, and the regular "hand dials" in the regular places. This means that you can pick which way you want to control something and use that exclusively. Don't like iDrive system for climate control? The dials for control of the system are on the dash, right where you expect them to be.
Furthermore, if you have trouble changing the radio stations or playing a CD you have to be a real moron. I HATE to use epithets like this, but I know of no better wat to put the level of stupidity it takes to not be able to operate the radio in this car. The regular radio controls are right on the dash. If you press a single button on the steering wheel and say "radio" and then say "94.5 fm" the car changes the radio for you (if you need help from the voice activation system just press the button and say help). Also, you have buttons on the steering wheel that will either seek to the next station or jump to your presets depending on how you press the button. It can't get any easier than that.
Comprare this to the COMMAND system in the S-class Mercades. This system has a 275ish page instruction manual, just for the navigation system and the phone. It's a bigger manual than the one for the whole rest of the car! And BMWs system is hard to operate? Hmmmm.
Please, before you go and knock something, take a close look at it and, in the case of something as sophistocated as the BMW, have someone who knows how the car operates show you what to do.
Furthermore, remember that this car is not for everyone. If it's too complex for you, please just admit it, however I have a couple of non-techie grandmas that love it and have no problems with the interface. If they can use it, why can't you?
When the only tool you have is a claw hammer every problem starts to look like the back of someone's skull.
So, why is CE the worst choice?
Because Windows in all its variants has proven to be significantly less reliable than most of the alternatives.
Desktops can take a reboot when you run out of memory (or deref a null pointer because some fool in development thought "undefined" on the interface definition didn't mean "feed me anything, I'll still work".) But automotive, medical, telephony, aerospace, machine-tool control, and other life-critical applications require a higher standard.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
So, to summarize, it's the worst because it says "Windows".
Nope.
It's the worst because a significnat number of the programmers at Microsoft write unreliable code that Microsoft ships. The result is something too unreliable for life-critical systems.
That's not just an uninformed opinion. I've spent much of my professional life (which started when the logic used vacuum tubes for the DIODES in the logic) writing high-reliability embedded software. (One of my colleagues once commented that I was the only person he'd trust to program his pacemaker.) My wife spent some years dealing with WinCE's bugs at a company that made the mistake of trying to use it in a telephony application. Some of her laments made my jaw drop.
I'm sorry if this annoys you, zjbs14. But an OS that crashes when you pass a NULL pointer (or handle) as an argument that is labeled "undefined" in an interface description is NOT ready for life-critical applications.
In fact, an OS that crashes AT ALL, no matter WHAT an application feeds it, is not ready for life-critical applications.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
> I've developed under Windows CE, Windows, Palm, Unix, and 8052 microcontrollers
> Parts inside washing machines and cars, however, are not going to see such variable usage.
Well, that's where you're wrong. They are trying to squeeze a lot more than a single function out of these embedded machines. For example, the computer in the BMW takes care of the climate control, entertainment system, and lots of other features of the car. It's also running a pretty fancy GUI. You need a fair bit of horsepower for this sort of thing, an 8051 won't do--especially if some of the features (such as music) are done in software. Which of course could still be done via proprietary software even on an ARM or an 80386 or whatever. Except that when you have a lot of fancy functionality that takes a lot of software to implement, you try to reuse as much existing software as possible--you don't want to have to reimplement GUI libraries, networking, storage and memory management, music playing etc. from scratch. Some of this stuff might be available as simple C libraries that you can link into your code without requiring an OS (or as a pseudo-OS where the app and the OS are one single executable image), but not everything. A lot more third party software is available for larger OSs such as WinCE and Linux, and these OSs also provide a lot more native functionality that you don't have to code or buy extra, such as a GUI, networking, memory and storage management etc. In other words, the sort of services your typical OS provides that you tend to take for granted but that are often missing in highly embedded systems.
It's basically a trade-off: you have to make a choice how tightly optimized and minimal you want your system, versus how much effort it will take to implement and extend in the future, versus how easy it will be to find developers to maintain the code later on. For many, a highly specialized hardware and software platform might still be the best choice, while for others a more open OS is preferable.