 So, before I start, let's raise your hand if you are familiar with embedded development. Nobody. That's good. Okay, cool. And anybody familiar with Android? Okay, cool. So, let's start. The brief explanation. So, you know Android is super popular operating system. It's in smartphones, like 2 billion devices. It's in smartwatches. It's in your TV at home. It's inside the cars. And why not to use the same operating system inside the embedded devices? Because now in modern world there are so many smart devices with screens or without screens if we look outside. And so we can see there is a camera, gateways, a lot of some commercial usages in industrial space. There is a point of sales inside the shops. And the interactive ads, some smart TVs for advertisement. All of this use some kind of operating system. Some of them based on Windows, some based on Linux. And why not to provide developers the ability to use latest Google technologies and latest Google updates. And there are so many Android developers who familiar with Android framework with all the stack of frameworks and libraries related to Android development. Why not to provide some kind of similar experience, similar tools that developers are familiar with to make some embedded systems in the Internet of Things space. So let's go from prototype to production using Android operating system and special for called Android Things. So why is something important to use Android Things and who need to use it? So it is, as I said before, it is Android SDK. So most of the SDK is the same as regular mobile application and Android. So no need to learn it from scratch. You can use the same IDE Android Studio that is well optimized for Android development super good in terms of after filling, in terms of refactoring, in terms of adding additional frameworks and tools. And the whole power of play services. It's libraries by Google that not shipped together with Android operating system but it's installable by user and there's like maps, there's like push notifications and many other services like near communication between devices and many, many, many other frameworks that helps our developer life better and help to increase user experience. The same, the same I want to say about Firebase as a real time database that shared data between our smartphones and some remote servers. It makes it really easy to integrate and for prototyping it's super cool. I will show you on the samples. And obviously there is already implemented SDKs and all the APIs that you need to use with cloud platform. So you need to integrate by yourself. There's already implemented for Android. So you can use it in Android things same. And also one more cool thing. It's the tensorflow as you know and heard a lot about machine learning using tensorflow. So all the stuff that you want to use, even your training models on small devices, you can do it. Obviously you don't need to train on the embedded system devices but if you have a training model, you can use it on the smartphone and on the embedded system device from Internet of Things world using tensorflow. That's super cool. And also Google Assistant, you can build your own Google home just using Raspberry Pi super cheap $35 device. That's pretty incredible. I will show you some samples, how to do it. It's impressive. So why not to use Linux or I don't know some other cheap open source solutions for base of your devices inside it? Because for example for users, if you use it and buy some no-name device from Kickstarter, that is some smart camera or I don't know smart GPS tracker of your car or something like that, you're not quite sure about the operating system and all the security updates will be delivered even after company will be closed. Obviously it will not happen. But if it's Android Things base device, Google will provide updates even after support by original developer will be stopped. And this is kind of cool. And developers don't need to spend their time to fix all the security issues on the custom builds of Linux or something like that because Google will do that for them. And so the security, automated security updates. The signed images, there's no possibility that Android Things will receive update with some cracker, some vulnerable application or operating system update. The verified boot don't allow some third party user to access to your device and refresh it using their own built-in ROM. So let's make some conclusion. In terms of Android Things, the coolest part is the real-time updates and how it works. You as a developer send to Google server your signed application and Google will pack it with the latest firmware update and deliver to your device. So you don't need to deliver by yourself. And you have a pretty smart console to provide updates to your users. So let's talk about hardware. Hardware is currently suffered like four devices or maybe five. Most of them it's NXP based chips. So you may be familiar with the SOM system on chip architecture. So if you see this is the large board. It's like Raspberry Pi, some kind of this size. And this is the breadboard for your development needs. So there's like JAG output, HDMI output, a lot of pins and all the stuff. For your device, you actually sometimes don't need all these interfaces. All you need is just a couple of pins maybe, maybe one bus and all that you need. You don't need USB or internet input. So this is the cool thing about the system on chip. So actually the whole CPU, GPU, RAM, some connectivity models, all this hardware on a small chip in this kind of size, like super small. Yeah, this size. So all you need, this is just for your bug, for development breadboard and use inside the small chip you may see in the middle of the top image, this system on chip. Yeah, this is the latest. And you go to manufacturer of your device and ask him to use this chip because you already tested it and Google support and provide board support package for this kind of devices and you can publish your new device with this breadboard. The price of this breadboard for development needs is like 200 for this kind of boards plus screen, plus additional sensors. I don't know what's the initial price when you go into production, maybe like $30, $50 per each model. It's quite core, sorry dual core, one and five gigahertz model with Wi-Fi Bluetooth and this name is NXP IMX7D. You can Google for it. If you open the Android Things website, you will see that it supported Raspberry Pi and couple of NXP chips. So for start writing some basics of Android Things, you don't need to buy this kind of NXP chips. You can just grab some Raspberry Pi 3 or 3 Plusjet that was just released like two weeks ago and you can flash Android Things on it and use the same pins as NXP and it will work perfectly on the boss. But as you may know, Raspberry Pi is not that good for production because there is no CC money chip. It's a huge board and it's not that stable. So better consider for production needs using NXP products. So in terms of development, you see this is the Android. This is a lot of different layers, a lot of different parts of framework but most of them we need inside our IoT stuff but when we develop an IoT, we don't need some kind of launcher, phone, messaging contacts, obviously we don't need this mechanism, we don't need runtime permissions, we don't need soft keyboard support, notifications because there's no place for notification if you need we can implement ourselves but we don't need to provide like GCM Cloud Messages and Firebase Cloud Messages on our embedded devices. So as I said, display are optional. Obviously you can use displays and write the same views, the same UI using layouts as you do in Android development but it's optional and consider different type of interaction with your user. The good samples is smart assistants, you know, Google Home, Amazon, Alexa, Apple, I forgot the name, Apple, Apple, Apple, something like, yeah, Siri inside the latest smart, I forgot, speakers, name of smart speaker. So you got it. You can provide some different type of buttons, not take your keyboard and it's also good idea. So maybe camera if you're building some device with image recognition. So let's look at some like couple of slides with the code. If you familiar with Android, you should feel comfortable because it's the same. Instead of main activity, you annotate IoT launcher activity that will be run right after your device will be boot up. And if something goes wrong and up will crash, it will be restarted again and started automatically by system. So you can use peripheral IO the same as any other IoT devices. So there is all the interface that you need, GPIO, PWM, ITC, SPI, WART. If you familiar with it, that's good. If you're not, you can just open the Google Android Things website for developers and there's a good explanation each of them and you can understand what you need for your prototype. So writing drivers, you can use the GPIO callbacks as or any PWM callbacks the same as you write in regular Android application and you can do it by yourself. There is a sample when we use GPIO pin to understand that user press the button or not. And we can write or third party developers can write user drivers. So if there is some kind of sensor, we can write the driver for this sensor and the developer of who will use this driver don't need who will use this sensor or button or motor shield or maybe some other stuff. Camera for example, they don't need to go to deep low level and provide all this communication through SPI or WART or ITC. All this need can use the driver the same as we do in Android. There is a buttons on the phone but we don't go to deep hardware level to understand this user press on this part of screen or this part of screen. All we need is to subscribe to callbacks like if user press OK button, we should run this code. So there's three types of drivers, input drivers, sensor drivers and GPS drivers. And if the driver already provided it will be used as on the top of the screen. So we put the driver name, driver version and which key code we want to use it. And it will be consumed this way. So we use it the same as regular button. So we say, hey, is user press key code space? If user press space button we can use it same as usually. And if you open Google Android Things samples list there's a lot of provided drivers by Googlers and open source community for most of the sensors that people use for Arduino and Raspberry Pi prototyping. So that's good for you. It's super simple now to start with prototyping. And we will see some samples on YouTube and Hexer.io how to use it in couple slides further. So let's briefly check what we already learned. So there's a power of Android so you don't need to learn new framework, new tools, new libraries. You can use all the power of provided libraries by third party developers by Google. For Android developer world that's pretty good. It's managed by Google so there's a board support package that always updated and there's automatic security updates to your devices and there's good console. So when you register your devices you can create list of your devices, group it and push updates of your app through the cloud. Pretty smart, pretty simple. One thing to note that Android Things is still in beta, it's not official published so if you're going to use it you should consider that it's not ready to production but it's almost on this way. So like we can expect something like that maybe on Google I.O. I don't know but who knows because now it's 0.7 version which fits most of the needs by hardware developers. And so you may ask me why I need to buy so expensive chips for my best solutions if I can buy cheap MCU microcontroller unit like ASP8266 that costs like $2 and instead that you need to buy $30, $50 cheap but it's completely different use cases so let's consider you have a fleet of thousands of ESP or any other MCUs with temperature sensors, with some motion drivers, some sensor controllers and your place, your maybe plant, maybe your building where you install all this stuff not always connected to internet so you need to provide some calculations, some analysis on flight and how to do it. In this case obviously you can create your own server locally but actually this is not needed in modern world because this system on chip is enough power, enough consumption ability to calculate all this on this chip so you can provide some like controller of your chip controllers in your building and this why Android Things is where it comes from the stage so this is one of the use cases and I will provide my sample that I use at my home with this scenario and you can aggregate, process, control all the data offline from this thousands, maybe one, Congress I don't know what size of your fleet devices and then send it. This is one scenario other scenario is just to build single chip device like smart assistant and use it but in terms of why you should not just use chip MCUs because chip MCUs don't have enough power to provide some processing calculations and it can be sent to Google Cloud Platform or any other web servers to make some, I don't know, processing so real use cases, so there's a lot of Google Android Things announced like one year and half ago and there's many more samples how to use it so Google AIY project, it's one of the good samples so all you need is just Raspberry Pi, speaker, button, microphone and that's all you need and you can build your own Google Home yeah smart assistant with button, speaker, microphone and because of Google Assistant can be built on top of Android Things it's super simple to make your own Google Assistant so you can use the whole power of Google Assistant just in your prototype project and the same you can use all the power of TensorFlow and all the power of image recognition provided by Google and trained models using Google Vision Sample there is a camera, there's small Raspberry Pi Zero module and you can make your own, I don't know, detector of who's on your building or maybe this is your cat or not, the door will be opened or not or maybe he's car parked on the proper lot or not or any other image recognition solutions pretty cool, pretty cheap there's another samples all over the internet my colleague Rebecca Franks who also enjoyed Google Developer Android IoT expert provided this kind of sample there is a board, there is a speaker and she played piano on several devices of Android smartphones and they connected by nearby services so they don't need to have Wi-Fi or Bluetooth turned on and being the same network and they communicate together and play some music using Android Things this is just a sample so you can create your hardware wallet if you want, why not? it's so popular in the modern world to make your wallets with cryptocurrencies there is a Braille box it's one of the coolest samples of usage so some people are blind and cannot read texts so this solution reads them using Braille alphabet and this device can read the news and show them so they can feel what's happening in the world you can build your own robots using Android Things there's a lot of samples on GitHub, Huxer.io, Instructables and other popular GAI websites how to build your own robot that can be controlled by a controller or maybe that can be controlled by some sensors so this is a good sample of that this is Android Things robot that figure out where's the ball and follow this ball and you can make your own remote control for your Sonos player or any other hardware that have API for example Sonos player is not that great in terms of remote controlling you need app or you don't have any other choice you cannot buy some remote control but you can build your own cell that play music that you like show it what's playing right now and control it remotely why not? it's pretty cool to have some hobby making some controllers and this is based on Android Things so as Android developer it's pretty easy to you to make connection to API to Sonos because you know how to do it and you can build not a phone application but hardware application that's pretty cool one more sample yep so this is more complex sample it use Android Things device as you see and Android Things device control your fan using the relay and you can speak to Google Home and register your Android Things device as a controller in smart home and Google Home will understand like turn on fan and it understand that this Android Things is a fan controller and Android Things will turn on or turn off fan and decrease or increase speed of this fan but you can go further and remove the Google Home from this stack and provide microphone on top of your Android Things device and it will be controlled by your voice directly so don't need to have Google Home or Amazon Alexa or any other so my case I also have my hobby project and my case is was at my bed in my bedroom the temperature is not that good as I want because my air conditioner unit with sensor is on the other side of the room and the temperature on my floor on my ceiling is not the same as near my bed so I put the temperature sensor $3 cost super cheap near my bed it connected to Wi-Fi into my house and I have Android Things Android Things listening for updates from this temperature sensor via Wi-Fi and make decision should we turn on or turn off air conditioner and which temperature should we set it send via Wi-Fi again to another cheap $1 unit command to turn on or turn off air conditioner and using infrared LED I send commands to my air conditioner unit and that's how I control it it's easy idea right so it's a good sample so for interaction with hardware in your home you don't need to have Android Things but for some computations for making decisions it's a good and also because it's Android you can use the power of Firebase libraries and I'm going fuller and I use Firebase and sync my settings and state of my temperature in my room and prefer settings with my phone so I control from my home outside of my building the ask Android Things to turn on or turn off air conditioner and provide some kind of speed there's two more samples of using Android Things this is how you can build your own smart speaker without having this cardboard that I was shown before so there should be some voicing Raspberry Pi and this is available it's just a button and two wires connected to two pins press the button and the wires connect microphone, battery, speaker how can I help? so it works the same as Google tell me about my day hey Dan, I hope your day is off to a good start the time is 9.34 am in early age 52 and mostly cloudy it'll be raining there today with a forecasted high of 60 and a low of 43 have a nice day oh yeah, we can play Google music so you get it and one more sample it's also voice controlled robot and even with Microsoft, Xbox, Kinect Image recognition hardware but connect to Android Things on top of with the Android Assistant turn that it's very loud pretty amazing, right? so you can build it by yourself and you don't need to learn some new languages only with just Java, Android super cool yeah, so that's it this is the Android Things you can learn more at Google IoT Developers Community obviously the most of cases are covered in Android Things official documentation it's pretty good no matter is it in release or not Google always provide a good documentation and Android Things SDK already available and even for Raspberry Pi as I understand as I said, there's firmware updates you can install it using for free Google Cloud Console to update your devices remotely and prototype your devices so this, what about Android Things if you have any questions, feel free to ask thank you