 I hope you all enjoyed your lunch and I'm happy to introduce Nathan Wells talking about Automata Flames. Thanks. So now that we're officially started, I can tell you that the program describes this title for the talk. But since we're all here, I can tell you the real title of the talk, which is slightly different. Fun with sharp edges, corrosives, and fire, which is to say that when you deal with Linux and free software in the garage, you're talking about where you physically have to smack things around and wedge them into place, which is not always the case for free software people. And it's different because you literally have to worry about flying rocks in a car and salt water and solvents and things, which is not a normal operating procedure for a Linux box, at least not a Linux box that I've ever used. So like a brief background stuff. I'm specifically talking about DIY car hacking because there's less of that. What that means though is that I'm an amateur, I don't actually code in any of the projects that I mentioned. My day job is I write for LWN.net, which is a Linux news site, which means that I write about you people, and it means that if you stop doing interesting things, I will starve to death. So please don't do that. Also sort of background-wise, I'm from the US, I'm from Texas, which is a place much like New Zealand, except for the being an island and not being completely flat aspects of it, but it is a place where people drive everywhere. And so if I was giving a talk in London or Gothenburg where people take public transit, there might not be the same interest, but I think at some level, it's all related because vehicles of any kind need software these days. This is a side project of mine. It's my second LCA the last time I was here. I was in Canberra, not here, but I talked about open source fonts, which is my other side project. And open source fonts are doing really well today. DIY Automotive Linux. It's a little bit more uphill, but that's what makes it worth talking about. I'm skipping to the end just in case you want to take a nap. Here's what we're going to discuss. Automotive Linux is kind of a broad term, so I'll define a few things and if you get bored during this part, just wave and nod off. Then I'm going to talk about what I, my own personal build, which I did in my own car over the past year or so. And I'm going to tell you you can do the same thing. I'm going to tell you there's parts of it that won't work, but you should still do it. And my advice these days is to maybe build a dual boot system so that you can run Tizen IVI, which is sort of the only automotive-centric Linux distribution and then also run something else that you're more comfortable with that maybe you can play around with more easily and have software packaged for more easily, that sort of thing. I'm also going to do a little call to arms at the end because the application level is sort of where the big funded projects with the car makers have sort of stopped working. I think there's some movement where they're going to maybe do some more development there, but I really think we're at the point where the community has to be writing software or else the car makers are happy to hand that job off to the proprietary software people who are eager to be in another app store on another kind of screen. So that's something you should worry about and make life better for everyone by helping out. Okay, so generally speaking, automotive software, two separate domains. They don't meet one of them we call either ECU or ECM and the other is IVI. Specifically, ECM, they're the electronic control modules, little microcontrollers that handle all the things that make the vehicle do the vehicle-ing stuff like keeping the engine timing correctly and reading sensors from the engine and the cooling system, making the brakes work, the ABS correctly, that sort of thing. IVI is infotainment, which is a horrible, horrible word, but it just means the stuff that interacts with the driver and with the passengers. And if there are passengers in the back seat who are children, they maybe have different requirements than the driver does, as far as the driver should not be playing any kind of games, whereas the people in the back seat don't really need to be connecting on the diagnostic port and things. So yeah, to sum that up, it's either the vehicle or it's the driver to look at it another way. The electronic control stuff is the dangerous stuff that you should worry about and the IVI stuff is the non-dangerous stuff that you should also worry about. It's tempting to say that the electronic control module stuff is the stuff that will kill you and the IVI is the stuff that will distract you. That's a little too simple because these things are separate and they don't interact except that they interact with each other all the time and they overlap all the time. For example, your curb sensor that tells you you're about to run over a kitten has to chime in with an alert that overpowers your music just playing on your IVI system even if you're getting to the really good part of the song. So that means the software has to respond to events in these two separate domains actually crossover. Luckily, the people who worry most about that are car makers and so the DIY person, you get a little bit more flexibility as far as it's your own fault if you mess up and hit the kitten. As far as the ECM side of Automotive Linux, we can rush through that really quickly. Automotive Grade Linux, which is a workgroup at the Linux Foundation, there's some interest there I think in moving some of the microprocessor things onto Linux boxes, embedded Linux systems and be containerizing them just because more and more complex cars have more and more of these microprocessors doing traction and stability and things. So it's easier for them, but right now there's not a lot of that that you can do yourself. There are some people who do their own electronic fuel injection systems. I would see the DIYEFI.org site for that. The thing is that's very engine specific, not a lot of reasonable code unless you're talking about a really common engine like there's a Mazda engine that there's a lot of people doing DIY stuff with. But if you want to follow up on that, I suggest that you have already thought about it. So if you weren't planning to replace the fuel injection controller in your car before you came in today, you don't leave here thinking that's really something I need to do because that's a different kind of domain expertise and you'll know if you're the person who needs to be doing that, I think. As far as the landscape of Automotive Linux stuff, these are the main groups. I've talked about this little project of mine like three times and the first time I spent a lot of the hour talking about these different projects and how they relate to each other. I've kind of condensed that down to like a minute and a half now. But feel free to chime in with questions if some of this doesn't make sense. Genevieve is probably the most widely known of these efforts and that's a car industry consortium basically started by BMW and friends of BMW like suppliers that sell parts to BMW. If like 10 years ago BMW contracted out some model of car like the next 10 years the IVI system was going to be built by this supplier and what they got back was made with a month of this to Linux. And then two years later they had another car that they were updating and putting the IVI system in. They contracted out to a supplier that it should be the same as the first one and they got back something based on Windows Embedded. And then the third time they did that they got something based on QNX and they're like you know what we need to stop doing it this way and just establish a standard that all our suppliers can stick to. Genevieve is that their main product is the specification and the compliance tests but along the way they haven't been writing pieces of software that they need for the functionality that they want. You can tell by the name they really just care about the IVI side. Automotive Grade Linux or AGL is a working group which technically means it's just people who are interested in the topic. It was sort of started by Toyota I believe and like I said they're a little bit more nebulous. They're producing some code. They're a lot newer than Genevieve is. The other interesting overlap there is that Tizen IVI which is part of the Tizen project which is the Intel Samsung consumer electronics Linux thing. Automotive Grade Linux is using Tizen IVI to do all of its stuff. So they're working on some applications and things integrating some donations of code by their members and they're doing that on Tizen. You may have heard of Android Auto which is something that was announced at CES Consumer Electronics Show like last year and it's still kind of not clear if what that really is is an Android program that Google is trying to rope in car makers so they don't, you know, diverge too far from Android or if they're doing something of their own that's different. At this point you don't really have to care. There's only a few people Renault or Renault if you will is using Android and its IVI units and I think maybe Google just wants to make sure that they don't get too off base and cause them incompatibilities. The last thing I've listed there is called OpenXC which is a Ford only thing that is... I'm not sure how you describe it. They want to have an API for people to write their own applications and they've developed this specification for it but it requires a specialty hardware dongle that you plug into the diagnostic port on your car and it produces a JSON output. JSON in particular, I don't know. It's a little harder to tie into everything else. Really what it is though is it's a vendor specific program. The other car makers are rolling out their own vendor specific programs as well. OpenXC at least I care about because I have a Ford car and they are also pretty good in the sense that they publish a lot of stuff. You don't have to sign up NDA to see the OpenXC message codes for your Ford cars and things. So that's nice. I think I just actually covered all of that. This is what you actually get from these projects. There's some demos from AGL. There's an actual software from Geneva. Tizen sort of bundles it up. OpenXC, there's two flavors of that. One is Python libraries and one is Android stuff. Let's see. Moving on to my own build experience. Maybe clear, restaying is not the name of anything. That's just the title of the slide. I started planning in 2013, like in the end of the year when I discovered I was still a growing boy at the age of 38 and I'd outgrown the Miata that I'd been driving and didn't like trying to climb into it all the time. So I needed something bigger and I decided to really get something I can test all these automotive Linux things I'm hearing so much about in. And what I bought was this car, which that's the day that I bought it. That's like 20 minutes after I got home and it's not looked that clean for a moment ever since. It's a 2005 Mustang GT. If you want to sound like a car person, you'd say it's a 4.6 liter engine, 300 horsepower or five speed, other things that I'm not as in tune with there. The nice thing is it's new enough to use the standard protocols and things that modern cars do, even though it's nearly 10 years old. The actual build. Though I'm not a very good maker, I don't have a very good build log on my blog or anything, but the general look out, what I put into the computer side is a micro-ATX motherboard with an Intel processor on it. One SSD, which is pretty resistant so far to the bumps in the road. It has integrated GPU, which you kind of need and I'll get to why that is. It also comes with onboard Wi-Fi and Bluetooth, which is kind of problematic because integrated Wi-Fi and Bluetooth does not always have drivers in the kernel. We'll get to that. Everything else is USB, meaning USB sound card, USB GPS receiver. Let's see, what am I leaving out there? The keyboard is attached over USB, so that means you have a lot of cables to manage, which is a recurring theme. In other words, to sum up that previous slide, this is as PC-like as I could create the thing, which sounded nice at the beginning because what I wanted to do was to install Tizen IVI, and I basically only messed with PCs. I haven't really done embedded things or ARM stuff. The Tizen IVI builds or releases raw images that you're just supposed to copy onto the disk and install, and they make exactly two of those. There's one for a real specific ARM system on ship and there's one for an X86 reference unit. Not having done any ARM stuff, I just felt like I should stick with the PC-like X86 side on that. This is another misleading shot because that is sort of the basics of the system installed. You can see the USB sound card. There's the red bit. There's also a lot of cables not connected there, so it looks cleaner than it normally would. In fact, most of the time it looks more like this, which is to say it comes in and out of the car a lot and I constantly have little scrapes over my hands from putting it in and out of the car. I should learn to get a bigger car or a smaller computer, I think. But I want to give a general overview of the approach they used. This is an image from somebody's... what's the name of it? It's like the SketchUp library online, where you can put your SketchUp models of things together. Someone did a model of that generation in Mustang, so I'm going to use that as the base for my diagram. This is sort of how everything is wired together. The battery is the red block there. I made the mistake early on in deciding I should put the PC stuff itself in the back where I can get to it through the trunk and from behind the seats, which means I have to run power to it. And then I also have to put the screen in front, so I have to connect the screen back to very close to where the battery is. And then another thing I didn't necessarily realize initially was that when I was putting the screen in where the factory radio was, I meant I had to get an amplifier from somewhere else. So that's the big purple block there, and then I had to run the wires from that back to the harness for the radio. So you spend a lot of time buying wires and buying that wire loom plastic stuff that you punch it into. That's something to be aware of. You also see there's a green line running from close to the battery back to the PC block, which is the gray block there. That's the ignition sense wire. This is something that exists in all cars because of stereo amplifiers, and you need to wait until the car started to turn on, or else there's a big pop from the audio system. So that's what the power supply of a computer that you can put in your car needs. It needs to know when the ignition is turned on, then it powers up the motherboard. It consumes a trickle of power otherwise, but it's controlling start-ups so that you don't just drain the battery while it's sitting there. There's also a yellow wire, which is the 12-volt wire from the ATX power supply to the monitor. That's because the battery power is dominantly 12 volts, but it's really anything from 9 volts to 13 volts. If you get it off of the ATX power supply instead, yet it's another pair of wires to string, but at least it's clean power. There's something else. I guess the orange line there is probably just all the other cables and things like the HDMI cable that connects to the video. There's a lot of places to route cable in a car this size, which is certainly handy. The other thing, I think, from that whole wiring diagram, I'd say the notion of being PC-like doesn't particularly last very long. The difficult parts of the build process are mostly on the car side, which is to say everything before the OS starts booting up, because managing the power and making sure that it comes on at the right time is pretty car-specific, and there aren't a lot of tools for doing that on PCs. After the OS boots, it's pretty simple to get around, at least in Tizen IVI. It's pretty similar to a desktop Linux system, which is actually what the project wants. The other thing to note is that when I showed you that wiring diagram and said I made a mistake of trying to put the PC where I could get to it, that's because the system planning stuff has trade-offs that start at step zero, and you have to make several of them at once, so you can either put the PC in the dash where the radio would go, and it's closer and you have less wires to worry about, but then it's harder to get it back out if you have to change something or make a modification. So you do one or the other, and whichever choice you make, you're kind of locked into that unless you're willing to start over. That can be a source of frustration, so go into that from the beginning. You don't get to relocate the battery of your car most of the time, so that determines some things. Yeah, so that's the, again, the diagram illustrating that. Yeah, I just said that. Power is non-negotiable, and again, this is the radio pulled out of the dash on the car, and you can see there's a wiring harness in there that you'll get a closer look at later on. This is the screen I have stuffed into the dash at the moment. You'll note it barely fits in there, and in fact it's conveniently almost exactly the size of the double radio slot, which is, I think, coincidence, but it has sort of created a cottage industry for the two people that make monitors that size. So, okay, I mentioned the radio and the amp thing. I had to buy an amp. I got the cheapest one I could find. Heavy, no matter what you get, that is also another set of power you have to wire, and more cables to run, and the cables are pretty thick and pretty expensive. They're, like, that thick gray stuff there is something like five dollars a foot. It's really worth it, though, because it's really thick, but you can, like, tie it in knots. It's very, very flexible. It's all silicone. I also discovered that pulling the radio out, I had to, if I wanted to listen to FM radio somewhere, I had to find a tuner for that, and I eventually just went with a cheapo RTL tuner, which I sort of managed to get working. It's sort of a, one of the sob story aspects of this is that the big automotive projects don't really care about FM radio anymore. They care about FM, sorry, about MP3s and about syncing with phones and streaming and stuff like that. A few other details worth noting, the case that I chose was this thing. It's made by a company called Minibox. It's a mini ITX case. It has the peculiar problem of expecting a DC, like an external DC power connector, like you would use on a laptop, which I didn't have. I have something like this, which is an ATX style power supply. It doesn't fit in here, so it has to go in a separate box. The thing is, though, that I could have chosen maybe another ITX case. There's really only one company that makes these, though. There's sort of two options. There's the one that takes battery power and produces standard ATX connector rails on the other side, and then there's the thing that is more like a UPS, and the UPS just has a little reserve of power and then you plug in another existing computer's power supply to that. Again, that's why I have to run multiple wires back and forth is because you don't have a lot of options on the power supply side. You do have a lot to worry about, though. This is right off of the battery. That extra thick wire is being split into two wires, one that goes to the amp and one that goes to the computer. Both of those have to have these big expensive fuses on them so that when something melts down it doesn't bring the car to a screeching halt. Here's a shot of pulling the door frame, door stills off, so you can run all those wires. That's at the early stages of the project by the time I decided I had to route some of them somewhere else. There were just too many to fit into the gap between the plastic molding and where the plastic clips fit on the molding. This is an earlier image of when I was hooking everything up. The black box there is like a radio shack plastic case that I have the ATX power supply thing, and it doesn't work very well in the sense that I had to like carve with a dremel to get the connector to fit into it. I actually had to cut a hole in the ATX case in order to get that ATX power connector into the case because there is literally no room in there to connect it otherwise. Maybe that's not the best possible option but again when there's only one company that makes the power supply that doesn't have a lot of choices. That's the shot of the replacement case that I put it in. It's metal, this ATX style case and when the top is on there's a fan so it'll keep a little cooler. I haven't had overheating troubles but I haven't driven it for long journeys in Texas in August yet so that could still come up. So back to the things you learn. The road is unforgiving which means that it's going to get around a lot so I had things bounce loose the first few times. I hooked them up and eventually for every metal object you see there there's a hole drilled through. That's an MDF board sort of base plane for everything and then there's like two threaded T-nuts that back into each other and a little brass thing on the outside of them that keep them lined up and a lot of time was spent trying to keep bolts and things from shaking loose and snapping off. It also doesn't look great. I eventually coated it with the stuff that they put on PC speaker boxes which makes it look nicer even if it still has clearly got Velcro straps sticking out of it which are homemade. As far as the other big pieces there I don't think you have to be too picky about GPS these days and on the other hand if you want to connect the diagnostic port on your car you don't have a lot of choices. That's the second item there OBD link MX is the diagnostic tool. I've got a picture of it here. It plugs into the port that they use at the garage to tell it what's wrong with your car and it listens to all the codes. Some of those come over something called CAN bus which is the controller area network bus that has been around for ages but any particular car maker is also going to have other kinds of codes. Some of the people that make this know what the other codes are and can decode those as well. That's helpful. Another thing to consider there is I eventually found a capacitive touch screen to fit in the dash. Most of the ones you see in that form factor are resistive which means there's a film that makes it a little harder to see and a little harder to punch on there. Again it's because there's only a couple of makers Xenark and Liliput that make that size. You don't have a lot of choices. There's no resolution. They tend to be 800x480. I'm not sure about this but I think that that size was originally built for video cameras for shooting digital video in the field. It's sort of the monitor you attach to a movie camera. They are aware that there's a market for this automotive stuff now though so they seem to be improving on their offerings. Last but not least when it comes to I.O. situation is going to be complicated. What I have is a really lousy little RF keyboard. It's pretty small so at least you can tuck it in between the seat and the car but you kind of have to do that or do USB and then have another cord hanging around because you generally, at least when you're building you need to have keyboard access when you're booting up and you're at the BIOS screen. You have a lot of RF interference in a car at times so you may not get great performance out of that. Maybe you'd prefer to find a good USB keyboard and use that instead. Anyway, back to this the OBD link model that I have is Bluetooth connected it's, I think $89 or $99. They also make a USB one which is a little cheaper but again then you have a cable to run from wherever the diagnostic port is to wherever you're connecting it so it's one more cable to run to trade off. I know that's a on the giant screen it's a little hard to tell so just to give you a sense of scale I took a picture of the OBD link next to a giant novelty quarter that I got off at eBay and that's the novelty quarter next to the regular quarter so you're on your own to extrapolate back to the size of it. For other reference the thing on the left in this image is the OpenXC connector for the Ford specific JSON formatted stuff. It's bigger because an Arduino type thing on the inside that you have to flash with firmware specific to your car you can hook both of those up the CAN bus is a bus so as long as you don't put too long of a cable on it you can get a wide splitter for the diagnostic port and hook both of those up if you want to use both of them. This is the keyboard I mentioned earlier that's literally a thousand times bigger than it is in real life it's smaller than my hand together. I don't recommend it but I don't have a good option to recommend it in its place. The good news is that eventually you can get all of this side of the build process done and then you start to worry about the software side and that is also it's not vehicle specific it's driver specific so how and when you drive determines what you need and it's not going to be the same for everybody personally I work from home and I live in a place where I've lived for 14-15 years so I know my way around and so I don't depend on navigation on a daily basis like some people would if you work where you have to go to customers, locations and give support or if you're a real estate agent you may care a lot more about navigation and a lot less about diagnostic codes or MP3 support. A little more background on the actual build stuff Early 2014 what I first got running on the car was the Tizen 2.0 series which they have since replaced with Tizen IVI 3.0 which makes some significant changes most significantly they replaced the Web runtime which had been built on top of WebKit with this new project called Crosswalk which is derived from Blink and does more stuff but it means they sort of cut loose several applications and things that were available in the IVI 2.0 series one of those is Navit which is the open source routing software so currently 3.0 doesn't have a good navigation engine which is another reason why I suggested you would consider dual booting between Tizen IVI and something else 3.0 also doesn't have a pure browser component yet or at least it doesn't have one based on Crosswalk the Web runtime it does include the links browser which can be fun for a lot of things it's not really helpful with Google Maps or OpenStreetMap though let's see what we're seeing here is me booting up Tizen IVI on the bench how long was that anybody know five, six seconds something like that the people who work on this full time have hard targets it has to boot up in one second or produce camera output in a second and a half something like that you're not really going to get that with the home built system because you're at the mercy of motherboard BIOS and things like that also the ATX power supply that you have only one manufacturer to choose from the way it works is when it sees the ignition since there's a five second delay and then it provides power to the motherboard so if there's a built in five second delay you have no hope of getting everything up and running in under two seconds, three seconds, whatever it is so you have to live with that limitation I think that it's probably not as big of a practical problem as it is if you're a car maker wanting to advertise how fast it works what I actually do with this, mostly I have the audio player working and I log some data I haven't really messed with like, souping up the car in general tuning in or anything but I think I might do that at some point and it would be interesting to compare the data that I can log now with what I log then and I've been testing out other things hoping to find ways to get radio navigation projects working there's still a lot for me to do, the next big thing for me to tackle is sensors the display that I have has a built in light sensor but it's only affecting the brightness of the screen it's a monitor control mode I can't like sense the ambient light in the car and then adjust like the theme that would be something you'd need to do in software have access to light sensor data maybe inertial measurement unit digital compass data that kind of thing so that's that's still on my list of to-dos but it comes to the stuff that I recommend for other people to try if you find this interesting you start with figuring out what you want out of the car and then you're going to proceed to decide whether you boot right into Tizen IVI or you boot into something else that you can run nav it on for example it's a personal decision I'm advising that you dual-boot something the goal there is that I really would personally find it more helpful if a lot of other people were testing that Tizen IVI stuff there's about a dozen people I know of who have attempted to put it into their car and that's not very many as far as getting it to work so it would be really great if more people tested it and reported what works and what doesn't work but you should also certainly have something that you can use for whatever your key use cases are a few planning notes like I mentioned the Tizen IVI builds are released for x86 or for this particular arm board which means you probably unless you have one of those you should go with the x86 build your life is just going to be easier in a number of ways there that said the x86 support is pretty broad initially they had a very specific sort of vetted device manufacturer produced an IVI thing that you couldn't even buy unless you were a company you were ordering hundreds of them this past July officially added support for those Intel Nux which are the little usually called them a net top I don't know what the current name is but the low power devices officially this particular model which is pretty specific is the one that they support but I didn't have any trouble bringing up Tizen IVI on a generic mini ITX board with a chip that I bought off of someone on Amazon so don't be afraid to just find some Intel hardware and see if you can get it working on the other hand you probably do need to stick with Intel GPUs because getting the display stuff working on Nvidia is definitely going to be drastically harder and probably not worth your time most of the work on this is done in Intel and they have good quality open source drivers which you can't say about just any GPU manufacturer you pick again like I mentioned you don't have a lot of choices for the power supply and for the IO stuff this is the name of the company that makes those ATX power supplies I mentioned and they also make something that's a lot smaller and it's really more like a UPS that powers up an external power supply two companies that do touch screen displays that you use from all of which are sort of the same size and then weird keyboards the final thing I've noted though is that you don't really need to worry about CAN bus it's sort of it's known as the automotive bus that they use for diagnostic messages and things but it's not it's not the kind of thing that you're going to do new stuff with it's a legacy support issue and if you get one of those adapters like I showed that interprets the messages and sends them to the PC over Bluetooth you're kind of done I searched long and hard trying to find other devices that you could add that would speak CAN bus and I only found two one of them is a really high-end radar detector which you can control over CAN bus but you can also control over Ethernet which is a lot better option and then you can also get like a car alarm system which you can control over CAN bus but again you have other options there too so don't necessarily worry about doing CAN bus stuff another note your interior trim you have to pull that up put it down a lot it's not technically a PC building issue this is stuff that's not designed to be removed and put back in a lot it's designed to be removed when there's a problem so if you're running cables and putting it back together a lot little things are likely to break off as far as actually installing Tizen the official procedure is these raw images that you copy to disk and it overwrites everything if that works for you great not really necessary to do it that way what I eventually did because the motherboard that I had gets really confused when I try and use the GPT partition tables and eventually I realize you can just install something else and then just leave a partition just copy the Tizen stuff from the raw disk image onto it set up the boot loader on your main Linux OS to launch into the Tizen partition and it'll run pretty much just fine and then I also recommend in this model though one for your other OS one for Tizen, several one for data because the Tizen stuff the new release will also be right over the whole disk and you don't want to lose your data and you want it to be accessible to both operating systems pick something you're comfortable with for your other OS if you're not sure what that should be there are some valid reasons to say Ubuntu that touch support actually works which it doesn't work as well on some other distros probably more specifically Genevieve and some of the other projects build and test their stuff on Ubuntu and Tizen IVI SDK is released for Ubuntu first it's not a huge difference whatever you're most comfortable working in is going to be fine so like I said it's not hard to just take the boot loader entry Tizen IVI image put it into your other bootloader you do need to make sure you watch where you point to with UUIDs which will not necessarily be the same I recommend you remove the quiet kernel boot option because you want to see what's going wrong and the releases from Tizen IVI are designed to be as fast as possible I had trouble with TSC as the clock source which was the default in Tizen maybe you won't have trouble with my hardware but you can switch, use the different clock source parameter and maybe have more joy so my example grub menu entry sets the root it's exactly the Linux and rootfs and it already commands that were in the Tizen bootloader as it was delivered on the raw image don't have to change anything there what you get when you boot it up is this there's more there than maybe meets the eye because that's a desktop Linux system and that's sort of what ought to be like the big selling point of Tizen is that you get the standard kernel and I mean standard like all the normal modules why I first hooked up I couldn't find a mouse so I hooked up one of those touch sensitive graphics pen tablets and the Wacom driver loaded so if you want a touch sensitive pen tablet in your car you can do that with Tizen API Erron's Weston you get standard libraries and things like gstreamer and pulsio if you were in a Yachto built system you would have just the modules for the hardware that you needed and you in android are going to have the whole android stack instead so this is easier to develop for you get the actual developer tools get the C and things like that access to python QT which is actually contributed by Digia not by Tizen employees and there are these sample apps that we'll look at you don't get good meta packages like build essential you might have to install make and auto make separately you don't have python packages that you can just pull in with pip so a little more manual stuff on that like I mentioned the GUI browser and navet are gone at the moments also at the moment GTK stuff is not in Tizen although I think I've heard there's some interest in changing that from from people in Intel so maybe that'll be better you have zipper for package management you can just grab the kernel source so if you have an out-of-tree driver which I did for that built-in Wi-Fi card you can build that module and it works you should also probably do some basic system maintenance when you're setting this up the route password in my car is probably still Tizen I need to change that and the system descripts you can dig into it and I had to change the order of some things to get the Bluetooth firmware loading correctly on this built-in card but it's not hard to do you can customize your file system the way it's set up so that your extra partition with your data on it is the way you like it the Tizen media player app which does actually work wants files to be in opt user media which is not a real standard place to put that so you'll have to do a little bit of work to configure that stuff but not real painful you also will probably need to get some development packages to pull things down and the two things under configuration tools are very important because currently you have to configure Wi-Fi and Bluetooth on the command line with Bluetooth control, command control it's standard operating procedure for how to do that but you have to install those packages yourself they're not in the default I found a couple other things that are useful auxiliary programs, M4 API there is a third party program to modify the settings on those ATX power supplies I showed I haven't tried that out but it's interesting and then I had to get this hex to HD HDD thing to convert Bluetooth firmware to the format needed from the Windows driver you don't have to go through that applications this is where it gets a little bit of pressing as far as like right now Tizen Avi 3 there are two separate frameworks Modelo and ICO Modelo is newer, it's also incomplete whoops this is an image of the basic like home screen app there do you notice anything unusual about that compared to the screen that you can buy it's not the right orientation Modelo is portrait only they're intent on keeping it that way I've asked back in August and September I tried hacking through some of the themes to get it to look correctly sideways it didn't come together real well because there's a lot of stuff that just assumes portrait orientation I haven't really said I'm not sure if it's really worth doing some of the apps will launch and you only see the first half and you can scroll up and down on the screen others will get off to one side and it's kind of a mess the other apps you can use this is an older ICO app called Ghost Cluster this reads diagnostic data and presents it like skeuomorphic dials that again it's a little bit off on the size but that's because the resolution of these seven inch screens is slowly changing you can fix some of this by rotating the screen 90 degrees is that worth it? it's okay it's not ideal there's actually more you can do that you can read about on the Automotive Linux Wiki site there on the plus side the big thing that is really nice is Automotive Message Broker which is a multiplexer for vehicle data sensor data, diagnostics, GPS it will display on Ghost Cluster and on the Modelo like heads up app you can also log it which is what I do database, configuration is pretty simple you tell it your Bluetooth or USB device that has your OBD2 sensor on it I've also managed to get some open XC demo things to run and I actually got RTL FM to run for FM radio tuning that doesn't that's not how you're supposed to do that but somebody who's at the open radio comp really needs to write a good SDR radio app for the car smart device link is a thing for connecting your phone in theory that works I don't have a new phone, I have an old Mego phone but again if you want navigation you're going to have to boot into your other operating system and probably use Navit at least for the time being Geneva has several proof of concept things like a browser and a nav system that they're restarting developing on so that could still develop into usable apps there also a few third party things some of which come from books and from demos there's a good Google one that I've kind of got working I think that the API has changed on Google's down there is that kind of a weak application story? Yeah it is and that's sort of why this is something that the community needs to like take a closer look at because the car makers aren't evil but when it comes down to it they're going to ship a car if there's an open source component for what they need or not I would like to see more stuff that is better than demo quality but the community will probably have to write that because the car makers are done when they have something they can sell the frameworks I think are decent they're pretty good they need a lot more testing and so the choices sort of they're starting off on this industry with a free operating system is it going to be good enough if it's all free up to the application level and the stuff you interact with is proprietary I don't think so the other option is that those of us who are writing applications can write baseline apps that are good enough that the car makers don't want to replace them with other things so we don't have to settle for demo quality there I got some examples I could media players and things open street map why do we have to stick to Google Maps there's a lot that's not real insightful on my part I don't think let's see this is just a summary please give it a try if you are interested in this you can dual boot Tizen IVI and something else you get somebody to compile or something you're working on try writing an app tell me what I should do with modell landscape mode a lot of options but it does require that those of you who are in the audience actually give it a try that's all for me thanks so sadly there's not really time for questions maybe one or two if there's burning questions burning questions I'm kind of done kind of done I've kind of done one of these well it's a bit of a work in progress with an Android tablet which I think has advantages and disadvantages compared to compared to the approach that you've taken do you have any have you had a think about that trade-off yourself I haven't attempted it myself which is I feel like most of the trade-offs are going to be real practical there like I don't know how you get power to the tablet you can in some devices including the next sevens you can there's a kind of a kernel hack that will let you supply power to it while it powers also while it also does USB host mode you can even use it up okay so it would be that kind of thing I would think would be the bigger issue once you get it running you're kind of in Android space it depends on how you feel about Android I guess to know if that's better or worse you get some really useful yes there are open source Android apps that do OBD diagnostic reporting and things like that so that's definitely true you can come see me exactly so again thank you very much we have an acknowledgement for you on that here