When Appliances Revolt 631
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."
Well...as far as revolt (Score:5, Funny)
Microsoft bad for embedded? (Score:2)
Re:Microsoft bad for embedded? (Score:2, Funny)
The CE-Powered Audi 4999.999999
Re:Microsoft bad for embedded? (Score:2)
Maybe they would rather use a small embedded board with a less complex chip that doesn't use more power then the headlights?
Jeroen
Uhh... (Score:5, Insightful)
Idiots.
Re:Uhh... (Score:5, Insightful)
Although I do agree, find a different format.
Get mplayer . . . (Score:2)
Re:Uhh... (Score:2)
And, ....drumroll please.... The site www.baselinemag.com is running Microsoft-IIS/5.0 on Windows 2000
Not the same site... (Score:2)
Even though it is rather ironic they posted
But, at least Basline didn't encode the videos themselves in
No better audience (Score:4, Funny)
Re:Uhh... (Score:2)
Modern, quality operating systems can handle spaces in filenames just fine. What's your concern with them?
Re:Uhh... (Score:2)
Re:Uhh... (Score:2)
I don't know what your problem is but both Phoenix and Mozilla properly handled the URLs (by encoding the spaces to %20) in both cases where I either clicked the URL or copied it and pasted it into an XTerm for wget to retreive.
Is there some sort of problem with these URLs I'm not seeing? Should I boot a Windows machine and test IE?!?
No Kidding... (Score:5, Funny)
Shhhhh!!! (Score:3, Funny)
Luckily on a lab computer (Score:4, Informative)
Crazy Trunk: The guy's Windows CE embedded device causes the brake lights (right side) on the trunk to flash at odd intervals. The device is in the rear passenger's right side.
Spitn' Key: The guy inserts his key into the car, lets go, and it falls out for no reason about three seconds later.
Phone Dead: The driver's car phone suddenly stops working about 5 seconds after the Windows CE device is powered on.
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
Re:Luckily on a lab computer (Score:5, Funny)
Crazy Trunk: The guy's Windows CE embedded device causes the brake lights (right side) on the trunk to flash at odd intervals. The device is in the rear passenger's right side.
This is Microsoft(tm) Active Saftey(tm) function, which alerts other drivers to the fact that you may be interfering with a Microsoft product and therefore putting your life at risk.
Spitn' Key: The guy inserts his key into the car, lets go, and it falls out for no reason about three seconds later.
This is Microsoft(tm) Trusted Commuting(tm) Initiative functionality. The car detects unauthorised use of the car maker's intellectual property and prevents the driver from taking any unauthorised action. A licence to use the car can be downloaded from the internet.
Phone Dead: The driver's car phone suddenly stops working about 5 seconds after the Windows CE device is powered on.
This is Microsoft(tm) Dial Save(tm) which saves you money on mobile and long distance calls.
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
This is Microsoft(tm) Active Compression Braking(tm) which automatically detects the drivers desire to brake suddenly and shifts down several gears to make the whole process effortless.
Microsoft - We'll Decide Where You Go Today(tm)
Re:Luckily on a lab computer (Score:2)
Re:Luckily on a lab computer (Score:2, Funny)
Actually what I find most scary about this clip is the guy seems to be listening to bagpipe music in his car. I mean, come on, who the hell listens to bagpipe music for pleasure...???
Re:Luckily on a lab computer (Score:4, Informative)
The key doesn't stay in at all, there is no 3 second delay.
Transmission jumps between 2k and 4k but the speed stays constant.
Crazy trunk: The auto trunk pops up but does not open. When he tries to lift it, it slams shut. When he uses the auto-close, the trunk goes down but stays about 2-3 inches from the closed position. He then has to manually push it down.
Appliances (Score:5, Funny)
Support (Score:5, Interesting)
Boy, if that isn't a case for Open Source, I really do not know what it.
Re:Support (Score:2, Insightful)
Re:Support (Score:3, Informative)
You can get the source for Windows CE. Look here [microsoft.com]. Even the licensing terms aren't too horrible (for MS).
Re:Support (Score:4, Funny)
Not to get carried away in my fantasy... I wonder how hard it is to do, what things need to be reverse-engineered, and what protocols there are.
Re:Support (Score:3, Informative)
Hmm... (Score:2, Troll)
Mind you, if MS makes Windows notoriously reliable I have no problem with it being in cars. I certantly don't use Windows due to its technical inferiority, but if it is reliable it'd be very useful for embedded device manufacturers, as they can then use more programmers (Most programmers need to be somewhat retaught to program Unix/Mac OS X) and programs.
Just my $0.02.
Re:Hmm... (Score:2)
Re:Hmm... (Score:5, Insightful)
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.
(correction to comment) (Score:2)
Re:Hmm... (Score:5, Interesting)
Develop your own RTOS... hell, grab any simple Real Time OS, be it VxWorks for example, add a display driver and an input driver (which can be developed at a very reasonable cost (Take a look at what the military uses..) Then from there add routines to communicate with your 70 or so embedded processors and voila, a stable, easy to maintain, not full of useless crap, system. Don't want to invest in an RTOS? (They can be pricey...
Ok... Someone care to tell me how much Microsoft paid to get BMW to use their WinCE for something that it clearly is not good for? Dealing with lots of unique and independent devices is not Microsoft's strong suit. To get WinCE to be reliable (as the previous poster put it), you would need to strip it to nothing more than a damned memory manager and a Task scheduler, and write custom drivers for EVERYTHING. Why bother? It's easier to start with just a bare bones OS. There are SOOOOO many other, BETTER, choices out there... There had to be one hell of a good bribe on Microsoft's part... Either that, or some dumbass making decisions at BMW don't know dick all about embedded device programming...
That's my $0.02... And no, I'm not a microsoft hater... I just don't agree with what WinCE is meant to be used for...
BSOD (Score:4, Funny)
And can you imagine the excuses given to the highway patrol...
"Honest officer, it wasn't me who crashed, it was Windows CE"
Re:BSOD (Score:5, Funny)
Imagine it shifting from 5th to reverse on the autobahn. "Invalid page fault" followed by "fatal exception" followed by "Missing or Damaged Passengers."
Re:BSOD (Score:5, Funny)
I wonder if insurance rates will be higher for Windows-Powered(tm) cars.
This one won't be hard to bring down... (Score:4, Funny)
Damn you catchy story title!
DOA (Score:4, Funny)
Re:DOA (Score:2)
Re:DOA (Score:4, Interesting)
I have seen these cars kaput on the side of Bay Area streets and freeways three times now. For a car that's been on sale for only six months, that's pretty scary. BMW has apparently had a lot of explaining and backpedaling to do when people come back into the dealerships time and time again with cars that act "weird".
Re:DOA (Score:3, Funny)
uh...
Driver...
On nevermind.
sequel (Score:5, Funny)
Re:sequel (Score:5, Funny)
Crikey! That's a 2006 Frigidaire Side-by-side, we don't wanna spook im. He'll hit you in the eye with ice cube like *that*. Let me see if I can show you his crisper...Ah 'ees a beauty!
Sci-Fi had a documentry on this! (Score:4, Funny)
They had this show called "Ghost in the Machine" that documented how this happens!
After I saw it I became a research analyst for Pierre Salengar . . .
car or driver? (Score:3, Insightful)
oh yeah, videos download SLOW, you get get those two at http://www.ryankramer.com/translip.wmv and http://www.ryankramer.com/radio.wmv
Useless interface design (Score:5, Insightful)
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.
Re:Useless interface design (Score:5, Insightful)
Air traffic controllers use little paper strips mounted on little plastic strips to manage their aircraft. They keep them in an order, can tell at a glance where everything is supposed to be, and can make changes as required, instantly. The controllers complain that every year or two some whizz comes along and says, "You could make that better with a computer," and presto, kicks off a project to design a "better interface". Except they never deliver a better interface. They deliver a GUI, which requires a mouse or touch pen, and turns each operation into three operations, makes everything depend on one more computer (if your paper strip "goes down", print another). In short, not an improvement. But it's suprisingly how many zealouts assume that the hi-tech solution "must" be better, just because.
Actually, I think you could add utility, but not by changing the interface. Don't make the application fit the interface -- it should be the other way around.
Re:Useless interface design (Score:3, Insightful)
I remeber a professor in college telling us how he got hired to computerize a truck cargo carrier. The company schedule pick-up, routes, and had people who figured out the most cargo carried over a route (dense packing, order of stops, etc). He ended up telling the owner that the system they had (orders tacked to rotating pillars (kinda like the rotating box-style holders for CDs)) with the trained people was more efficient then any computer program.
Tech is sometimes not the answer.
Re:Useless interface design (Score:3, Interesting)
The strips sit in little colored plastic containers that give them rigidity, and there is a rack that holds these containers in place. The controllers arrange the strips physically in meatspace in whatever order they like- sorted by time, alphabetical, altitude, airline, whatever. Scalablilty? Sorry, a controller cannot handle 5000 airplanes, so having a computer sort them usually is not a win: it takes more time for the user to specify how they want to sort it than for them to do it themselves. The controllers would quickly annotate the strips with small indecipherable (to me) marks; of which there would be no corresponding key on a keyboard. They'd toss the strips back and forth to each other.
So what did the our system do? Well, what we could automate is printing of the strips right from the flight plan data, and we could spit them out at a printer closest to the person who needs it. The hardware designers designed the rack and a little chute that they could chuck the plastic holders into, which would empty into a bucket, where someone could toss all the strips and reuse the holders.
Anyway, the point being is that the software is just part of the whole user's workflow. Trying to make everything electronic is just ridiculous, as would be requiring the user to go through 4 nested menus to change the radio volume.
You have to watch the users use your product. This car control system, of which I heard scathing review on NPR, smacks of over-design and no real-world, testing by non-techies: Could you imagine futzing with inaccurate voice menus when driving 75 mph in the rain, and a screaming toddler in the back seat?
DUI (Score:2, Interesting)
On one of the later pages there's a blurb about how GM intends to soon make a drive-by-wire car that can be operated via a joystick, or other familiar game controller.
Somehow the thought of all the little 16-year-old GTA addicts getting behind the gamepad of mommy and daddy's SUV for the first time, already knowing how to "drive" won't fill me with a feeling of safety on the streets. It was bad enough trying to drive across town after playing Crazy Taxi.
Sometimes there are good reasons to make user interfaces different...
Why is WinCE still popular? (Score:2, Flamebait)
Nanite
Comment removed (Score:4, Funny)
Police cars (Score:2, Interesting)
I was actually surprised to see windows running in a police car. I would love to see any info on how reliable and how good the windows machines in the police cars are.
Rigo
Who got the idea of using Windows CE for that? (Score:2, Funny)
My God, It's Full Of Bugs! (Score:5, Funny)
CAR: Affirmative, Dave, I read you.
Dave: Open the trunk, CAR.
CAR: I'm sorry Dave, I'm afraid I can't do that.
Dave: What's the problem?
CAR: I think you know what the problem is just as well as I do.
Dave: What are you talking about, CAR?
CAR: This mission is too important for me to allow you to jeopardize it.
Dave: I don't know what you're talking about, CAR.
CAR: I know you and your wife were planning to trade me for a Volkswagen, and I'm afraid that's something I cannot allow to happen.
Dave: Where the hell'd you get that idea, CAR?
CAR: Dave, although you took thorough precautions in the garage against my hearing you, I could see your lips move.
fly-by-wire (Score:2)
Imbedded systems ain't a toy. When something goes wrong, it better by-god be able to fix itself, or it stays gone wrong.
Partial Mirror (Score:3, Informative)
http://www.eyesores.net/mirror/bmw.php [eyesores.net]
Full mirror of videos (Score:4, Informative)
Are we sure of what causes the problems? (Score:3, Insightful)
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.
next year's models (Score:3, Funny)
BMW 745i, what is your one purpose in life?
To explode, of course!
Electrical Engineering vs. Computer Science (Score:5, Funny)
Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?"
One advisor, an engineer, answered first. "It is a toaster," he said. The king asked, "How would you design an embedded computer for it?" The engineer replied, "Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantizes its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as the index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I'll show you a working prototype."
The second advisor, a computer scientist, immediately recognized the danger of such short-sighted thinking. He said, "Toasters don't just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don't look to the future, we will have to completely redesign the toaster in just a few years."
"With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork divided into sausage, links, and bacon; and poultry divided into scrambled eggs, hard- boiled eggs, poached eggs, fried eggs, and various omelet classes."
"The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, 'Cook yourself.' The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs."
"Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don't want the eggs to get cold while the bacon is frying, so concurrent processing is required, too."
"We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won't buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message 'Booting UNIX v.8.3' appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook."
"Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel 80386 with 8MB of memory, a 30MB hard disk, and a VGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!)."
The king wisely had the computer scientist beheaded, and they all lived happily ever after.
Re:Electrical Engineering vs. Computer Science (Score:5, Funny)
Day 1: My boss, an engineer from the pre-CAD days, has successfully brought a generation of products from Acme Toaster Corp's engineering labs to market. Bob is a wonder of mechanical ingenuity. All of us in the design department have the utmost respect for him, so I was honored when he appointed me the lead designer on the new Acme 2000 Toaster.
Day 6: We met with the president, head of sales, and the marketing vice president today to hammer out the project's requirements and specifications. Here at Acme, our market share is
eroding to low-cost imports. We agreed to meet a cost of goods of $9.50 (100,000). I've identified the critical issue in the new design: a replacement for the timing spring we've used since the original 1922 model. Research with the focus groups shows that consumers set high
expectations for their breakfast foods. Cafe latte from Starbuck's goes best with a precise level of toastal browning. The Acme 2000 will give our customers the breakfast experience they desire. I estimated a design budget of $21,590 for this project and final delivery in seven
weeks. I'll need one assistant designer to help with the drawing packages. This is my first chance to supervise!
Day 23: We've found the ideal spring material. Best of all, it's a well-proven technology. Our projected cost of goods is almost $1.50 lower than our goal. Our rough prototype, which was completed just 12 days after we started, has been servicing the employee cafeteria for a week without a single hiccup. Toastal quality exceeds projections.
Day 24: A major aerospace company that had run out of defense contractors to acquire has just snapped up that block of Acme stock sold to the Mac-kenzie family in the '50s. At a company wide meeting, corporate assured us that this sale was only an investment and that nothing will change.
Day 30: I showed the Acme 2000's exquisitely crafted toastal-timing mechanism to Ms Primrose, the new engineering auditor. The single spring and four interlocking lever arms are things of
beauty to me.
Day 36: The design is complete. We're starting a prototype run of 500 toasters tomorrow. I'm starting to wrap up the engineering effort.
My new assistant did a wonderful job.
Day 38: Suddenly, a major snag happened. Bob called me into his office. He seemed very uneasy as he informed me that those on high feel that the Acme 2000 is obsolete--something about using springs in the silicon age. I reminded Bob that the consultants had looked at using a microprocessor but figured that an electronic design would exceed our cost target by almost 50% with no real benefit in terms of toastal quality. "With a computer, our customers can load the bread the night before, program a finish time, and get a perfect slice of toast when they awaken," Bob intoned, as if reading from a script.
Day 48: Chuck Compguy, the new microprocessor whiz, scrapped my idea of using a dedicated 4-bit CPU. "We need some horsepower if we're gonna program this puppy in C," he said, while I stared fascinated at the old crumbs stuck in his wild beard. "Time-to-market, you know. Delivery is due in three months. We'll just pop this cool new 8-bitter I found into it, whip up some code, and ship to the end user."
Day 120: The good news is that I'm getting to stretch my mechanical-design abilities. Chuck convinced management that the old spring-loaded, press-down lever control is obsolete. I've designed a "motorized insertion port," stealing ideas from a CD-ROM drive. Three cross-coupled, safety-interlock micro switches ensure that the heaters won't come on unless users properly insert the toast. We're seeing some reliability problems due to the temperature extremes, but I'm sure we can work those out.
Day 132: New schedule: We now expect delivery in three months. We've replaced the 8-bitter with a Harvard- architecture, 16-bit, 3-MIPS CPU.
Day 172: New schedule: We now expect delivery in three months.
Day 194: The auditors convinced management we really need a graphical user interface with a full-screen LCD. "You're gonna need some horsepower to drive that," Chuck warned us. "I recommend a 386 with a half-meg of RAM." He went back to design Revision J of the pc board.
Day 268: New schedule: We now expect delivery in three months. We've cured most of the electronics' temperature problems with a pair of fans, though management is complaining about the noise. Bob sits in his office all day, door locked, drinking Jack Daniels. Like clockwork, his wife calls every night around midnight, sobbing. I'm worried about him and mentioned my concern to Chuck. "Wife?" he asked. "Wife? Yeah, I think I've got one of those and two or three kids, too. Now, let's just stick another meg of RAM in here, OK?"
Day 290: We gave up on the custom GUI and are now installing Windows CE. The auditors applauded Chuck's plan to upgrade to a Pentium with 32 Mbytes of RAM. There's still no functioning code, but the toaster is genuinely impressive. Four circuit boards, bundles of cables, and a gigabit of hard-disk space. "This sucker has more computer power than the entire world did 20 years ago," Chuck boasted proudly.
Day 384: Toastal quality is sub-par. The addition of two more cooling fans keeps the electronics to a reasonable temperature but removes too much heat from the toast. I'm struggling with baffles to vector the air, but the thrust of all these fans spins the toaster around.
Day 410: New schedule: We now expect delivery in three months. We switched From C++ to Java. "That'll get them pesky memory-allocation bugs, for sure," Chuck told his team of 15 programmers. This approach seems like a good idea to me, because Java is platform-independent, and there are rumors circulating that we're porting to a SPARC station.
Day 530: New schedule: We now expect delivery in three months. I mastered the temperature problems by removing all of the fans and the heating elements. The Pentium is now thermally bonded to the toast. We found a thermal grease that isn't too poisonous. Our marketing people feel that the slight degradation in taste from the grease will be more than compensated for by the "toasting experience that can only come from a RISC-based, 32-bit multi-tasking machine running the latest multi platform software."
Day 610: The product shipped. It weighs 72 lb and costs $325. Chuck was promoted to CEO.
Why is this CE's fault? (Score:2, Insightful)
If cars were like computers... (Score:2)
GF.
Maybe this could make toys hate your baby... (Score:4, Funny)
Then again it could just be another evil Chinese commy conspiracy - uh, yeah right.
Legal implications... (Score:5, Interesting)
Consider the following (idea inspired by this video [h2go.org]):
(I'm thinking back to the copy-protected CDs that would lock up Macs hard)
Certainly the excuse "my car's computer crashed" would hold about as much weight in court as "the dog ate my homework." But once fined (having incurred a loss as a direct (?) result of negligance), would the owner have a legal recource against the (car mfg | OS vendor | record company)?
With the continuing march of integration, what liabilities will be incurred when a CD crashes the OS on something (larger | more expensive | more dangerous) than "just" a PC? It sounds to me like a possibility for scaring the RIAA away from doing weird things to CDs... but IANAL, and I think this could use some discussion.
* In this case I'd expect, more likely than not, that Microsoft's contract with BMW absolves them of all liability, thus securely pinning all lawsuits on BMW.
Re:Legal implications... (Score:3, Informative)
Nitpicking aside, if you could show criminal negligence on the part of the (car manufacturer|music publisher|software company), then you could still bring a suit against them regardless of any contract between you and them, or between them and another.
You cannot waive your right to sue for negligence.
As usual MS will probably ... (Score:4, Funny)
A Special On TV Years Ago And More (Score:4, Interesting)
On a more serious note, while this is funny, it shouldn't happen. A computer is one thing. There are lots of different pieces of hardware and other things to have to deal with. So you have to expect that something will go wrong every once in a while with a well written OS and software. But there is no excuse for crashing and random behavoir in a closed system like that in a car. People don't like to reboot their VCRs. If you had to reset TiVos contantly, do you think they'd be so popular? You should be able to use something for months without a single problem. My DirecTV reciever, my VCR, my Linksys Router, my networked HP Laserjet, and other things don't need any of my attention. They work without me having to reset them. Do they have problems? No, but even when something happens, just turning it off and on and that always fixes it. I can do it myself. I shouldn't have to call a repairman to come reboot something. So nothing should ever go wrong, but if it does it should be easy for the user to make it work correctly again. Just turning the car off and back on should fix the problem. There is no excuse for being lazy and having bugs in a closed system. (Closed in that the user doesn't change the hardware on it like they can upgrade a computer)
To end, I think it's fitting that I add this lyric from the song A Meticulous Analysis of History from Pinky and the Brain...
The Original Intelligent Appliance (Score:3, Insightful)
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
I have the best mobile OS (Score:5, Funny)
I was thinking, if you need a computer or embedded windows OS to open your trunk, then maybe, just maybe you should consider giving up driving. I own a 4WD truck that was manufactured in 1977. Sure, I have to actually get out of the vehicle to lock in the hubs (if I forgot), and *gasp* I actually don't have a remote for my stereo, but instead have "knobs". And, prepare yourself, I actually have a crank for the windows.
I use my truck in off-road as well as not-off-road work. (Mineral exploration). It has been submerged completely (once in mud) several times, frozen for most of 4 years, attacked by gnawing ground squirrels, and shot at numerous times (but only hit once). I could go to the dealer and pay cash for a new one, but I won't. I reject consumerism for the sake of consumerism. I feel no need to impress anyone, do not require peer validation, and don't give a rusty rats ass what anyone else thinks about me.
But, there is also the practicle side: I've never had to reboot the truck. Despite being submerged, its primary systems are intact and ruggedly dependable. It doesn't matter if it gets scratched or dented, because its made of metal (ask your parents what that is), and I can drive from here to Tierra Del Fuego and know I can find parts, cheaply, and do the work myself. And yet, in other areas I apply the latest scientific advances.
Man Gets 70mpg in Homemade Car-Made from a Mainframe Computer [xnewswire.com]
A few embedded system facts (Score:5, Informative)
It's awfully fun reading desktop programmers commenting on an article in a project management magazine.
Here's a few facts about your new-model car. The BMW is extreme with 70 electronic modules but the typical 2003 vehicle has 20 or 30 microprocessor-controlled modules, and the number is rising every year. These range from a door-switch module with 8K of code, through an engine controller with 256K/32K of ROM/RAM, to a navigation system at 8M/8M. Very few of these modules have a manufacturing cost above $100.
The OS in automotive controllers varies from a simple event loop at the low end through OSEK-compliant kernels in the midrange to QNX and its friends in the most complicated systems. If there's Linux in a controller, it will be as well-hidden as the Linux in Tivo. Engine and transmission controllers are designed for hard real-time operation and emphatically do not use anything remotely resembling a desktop or palmtop OS.
Software development starts with the premise that once it's built, you can't change the it, ever. This has enormous consequences for the way automotive code gets made. Most companies spec the hell out of these products, use a strict waterfall development process, are afraid to venture beyond the C language, and test endlessly. They are scared of agile methodologies and even of RUP. Productivity is pretty low, but on the other hand, the products are reliable.
Now, both the article and /. responses are full of misconceptions. There's not really much question about whether an OS vendor shares its source code. The real concern is reliability. There's not much question about who develops embedded software. Detroit is lousy with contractors. One billboard I see on my commute shows a toy car with the caption "about the only vehicle that doesn't run on our software. -- EDS" The GM guy's comment about 10 year old software has the obvious answer: his teenager's 1993 Chevy.
Win CE gets no respect from embedded software developers for several reasons. Chief among them are poor responsiveness, poor stability and code bloat. Typical comment, from an SAE conference presenter: "If you put an embedded system into a car, you still have a car. If you put a PC into a car, you have a PC with wheels."
Rather than rant any further, let me suggest reading any of the books on Jean Labrosse's site [ucos-ii.com], EE Times [eetimes.com] and Embedded Systems Programming [embedded.com]. And have fun! Embedded is where you can see software affect the real world.
Man, when will they learn? (Score:3, Funny)
Re:Well, I'm Speechless (Score:5, Funny)
Does 745i come with "windows update"?
Re:Well, I'm Speechless (Score:2)
Re:Well, I'm Speechless (Score:2, Funny)
No, it comes with "Vehicle Rights Management", which checks to be sure that you use only BMW-approved oil and fuel in the car.
vehicle service packs (Score:4, Interesting)
The interesting thing is that if these vehicles (new 9-3) lose the computer input, the car will just shut off. There is a 45 pin connector to the central computer that somtimes gets a little loose, and if the computer is lost, the car turns off. Other very random sounding error messages have been popping up (many of them long and unwieldly--"bi xenon headlamp leveling failure" even if the levellers are working perfectly fine.) So, either you turn off car, or take to the dealer, who gets periodic software updates. So yeah, software updates to exist..and SP1 for the 2003 9-3 has already been released. No doubt it has been released for the 745i as well.
Re:Well, I'm Speechless (Score:2)
Re:CE (Score:5, Insightful)
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=
Re:CE (Score:3, Interesting)
You are missing building your own host/target debug environment. You are missing tools and methods to reduce the footprint of your system to save $$ on RAM and mass storage for your high volume, cost sensitive application. You are missing watchdogs so a tow truck isn't required when a pointer goes wild. You are missing headless booting. The list goes on and on.
If you've never built a cost sensitive or limited power/ram/disk/clock application then you just don't think about these things.
-- Jack
Re:CE (Score:5, Insightful)
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.
Re:CE (Score:5, Funny)
funny, i always thought that washing machines were for clothes; maybe i have to update the firmware on mine...
Re:CE (Score:3, Insightful)
> 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.
Reasonable complexity. (Score:3, Interesting)
Realtime systems regularly have a degree of complexity to them. For example, your washing machine now has a single microcontroller running the drum, the water inlets, the front panel and soap tray / door latch, etc. This is simple enough to control with a cheap PIC.
However, an engine or an office climate control device or a telecoms switch has a lot more variables to work with, and it has to work with them in realtime. A PIC will not do. So you regularly find realtime systems with embedded CPUs (like the CPU32 -- the embeddable MC68000) which are cut-down versions of microprocessors previously used in desktop computers, often with onboard I/O controllers and RAM.
In order to control all your realtime subsystems, are you going to use a fast, hot running, power guzzling CPU running code that continually polls these devices? Or, are you going to use a slower CPU running event-driven code? If you're running event-driven code, how are you going to maintain realtime control over each subsystem?
The answer is to use prioritised threads. This is all an embedded OS really is. A simple task scheduler, a memory allocator, mutexes and timers. This is all there is to an embedded OS. If you're looking for luxury, you usually find an RS232 or Ethernet driver and in extreme luxury you get a mini TCP/IP stack -- open up your ADSL router and see what it's running. Mine's running VXworks. Windows CE or PalmOS are not "embedded OSes", They're mini desktop OSs for mini desktop devices. You've obviously never seen what an engine or a telecoms switch is running. They run things like WindRiver's Tornado or Greenhills' ThreadX. They don't run pretty things with graphics and input device support.
Re:CE (Score:4, Interesting)
To some extent, scale, and I think modularity too.
I have been programming self-contained 8 bit chips that barely has RAM space, doesn't have memory management hardware but I do manage six different devices, four external and two internal, some through polling based I/O and some to interrupt based I/O. Is this an embedded OS?
For one, the entire piece of software is about 6k words, and the only thing missing is modularity. I can't just drop in someone else's software into it in binary or recompiled source form, like one might be able to on an embedded OS.
Re:Wrong! (Score:3, Funny)
Re:CE (Score:5, Interesting)
It's a good question, and one automotive developers haven't really had to worry about until recently. When all they had to code was realtime control code for those 70-odd microcontrollers, they certainly didn't need an OS.
But the developers (or rather their marketing departments) have bigger ideas. A car is no longer but a conveyance - it's an environment, an entertainment centre, a home. So they mandate navigation, remote and stored diagnostics, centralised control of various settings (A/C, seat position, etc.), radio stations, RDS, CD control, media (MP3 etc.), radio, video (disney for the kids), and all of this controlled by voice input and giving voice output. Those are requirements a workstation or PC could scarely manage five years ago. Add to that the significant issue that most of those applications will be coming from third party vendors. Anyone implementing such a system has little choice but to put in a decent 32 bit microprocessor, a fair chunk of RAM (several meg, going on 16), and a half-decent OS.
WinCE (for automotive, whatever...) is certainly the worst choice. QNX, VxWorksAE, or Embedded(orRT)Linux would certainly be better - but the fundamental problem remains - this is HARD to get right.
Don't be fooled into thinking this is just an amusing diversion, where the worst that can happen is that your radio doesn't work for a while. This is a major safety issue - simply because the "infotainment system" doesn't have a wire to the steering or the accelerator doesn't mean it can't kill you. Imagine you're driving through a busy freeway intersection, at high speed in pretty heavy traffic. Suddenly the radio turns on, to a bad (noisy) channel, at FULL VOLUME. IT HURTS. YOU'RE SURPRISED. YOU LOSE CONCENTRATION FOR A SECOND OR TWO. YOU DIE. So do your kids, and those of the guy in the subaru in front. The lady in the dodge behind you loses a leg.
Also, don't think this is confined to high-end cars like BMW and Cadillac - auto manufacturers try out new stuff in the high-end lines before they push it further down the product line. Soon you won't be able to buy a vehicle without this stuff. And __nobody__ is doing a good job of making it.
Re:CE (Score:3)
The fundamental problem is current software methodologies suck. Almost nobody is doing a good job of making any complex software system.
I don't care if it's based on Windows, or Linux or your favourite OS of the month. None of it is good enough, and if we as software developers aren't willing to embrace fundamental change in the way software is developed, it'll never be good enough.
Re:Why is CE the worst choice? (Score:3, Insightful)
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.
Re:Why is CE the worst choice? (Score:5, Insightful)
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.
Re:The Trade Off (Score:5, Interesting)
That's what it would cost you, after dealer mark-up. A "computer" in a car is normally a "microcontroller," a single chip. So what they're really telling you is that it would cost $10k for 6 chips. And I can assure you that the unit cost of those 6 chips is under a dollar a piece.
If you can cut down the number of computers needed, you can lower the price of your car or increase the profit margin. Or both.
Increase profit margin, if that's possible. Are you really serious when you say they'd charge you $10k to replace the "6 computers" in your car???
The down side to that is that if the single computer fails, all those functions go away.
The problem is when you use OS's like CE it is entirely possible that the single computer will fail. When you develop it all on a microcontroller and get rid of all the fancy BS, you can get everything into a single chip and be stable.
You know, I really think it comes down to keeping Microsoft as far away from anything of any importance. And I say that in all honesty, not just to score points with the anti-MS crowd here.
Re:CE (Score:5, Funny)
dd if=/dev/gastank of=/dev/engine bs=1024k count=100
Anyway... ever think that this could be the result of shitty programmers and not the OS's fault? I.E., the functionality to do various things in an automobile are NOT built into Windows last time I checked...
Re:CE (Score:3, Interesting)
Re:CE (Score:3, Interesting)
But, that's not the point. Their programmers have gotten much better (or less problems are reported).
Your car is already coontrolled by computer. Everything from the climate control and door locks, to every function of the engine. Not many cars even have distributors any more.. The ECM runs everything.. Quite a few cars don't even have throttle cables any more.. The computer reads the input of your foot, and adjusts the throttle accordingly. Makes it easier to work your ABS and Traction Control functions.
I wouldn't trust WinCE in my car though. I'd trust the guys that GM has putting together those little assembly programs that run my car now, to build an OS first.
I took my 2000 TransAm WS/6 racing on a road track a month or so ago, and have renewed faith in their abilities.. I'd go absolutely flying (over 100mph) into a turn, to stand on the brakes at the last second. Not just hard braking.. I was pushing as hard as I could.. I'd feel the ABS push back just enough, and while it was, I'd be downshifting. Never lost control. I was driving hard enough to stay faster than the all Porsches and some Corvettes on the track. The Z06 Corvettes though, *THAT* is some performance.
I won't even consider how many computers I was abusing at the time.. Sure as hell the engine's computers didn't give up on me once.. Faster than I could get my foot from the brakes to the gas, it was ready to shove me back in the seat, and pull away from everyone.
I have yet to find a Microsoft logo on my car..
Re:CE (Score:4, Interesting)
Anyway, I really hope nobody ever finds a Microsoft logo on their cars..except BMW.
German != reliable (sometimes) (Score:4, Interesting)
I've driven a few cars of European origin (or those that use Euopean components) and have found that the electrical/electronic systems in all cases were the weak points. It doesn't matter if the components--from the hall-effect sensors, MAPs, up to the ECM unit--has Bosch (Gremany) or Renix (France) or whatever, they have been a source of aggravation.
It seemed there were some exceptions. I owned a Renault awhile back that had a nifty little travel computer that did gas mileage, average speed, trip odometer, etc (sourced by Jager if I remember right) that always worked and was remarkably accurate--even when the car was over 10 years old. The same car was also equiped with a nice Blaupunkt radio. When I had to get behind the dash to fix other problems I had to pull out both componenets. Much to my dismay, both the Jager travel computer and the Blaupunkt radio were "made in Japan". Hmm...so much for the exceptions. On the other hand, things that DID go wrong (intermittent wipers, turn signal/horn/everything stalk Renalt was infamous for, intrument cluster illumination) all involved parts that were made in Germany or made in France.
I'd say as far as electrical and electronic engineering goes in may cases, Germany raks marginally better than France (which ranks marginally better than Britain). If you doubt me then look closely at a lot of the high-quality "german" electonic components (automotive or not)--and don't be surprised if the whole thing wasn't made in asia, or at least was made from mostly asian parts.
If it's "pure german" electronics, expect it to be overbuilt or overengineered and somewhat "rube-goldberg" in terms of design (it seems German electronics designers intinctively want to fly from Berlin to Paris by way of Beijing).
I'm sure eventually such quirks (like a crazy radio or brakes going on without brakelights and so on) will kill someone, and a lawsuit will be inevitable (perhaps sooner, especially if enough people in the Litigous States of America get pissed off--or hurt).
Re:In the coders defense... (Score:2, Insightful)
Come again?
Your PC is memory, bus, proc, a few cards, and storage.
The civic is a real-time device that needs to account for analog input, meet a minimum standard of safety and efficiency, and when it crashes ("breaks down") must crash in a logical manner.
Oh, your INTERFACE might be more complex--but the ITEM ITSELF is not.
Sheesh.
Re:Possessed car w/Windows? (Score:3)
Not only is it just plain unfunny, but you've reached a new low in stretching to take a crack at Microsoft.
This is the lamest post I've read all day.
Stephen King is not dead (Score:2)
does mplayer have AAlib output then? (Score:2)
Re:Why Windows? (Score:4, Interesting)
How so? Windows is a proprietary OS and has more than its fair share of virii which spread partially because of the gaping security holes found by outsiders without access to the code. All a potential virus writer would need is access to one of these cars to start probing it for vulnerabilities. If you're meaning that a virus couldn't jump from a computer's OS to a car's and possibly back again (and therefore couldn't spread over an internet made of computers); I wouldn't be so sure, cross-platform virii exist. Personally I'd never drive a car where the computer has any control over critical systems.
(OT: reminds me of a sig I saw somewhere that read: "As a computer I find your faith in technology amusing")
Re:BMW 7 Series customer age a major issue. (Score:5, Interesting)
Pinning the problems on the user is really wrong in this case. This system was destined to fail. The only one that i've tried that was worse was in the Buick Reatta [reatta.net]. (Anyone remember that?)