Embedded - 33: Quitting My Finnish Lessons
Episode Date: January 2, 2014Alison Chaiken (Google+) and Elecia discuss what you need to know to get into development for the automotive market. Check out Alison's she-devel site for a big list of links and resources or go to ...a Silicon Valley Automotive Open Source Group meetup to say hello. A small subset: Open source engine management system on DIYEFI Car hacking site MP3 Car Vehicle standards ISO-26262 CORRECTION: In the show, Elecia talks about airplane certification levels as though only the size of the plane matters. As listener Burko points out, the certification level also depends on how critical the subsystem is. Those seatback tray tables don't have to be certified to DO178A, but the artificial horizon does.]
Transcript
Discussion (0)
Welcome to Making Embedded Systems, the show for people who love gadgets.
This is Elysia White.
My co-host today is Allison Chaykin, an expert in embedded systems in cars.
Allison, thank you for joining me.
My pleasure, Elle.
I've enjoyed listening to a few episodes of your podcast,
and I hope I can contribute some information that listeners will find valuable.
We've met at a few local events, and I know you have a background in physics, and you went to MIT.
But before I continue to mangle this, I remember Cadillac, and, well, tell us about yourself.
Well, I do have academic training in physics.
I worked in physics for about the first 20, 25 years of my career.
I worked in clean rooms on optical data storage and magnetic recording materials.
But I was always enthusiastic about laboratory automation,
and I was always the computer person in a group of physicists.
And about 2007, 2008,
when the HTC G1 first Android Linux phone came out and Bug Labs came out with their little OMAP3 developer kits.
I just thought, that field is so exciting, and my career is really diminishing clean rooms.
Silicon fabrication, magnetic devices are just really dwindling in Silicon Valley,
and that career is not very viable anymore. So why don't I
just become a software engineer? I realized that the things I like to do for a hobby were actually
more viable career paths than the areas of my training. So I started taking classes at night
at UCSC Extension in programming, the first ones I ever took. And here I am now. I've actually managed to leap the chasm and become
a software engineer, as much to my surprise as anyone else.
It's nice that your hobby worked out to be a career. That doesn't always happen.
But I do remember something about Cadillac or Lincoln. Was that one of the first times
you got involved with cars? Or how did you get involved with cars? Well, one of my first jobs was at Nokia. May what's left of them rest in
peace. I worked on their Linux for phones called Mego. That was a big joint collaboration between
Nokia and Intel. And I was at Nokia at the time of what people call
the allopalypse, when Nokia announced that they were going to switch over to Windows Phone,
which I had no intention of doing. And so on that day, I thought, I'm quitting my Finnish lessons,
and I'm going to start on yet a new path. What should it be? What is hot?
And I knew that Mego had an automotive version called Mego IVI,
which stands for the hair-raisingly awful
in-vehicle infotainment.
And I thought,
cars seem like an exciting platform for Linux
and for embedded.
Let me go and investigate that.
And I've been working on that ever since.
And I have not actually worked for Cadillac.
Cadillac and General Motors are some of the first companies
to ship Linux in the Western world.
The first car companies to ship Linux were actually in China,
interestingly enough.
So I have been excited by Cadillac's Cadillac user interface
just because it's based on open source software.
And in fact, you can get the source code for the Linux kernel
for Chevrolet and Cadillac cars from GM's website.
That's pretty neat.
And you work at Mentor now.
I work for Mentor Embedded Software Division.
We're actually the largest vendor of automotive software, not to go too much into an advertisement,
but there's a fascinating array of software and electronic design and system integration issues around automotive,
and Mentor has offerings in most of those spaces. So when we talk about the automotive
market, you said infotainment, which is a horror of a word all by itself, but that's definitely an
area where I can see Android and Linux. I mean, sure, you need an entertainment platform and that
makes sense. Even the GPS works out with Android and Linux. What else is running an operating system that big?
Well, cars are really rolling data centers now.
Cars have as many as 100 microprocessors in them.
A few of them in a vehicle with that many little CPUs
will be running a general-purpose operating system like Linux or QNX or Windows CE, perhaps.
Most of the processors, you won't be surprised to hear, are embedded controllers, some 16- or 32-bit microcontrollers.
Some of them will be running real-time operating systems like Green Hills Integrity or Mentors Nucleus.
Some of them are just kind of bare metal controllers that are operating PID loops and the like.
And then a few of them are higher function devices, system controllers, little servers of various kinds that are running these higher
level operating systems.
And QNX, interestingly, which has been reborn as BlackBerry OS now, its operating system
and BlackBerry's handsets, is actually the category leader in automotive with people
say about 60% market share.
In all of these 100 processors?
Or just in the big ones?
In the big ones.
Okay.
The smaller ones are liable to be running much simpler software.
Yeah.
Right now, the big development in automotive is a new-ish suite of standards called AUTOSAR, which is an acronym, capital A-U-T-O-S-A-R.
And AUTOSAR is a set of standards for developing a runtime that's promulgated by a consortium. Fundamentally, the automotive industry
has undergone a major shift from every vehicle having purpose-designed, handmade software that
bears no relationship to the software of other vehicles, to a real push for common standards that are
platform independent and promoting agile development and software reuse. And AutoSAR
is a major sign of that trend, as is the move towards Linux. AutoSAR actually begins with
UML models that basically compile to runtimes for 16 and 32-bit microprocessors.
And so it's kind of an IDE. It's kind of a protocol suite. And it's really a development
platform to make, almost to design the entire LAN and the cable and wiring harness that goes with
it for the entire vehicle.
I've heard of projects like that for medical devices, and it's never gone well. It's just been too big and bulky. And the reason there are so many individual processors is because they all
have small little tasks to do. Do you think they're going to be successful in the broad scheme of trying to get everybody to go from, I mean, an IDE and a UML?
That's a very tactical how you do it.
I totally agree with their strategy of let's get Lego building blocks and start putting those in cars instead of having specific things for each car.
Are they really trying to do both strategy and tactics?
Well, auto SAR is not specifically the area that I'm working on, but what I understand about it is
it's met with fairly wide adoption. Really, the hard part of building the automotive LAN
is not making the individual control applications for the
individual processors. It's the fact that there are so many time-critical signals and messages
that have to be passed among the nodes of this distributed system. So you're really designing
a network when you design a car. A network in the sense of a computer network with the various buses that
apply to automotive, some of which are familiar from general purpose computing and some of which
are more automotive specific. And so the timing analysis that's kind of familiar from real-time
operating systems applies to the automotive lands as a whole.
And in a system with as many processors as you have in a car,
that analysis is complex indeed.
And so I think the advent of AutoSAR is in part the fact that
there are a lot of connections that need synchronous protocols,
that need time-critical communications, and the modeling of them exceeded people's capacity to And I suppose you could use the autosar protocols
and the standards for the runtimes
probably without starting with the UML tools.
But I don't really know what approach people are taking at the automakers.
This was actually a bit of a diversion, but I was curious.
So let's go back to the very high level.
If I wanted, if I was a software or an embedded software engineer, and I wanted to get into the
automotive market, what skills do I need? It's a LAN, is that a network, but I'm not looking at
TCP IPM. I always hear about CAN being what autos use.
So CAN is a set of legacy buses.
It stands for Controller Area Network.
CAN is used in industrial control systems very often beyond automotive.
CAN will be in cars for a long time because there are so many useful devices.
We call them ECUs, electronic control units or engine control units on automotives.
So ECU is an acronym you see everywhere.
So many of the ECUs talk on CAN and have a lot of road miles
and are robust and automotive hardened and proven. Even if you think that
the old processors should go away and be replaced by shiny modern new processors, which
I don't necessarily think that, but even if you do, you'd have to consider how many of 60 or 100
microprocessors you'd want to change and design in one generation. So CAN will be with us for a
long time. There are a lot newer protocols like FlexRay. There are many varieties of CAN, some
of which are faster, some of which have more security. CAN is not something I think that people really need to know about.
Yeah, I'm using it at work right now.
It seems, I mean, it's a serial bus.
It has multi-masters,
which means there has to be some arbitration between people.
It's a message response thing.
Everybody's got an address, and I'm using it in a closed system,
so we kind of assign our own addresses.
And it is pretty slow.
We don't have to worry about security,
but that was one of the things that was a little mind-boggling,
that when you use CAN out of the box on a processor's,
I mean, we use a CAN driver from a TI processor.
And it just, there's not very many bytes.
It's like eight bytes in a message,
and you can expand it up to 64, but it's not much.
Well, it depends on the CAN protocol.
Different CAN protocols have different payload data units,
as they say.
But Ethernet AVB now is seeing wider jobs in cars.
There's another protocol called FlexRay.
Are those faster?
They're all faster, yeah.
So there's a wide variety of connectivity types being considered.
Ethernet AVB is actually a standard that comes from streaming media in that it is a form of Ethernet with time division
and essentially time slice reservations to guarantee synchronization.
And automakers are quite interested in that.
Cable and wiring cost is actually a big concern for automotive.
It's very hard to pull coax through cars, for example. And every time you add a cable to a car,
you're adding a part that a dealer is going to have to stock, essentially. So the bill of materials
for cars is a big worry, especially given that automakers traditionally support them
for 10 years or more.
And so surprisingly to me,
wireless within the vehicle is starting to gain a foothold.
That's a little scary.
I mean, one of the things about CAN that I do like
is that it's differential, which means it, it's pretty robust.
You don't walk by somebody's microwave and your can bus goes off. Um, and that actually happens
with my wireless in spots in the house is that you go by the microwave and poof, now it's gone.
But gosh, I wouldn't want that to happen between my foot and throttle.
Well, we're not talking about the foot and throttle.
We're talking more about, say, giving the rear seat passenger a touchpad that they could use to control volume of a music player or something like that.
Non-critical functions.
There are also one-wire variants of CAN, like LIN, L-I-N, which are used.
There's a movement towards twisted-pair Ethernet in cars, interestingly,
because twisted-pair is so much cheaper and easier to pull through cars.
Why is that? Because the cable's cheaper or just because it's small?
Apparently coax is just stiff. Oh, yeah, it is pretty stiff.
Not necessarily having the, especially,
well, if you get coax with the thermal properties
that you need for vehicular environment,
then it's stiffer and more expensive, I guess.
Right, because they do like minus 40 C to 80 C,
and that is really freaking hot.
Vibration is also a problem.
Interestingly, in automotive parts, the size and spacing of printed circuit board connectors tends to be larger.
CAN connectors are expensive if you get the proper ones.
So CAN, I never really answered your question about what skills somebody wants to work in automotive embedded might need. It's a pretty... Sounds like CAN is like not really. Not really.
CAN is a legacy protocol and to a large extent we probably have enough people that know about
legacy protocols. The movement is really towards encapsulating CAN
and to some extent even virtualizing
some of the lower capability microprocessors
in guests in a different OS.
One of the hot fields in automotive actually is virtualization,
which sounds kind of strange,
but it's common for automakers to run Android
for the aforementioned infotainment system
for playing games, playing media,
in a guest on top of a hypervisor, either in a what
we call a container or jail kind of environment, or actually controlling one core of a multi-core
processor to which they are confined. What else would this hypervisor do?
The important thing about hypervisors is they really can have locked down security. What else would this hypervisor do? store. And no matter how resource hogging or badly behaved the application is, it can't get out and
get to the part of the system where the safety critical functions are going on.
So Hypervisor, that's just a virtual machine. Like I could run in my Mac, I could run a Windows instantiation using Parallels or whatever.
Is that just what a hypervisor is, or is there something else to it?
There are different kinds of virtualization.
There's kind of type 1 hypervisors that run on the bare metal
and are actually what boots when the power comes on.
Kind of like a BIOS in my computer?
Well, BIOS is really the firmware.
I'm thinking more of the offering that VMware has,
where you actually boot their hypervisor on the metal.
Xen is similar.
And then Xen or VMware's hypervisor or Mentor's hypervisor
knows that there are guest operating systems,
and it can bring them up and down.
So a multi-core processor can be operated like a little data center. This is a trend across embedded, not just an automotive,
but an automotive because of the concern about security
and firewalling off kind of entertainment
and information applications from the software
that runs the car, the considerations of virtualization are particularly acute.
A lot of the ways that people will get to real security on automotive buses, which we do not have now, is through virtualization.
The other advantage of virtualization, I think in general of interest for embedded, is a way to
save the expense of supporting really old legacy hardware is to have an emulator of it that runs
as a guest. That's an increasingly popular option.
This sounds crazy, but if you have a quad-core processor,
you could use one of the cores to pretend that you have a 32-bit MCU there.
And some people are considering doing that.
That's not so crazy.
I mean, technically, if you have one of them controlling the other three,
you have three 32- controlling the other three, you have three
32-bit cores that are available. And if you only need it for a little while,
you can close down whatever the software is, especially for an infotainment system that is
one minute it's playing games, the next minute it's running a DVD, and the next it's doing some
navigation display. Sure, you want to be able to kill and restart that easily.
So it makes sense.
It's very much what data centers do when they migrate applications
from a data center on the West Coast to a data center on the East Coast.
So the thing that fascinates me about computer science
is really how ideas about power management from embedded, tiny world, have gone to data centers and helped them turn off machines and save electricity.
And meanwhile, virtualization, which was developed for data center applications and would initially have seemed to have little application to embedded
now has come in the other direction.
So it really is a very fertile crossbreeding of ideas there.
You mentioned powering.
One of the questions I got from Twitter for you was
how do you power an MCU inside of a car?
I know CAN bus can provide some power,
but is there another cable with power?
And what kind of power?
And if I was building a board,
would I need to condition the power?
Or would I get 3.3 volts and everything's clean
and it's happy to run?
The easiest way to solve the problem
is to get an inverter that plugs into the 12-volt adapter
and the dash. That's... No, no, if I was on the other side, if I was working for a car vendor,
a car manufacturer. Right. Oh, okay. I see. Well, you know, there is the 12-volt power
from the car battery that's available. And that's clean. I mean, that's pretty clean. I don't really know in the
ECUs what type of power
conditioning
is used. There's such a variety
of them, such a different
number of applications.
So infotainment is a huge application
and I can
understand some, I mean,
is the
airbags, does it have an ECU system or is
that all mechanical and happens automatically? What other hundreds, give me some more examples.
Well, the applications inside the vehicle that are personally exciting to me are the ones called
advanced driver assistance systems, which are the new safety applications that have gotten a lot of publicity.
I'm referring to features like blind spot detection, lane departure warning, adaptive cruise control, self-parking.
I work on firmware and device drivers for Linux
that help enable such applications,
and I am amazed by them.
I mean, every once in a while,
I stop and think what we're making,
and it's like science fiction.
It's still a lot of compiler failures
and source code management
and all the usual embedded headaches. the environment around the car, and that bowl image gets fused with ultrasound and radar data,
and it enables all these other applications.
And that's just amazing.
I mean, it really gratifies me to be part of building safety systems like that
that will, I firmly believe, keep people alive.
And, yeah, when it works, it's magical and magical in a way that's
wonderful. So safety systems, what kind of standards
do you have to deal with? I've done FAA and FDA.
One of the listeners, Mike, asked about, is it similar to
DO-178C? Have you ever done any of the FDA or FAA ones?
I have not. There are standards coming.
The one that everyone is thinking about is called ISO 26262, which I gather is directly inspired by
medical FDA standards, but is a little bit automotive in flavor somehow. ISO 26262 is a little bit automotive in flavor somehow.
ISO 26262 is a standard for real-time operating systems that would run on some of the ECUs.
So not in general-purpose operating systems like Linux or QNX,
but the operating systems analogous to VXWorks, say, that people
would be familiar with. Or you mentioned Integrity. Integrity or Nucleus or something like that.
Those types of operating systems now are seeking to be certified as our hypervisors with ISO 26262.
And, of course, there's a plethora of other standards that apply to vehicles.
They have emissions, so there's FCC.
They have crash testing.
That's the National Highway Transportation Safety Administration.
There are safety bodies for transportation in Europe and Asia, as well
as in North America. And of course, road standards are different and separately regulated as are
communications from vehicles by telephony and FCC. So the number of applicable standards and certifications and tests that are applied to vehicles is truly mind-boggling.
But it's still hard because it's software.
And, I mean, when you test the structural integrity of a car, you use a machine to do that.
And if you test one car and they're all built with the same materials you're pretty good but once you start adding a gps and a time basis and leap years suddenly you have a recipe for
the car only running every third tuesday when the moon is full how did that's the sort of
certification and software standards that i i wonder are there help? I've heard of MISRA-C.
Is that relevant?
Well, let's get back to the question again of what kind of skills can someone bring
to get a job in automotive embedded?
And test-released engineers, people who understand build systems we use Jira
Bug Tracker and GitHub like a lot of projects
so the agile
development processes that other industries use are also used and embedded
and we need people that are expert at
configuring and running those systems as well as everything else.
The testing is, I think, particularly fascinating. that Toyota doesn't consider a piece of software tested for meeting their specifications
unless it runs on their hardware
with their other software applications running.
And the reason for that is that the demands of automotive
on inter-process communication
and just the huge variety of real runtime situations that occur is so unpredictable and so different.
A big problem in automotive, for example, is the swarm of messages that microprocessors
want to send to each other when you power cycle the car.
Drivers may turn the car on, let it run for two seconds,
the systems are almost up, and then they turn the power off again
because they realize that they forgot to lock the front door.
Exactly.
And so it really is a data center with a full LAN.
And just imagine you have a data center, you turn it on,
and then you say, oh, no, I don't want it on,
and you shut it off after a second.
This is horrifying from the point of view of the design engineer. How do we make sure that the file
system comes up again? What state are things going to come up in again? From the point of
view of security, to me, this power cycling is a scary problem because we all know that the order
in which parts come up is going to be a
little bit different every time when you have so many of them. And if you had a lot of time on your
hands and you could automatically power cycle a car and connect to the bus, it's going to be
pretty hard to keep somebody from not getting in, I think. So there was another interesting story from NVIDIA where basically they decided to produce a kernel, a Linux kernel for the car, using the Android kernel that was shipping on their processors, NVIDIA processors for phones.
Because Google had tested that kernel, and I guess a couple of the phone makers had tested that kernel so much with the Tegra processor.
And the folks who gave the source code to the automotive engineers said, you won't find any more bugs.
This is the most tested piece of software ever.
And of course, the automotive applications completely instantly found a completely different set of bugs because actually while the original tests had coverage tools, the part of the code that automotive hit over and over again was actually a separate untested section compared to the telephony application.
So the use case really is different.
So the amount of testing done by, you know,
we're delivering software to automakers.
We test it immensely much.
The automakers test it more when they get it from us,
when they find new bugs.
They certainly find them in my code.
And then the National Highway Transportation Safety Administration tests it.
All kinds of standard bodies test it.
And National Highway Transportation Safety Administration
is going to start to add consideration of these software safety systems
to safety ratings for new vehicles.
I think that's a good idea.
And I think Toyota has given us that as a big present with a bow on it,
thanks to the recent lawsuits.
And I'm not opposed, really.
My car can do as much damage, certainly,
as the temperature sensor that I worked on for medical products,
and probably to more people at the same time.
When I did FD, Aero Certification,
the ratings, the DO-178C or B or A,
A is a jetliner,
and it has to be super tested and provably tested
because you can not only kill the 500 people that are in the
plane, you can kill a whole bunch of people on the ground. Whereas with B, it's a smaller plane
and that's how they rate it. And you can think of cars the same way. Cars definitely have
the potential for more damage than just who's inside.
And I hope that we do see if you don't have a, I mean, if you're doing agile development
and you aren't doing test-driven development, that's kind of a minus one in a box.
And if you don't have a plan for how you're doing development, it's just all kind of random.
That's a minus one in a box.
And at the end, you total it up and hopefully somebody will say, yeah, it looks like these
people know what they're doing and those people don't. And so if you're going to buy a car and
you want to buy a good car, buy the one with the people who know what they're doing. Kind of like
the star system with the safety. It's a little scary to me now that you could just write code
and not have a third party at least verify the methodology.
I believe across embedded,
there's a real question about the quality of software.
And I don't mean to say that I have some secret suspicion
that there's
terrible code everywhere.
What I'm referring to specifically is the remarks made by Karen Sandler of Gnome Foundation,
who has spoken very eloquently about the defibrillator she has implanted in her body and how she
would like to read the source code for that defibrillator.
And she, as the patient, cannot get a copy.
And she, as the patient, cannot even read out the status logs
and data from her own device.
She has to go to a physician who has a proprietary instrument to do it.
And since she knows about software,
this makes her very angry.
But what if somebody else had the device and could read it from her and she didn't?
I mean, it's a control of the device.
She would just like a copy of the API.
Yeah, but then if she had a copy of it
and she wasn't a nice person
or it fell out of her hands into not-nice-person hands,
then can they stop her heart?
I mean, I think that's the other half.
There's the, I want the data, I want access to it,
and I want it all to be easy to use.
And then the other half is,
I don't want anybody else to have access to it.
This is private, this is potentially dangerous.
And balancing ease of use with privacy, it's tough.
I agree.
I'm not saying that's what defibrillators are doing.
I'm just saying that that's a problem I keep seeing
and trying to figure out how to fix.
We're very much struggling with those questions in vehicles.
The automotive industry really wants to encourage
the participation of outside developers.
They're releasing a lot of source code.
They understand that they will only retard the advancement of their industry
as far as the enablement of features like autonomy and connected cars
if they try to produce all that software in-house.
They have understood that they can't do
it and that they spend more money and end up with worse products that way. But how industries can
collaborate with outside developers and enable them to participate in the production of this
software and yet have secure systems that maintain privacy is,
is a hard problem and we're still working on it.
And I don't think we're going to solve it today.
Probably not even this year,
maybe next year.
No,
but the,
you know,
the,
everybody agrees that the goal is to reduce deaths and injuries.
Volvo,
uh,
says no deaths in Volvo cars in 2020.
That's their stated corporate goal.
I think it's actually possible.
I think so too.
I mean, they're getting much lower.
So you mentioned connected cars.
Do you mean, we talked about wireless inside the car.
Do you mean connected cars as in to the cloud or inside the car?
What do you mean by connected cars?
Connected cars is another very hot area of development.
We already see applications like usage-based insurance
that's gotten a lot of press that are based on connectivity.
A lot of products...
That's where you can let your insurance company monitor your driving habits,
and if you speed a lot, they will raise your rates?
From what I've heard, all the programs
actually involve lowering your rates
if you comply with the rules, and no penalty.
I think you have to maybe pay for the installation of the device,
but they promise not to raise your rate.
Although presumably if you like to drive 100 miles an hour on the highway,
you wouldn't volunteer for the program.
That's an early example on STAR from General Motors
and other such roadside assistance systems are another example.
Those are all based on 3G data transfers.
There's a lot of activity now around new types of data transfers in cars. There's some discussion of using the
sidebands and HD radio, so to speak, digital radio broadcasts. There's some thought about using TV white space. And there's dedicated spectrum at 5.9 gigahertz for intelligent
transportation communications, which could be used by a new Wi-Fi variant called 802.11p.
And that's also under rapid development. And so would these provide more traffic information or
would it help the car tell us what route to go in order to ease congestion,
or is it all about, I'm hurt, come send the police and ambulance?
What are connected cars going to do for us?
That whole topic is under a lot of discussion.
There were two big field trials in 2013, one in Germany called
SIMTD, S-I-M, lowercase, capital T, capital D, and one in Ann Arbor, Michigan called Safety Pilot
that was run by the University of Michigan Transportation Research Institute, and the Department of Transportation.
And those trials both tested safety applications in what's called a,
well, safety pilot mostly tested V to V, vehicle to vehicle safety communications,
and SIMTD more tested V to I, vehicle to infrastructure or roadside unit communications.
And in both cases, the idea is that drivers would get warnings about imminent hazards.
You could get a warning from the car ahead of you that there's an icy spot.
You could get a warning from the infrastructure that you're approaching a curve at an unsafe
speed. Those are some examples. Those would actually not use TCP IP. They would use dedicated
automotive protocols. In addition, there's some thought that less time-critical data like navigation updates or weather can come either via LT or via TCP, IP, kind of Wi-Fi, also in the same spectrum.
And all this is subject to a lot of lobbying and arguing by standards bodies and the like.
Well, I have to admit, our car can talk to the Internet and the cloud,
and we have iPhone apps that will let us do things.
And the only thing so—well, I guess there have been two incidents that it's been useful.
One was I was in a class, and my husband needed to bring me something and he didn't have any idea where my class was and I was busy. And I said, just go to the car. And he
realized that he could just look up where the car was, which of course is great for if you lose it
in the parking lot. Um, but the, the idea that the car in front of me could tell me that the reason the guy just swerved is
because there's a large metal object in the road well that would be useful i could i could see that
but it's still going back to ease of use and privacy and security well i think there are a lot of applications that are very compelling that have fewer privacy considerations. My favorite one that I always yak about is Greenlight Optimal Speed Advisory. is thinking of spending on bus rapid transit, I think they could instrument the same roads
with traffic signals
that would inform approaching vehicles
of their phase, essentially.
And it would be well within the bounds
of current technology
to set your cruise control
to pick the speed
that allows you to hit every light on green essentially i think i've done
that on lawrence like twice in my life but yes that makes sense you you could have more communication
between the lights and the cars and tell the cars that if you go 30 miles an hour
for the next half an hour you get to have greens all the way well what would be better
on a road more fuel efficient as well.
If you consider a road like El Camino
that has a lot of pedestrian activated crosswalks,
if signals could tell you when you're far away
to slow down from 30 to 25,
then that's when you're really getting a benefit.
Yes, I think I certainly would prefer to go a little slower than to be stopped.
That's always just mentally it's better.
I think there's a real analogy between intelligent transportation systems and the utility grid
in that the utilities have saved a lot of money in not building new power plants
by encouraging conservation.
And I think transportation agencies, by investing a little bit in these intelligent
transportation systems and using our current transportation network to better
efficiency, that we'll be able to avoid building a lot of roads.
It starts sounding like self-driving cars are the wave of the future, which
I suppose I totally agree with. The self-driving car phenomenon is really fascinating.
When I talk to people about it, they say, I don't want a self-driving car. And I say, well,
what do you think of adaptive cruise control? Oh, I like that
idea. What do you think of blind spot detection? Oh, I definitely want that. What do you think
about self-parallel parking? Oh, that would make my life so much easier. So if I list all the
applications that are part of autonomy, people actually like them, but the idea makes them
nervous because no one knows what an autonomous car would really be like
oh i can i can imagine it'd be great i could sit there and read and it would do its little
driver thing and then if it needed my attention it would tell me
so you're gonna buy the first model when it comes out no probably the second
but yeah i would be an early adopter i I hate driving, so I totally would like a car.
Well, that actually brings up a question
from Brian King from Twitter.
How long do you think it will be
before the time for a new car metric inside of our heads
is based more on software obsolescence
than on mechanical problems.
If you're rich, you should run right out and buy a car with all these new features now.
I personally have not. I'm embarrassed to say that I know that my 2005 Mazda 3 is running
Windows CE, which was not what I would have picked if I were picking by software. And so the technology in cars is changing so radically.
I don't think the average person has really understood yet
how quickly the industry is now moving.
The new cars have so much more capability.
They're so much safer than the older cars
that it's really a little bit of a boggle.
Right now, of course, the big changes are coming in cars that, you know, you have to be pretty
affluent to afford, but those changes are trickling down to the other models, and it won't be long
before economy cars have features like the self-parking and driver drowsiness detection.
So I think software will become a major consideration in car choice very soon, even if it's not now.
I gave a talk in September 2012 called The Coming of the White Box Car.
I really think that we will see Kickstarter cars.
I think we will see people replacing a lot of the electronics in their cars
or adding to it with aftermarket units.
I think people will be interested in flashing their own ROMs in their vehicles,
and I'm not sure what the consequence of that will be.
That's exciting and terrifying.
Exciting because I totally want to do it.
Terrifying because I'm afraid of all of the other people and what changes they'll make.
I agree.
I'm even worried about some of the changes that I make.
Yeah.
So you have a website,
she-del.com.
She-del.
That's the way I pronounce it, yeah.
And you speak quite a lot
to the open source community.
Is there any overlap
between automotive and open source?
There increasingly is a conviction
within the traditional automotive community
that open source is the way to go.
Automakers before were a little bit prisoners of their contractors,
as is often the case in proprietary software development.
They would employ an integrator
to produce a system with software on it,
and if the integrator didn't do a good job or was late,
the automakers still had to work with that integrator
because other vendors didn't have the source code.
Now if you look at standards like AutoSAR
or automotive Linux,
automakers can go to a wide variety of vendors and get little bits from them, or they could fire
one contractor on Linux or AutoSAR and get another one because their standards are real standards, at least to some extent. So open source is gaining a lot of traction in automotive.
QNX, which is proprietary, is still kind of the category killer.
But as I've said, the market is really changing.
A lot of other software that folks are familiar with
is running in vehicles.
There's a lot of use
of HTML5. There's a lot of use of the QT toolkit. So if you are familiar with embedded development,
you'd immediately notice a lot of components and use that you're familiar with. Fair enough.
You also run the Silicon Valley Automotive Open Source Group.
Is that right?
Silicon Valley Automotive Open Source is a meetup.com group. It's about two and a half years old.
We meet monthly and have speakers about intelligent transportation
or automotive software and electronics topics.
We have about, I think, about 930 members,
and we've had presentations by Ford and GM and Toyota and NVIDIA
and Mentor and Intel and kind of all the big local companies
that are participating in automotive,
as well as a number of small projects that are actually very exciting.
One that just comes to mind is the Bay Leafs,
the Nissan Leafs owners organization here in the Bay Area,
which is full of smart engineers and which actually collaborates with Nissan
and has hosted a number of Nissan engineers
who have come out from Japan to see what kinds of technology
some of the tinkerers and bayleaves have implemented themselves.
So some technology has actually made its way back to Nissan
from local developers here
in the Bay Area. And so are there car hacker projects? I mean, are there groups? It sounds
like there's like a group of people who are modifying their cars. Are there multiple groups?
How do you find folks who are doing that? There are, of course, a long history of shade tree mechanics and car modders and hot rodders.
Yeah, but software mods are different.
Software mods and electronics mods have been gaining a lot more traction. The history of
that area of hacking is indicated by the name of the primary resource on
the web for finding out more information, namely mp3car.com. That's just mp3car.com.
There are moderated forums and a store at mp3car.com. The quality of the information there, I've found, is quite high.
There are a number of people involved with mp3car.com
who are really serious experts and designers,
and I've purchased some things from there.
The other community I recommend is scantool.net.
It sells very nice equipment and has really good user forums.
The big non-commercial projects are Team Wikispeed,
which has run out of Seattle and is building some cars.
There's Local Motors, another car construction volunteer's effort.
And the fun one, I think diyefi.org. That's DIY as in do it yourself,
EFI as in electronic fuel injection.org. That group has a product called Free EMS,
and they're making their own engine control units. I've got some pictures up on Flickr of my friend Michael Carpenter with a little breadboard tuning his car
with sliders on a software application he wrote
while I sit in the passenger seat.
So it's a lot of fun.
I do think that the time will come in the not-too-distant future
when one of these groups will
start selling cars that ordinary consumers can buy. I mean, not necessarily the hackers in
DIY EFI, but I do think it's increasingly close that someone could start manufacturing
custom cars the way that you can get custom
furniture made, for example. Well, that's kind of cool. So we started the podcast talking and
we've a couple of times gone back to what skills do you need for embedded in automotive?
Sounds like one of the ways you could get in is by modifying your own car.
It's an interesting path. But what other advice would you give for people wanting to move into
this area? Now's a great time to get into the area. I can tell you that in automotive Linux
business that I work in, our sales are up 85% over last year.
That's just amazing.
So there's a tremendous boom on.
There's really a shortage of people to work on projects like the hypervisor.
If you know something about virtualization, the security problems are hard.
So people who know about network security are needed.
The networking technologies like Ethernet, AVB,
it sounds unhelpful to say any area of computer science,
but to a large part it's true. I believe that most of the major projects and the big companies are hiring. Genevi, the open source automotive consortium, which is genivi.org, is a membership organization that includes all the major manufacturers.
And there are a lot of open source projects up on the web from Genevi.
And you could easily get on their mailing list and learn what they're doing.
So the area is really rife with opportunity right now,
and I think it's no exaggeration to say that the field has got a shortage of engineers.
Well, that's kind of good news for all of us. I think that's it for the
show this week. Are there any last thoughts you would like to leave us with? It's been a pleasure
to talk to you all. I've enjoyed listening to your podcast. I've gotten a lot of ideas to think
about, so I hope I've provided something useful for folks to consider here. I think so. And maybe
next time we'll talk about electrification in cars, because that's something that I'm really
kind of into. Combine that with modding it, and I'm very into it. Thank you so much for being on
the show. My guest has been Allison Chaiken. I hope you've enjoyed listening to us talk about
automotive embedded engineering.
If you have comments or questions, hit the contact link on embedded.fm,
and I will forward along to Alison.
Or you can contact her via Google+.
The link will be in the show notes.
Thank you to the folks on Twitter who suggested a few questions for Alison.
And thank you all for listening.
Now, I was going to go for the obvious Henry Ford quote
about any color as long as it's black, because it's obvious. However, once you start reading
Ford quotes, wow, I got lost in the many relevant things he had to say. This one is a bit long,
but still true. So here is Henry Ford.
I will build a car for the great multitude.
It will be large enough for the family,
but small enough for the individual to run and care for.
It will be constructed of the best materials,
by the best men to be hired,
after the simplest designs that modern engineering can devise.
I'd say we could still use that.