 Sorry about the set up time because the hardware is hard for a reason, so this talk when it starts up is really going to give an overview of all the different hardware platforms you can use for IoT and the tools you can use to do that. If I guess a lot of you are using IoT embedded stuff in a minute, I'm not sure. So I'm going to just look at the top level of getting you going with IoT and the tools you can use and look at different approaches to use those different frameworks. I've got so much kit, but I'm only going to show a couple of pieces here. I'm going to go from the hardest to the easiest if this would start. I'm not even using the phones in my feed. This is my phone I'm using to back over this. Here we go. Just in time. Yeah, just in time. So I work for Samsung R&D and I'm from the UK, the London office which is in Staines, West London. I'm actually not representing Samsung at the minute. This talk is just for fun and to show people what's out there already. So I am not pushing a Samsung product. Although I'm showing a Samsung product at the start but it's really to show you the difference between two and the reason I use a Samsung one is if I show you an easy and hard and I use someone else's then they'll say you're trying to down talk another person's product. That's right. So that's me. My talks have got a little icon at the top here just so you know where you are. If you code, I'm looking at codes, how it works, big picture design and overview. So you can see the top where what I'm talking about if you're getting a bit lost. But I try and make things as simple as possible. I don't believe in showing pages of code because you can't absorb it when you're sitting down there for 20 minutes. If you want to talk afterwards or if there's any links, I'll put them on the website really quickly. I'm going to miss this slide out actually. It's just really talking about where it is now. So that's the satin 5 space rocket. The computer on that is 32 kilograms, 35 kilograms. Triple redundancy runs it. I think it's 200 megahertz and it's got a 38K ram. So if I took one of these little microcontrollers here, they're already more powerful. The ratified zero, which is running a light in there is in some cases 100 times more powerful. It's got more processing power and weighs 9 grams in that thing with 35 grams. So that's just kind of just captured where we are with IoT. And that's what an IoT thing is. It's just taken out of Wikipedia. And this is one of the reasons why it's taken off. You can see the Moore's Law. I know that Moore's Law is taping off here, but it's just to show an indication. The key point is this, where you can see the effective price of megabytes coming right down to negligible. So building out of things is cheaper chips. So that's why you've got this plethora of devices coming out now, which hopefully I'm going to show you a couple. So this is what I'm going to talk about. Don't really think a breakdown of IoT frameworks to help you build things. A demonstration, if I get time. Rapid prototyping environments, key points, and then the trade-off between complex and features. And I'm going to actually show you real prototypes, real stuff, and we'll look at that on the camera and you can see things you need to think about if people are thinking about building their own product and people do, and they're successful. OK, so again, so it's just really quickly, so where we've come from and where we're going to, down here, Rashi Pi Zero is one of the biggest innovations I've seen in the last year, two years. And there's the next gen stuff, which I've got, it's not even out yet, I've got a couple of next gen bits I'll put on the camera as well and show you. But typically the embedded world comes with little microprocessors like this with pins on it. I've got a few here. And then on these pins you connect a protocol, which will be like I2C, ESPI, all these different protocols to communicate with the outside world, and they're all built in. And you'll take one of these, put it on a breadboard and get cracking to build your internet things thing. But if any of you are web developers and you're thinking, oh God, I need to learn all this other stuff, you're taking me ages, oh, you're right, it will. But we're going to a place now where it has become simpler and easier, they're going from the compiling stuff and flashing them to the device to running the code on the device like high level languages, JavaScript and Python. I'm not captured all of them, there's more, it's just an idea of the different platforms and what they give you. So do we know the guy that started it off, the hardware opened so hardware as well, and you've got a number of devices there and it's sea based. So you develop and see and you push that onto your device and they give you an IDE to do that. Arctic is a Samsung one, but that one is on the camera, I'll show you in a minute, is the whole shebang. It's giving you all of the back end stuff as well, it's connecting everything together and that's sea based as well. Expressive, the Chinese company, they're really cheap and everyone's putting everything on these things right so you can get Python on their JavaScript as well. Particle, they're giving you a whole big picture stuff and then ARM, hopefully we'll look at ARM at the time and Intel have done their, what's it called now? Ericsson thing, yes. God, I can't remember the name of the platform. I'm not going on here, but I'll find out if we can put the slides afterwards. We've got some of those guys here as well and I've got Python boards, they're actually in product. Right, any other things? Yeah, why is this happening? So the market is just really in a growth state, so you see this is taking from a website, a financial based website, on how the growth of IoT is happening and where it's happening, so you can see it's really commercial, it's taking a lot of the big part of the pie here. Health and the wearables is still quite small, you know, so it's growing, it's growing fast and believe me there is a lot of small companies doing stuff. Every month they go to an IT meet up in London, nearly every month there's a new one doing something else. Right, the first headache with developing these things. I've done a little spoke picture here, so usually when you develop these embedded systems, you've got a bit of work to get everything just right, so you've got a specific bit of hardware and you're writing your C and you're compiling it onto a specific device and you get all the headaches with that. Sometimes it's easy, sometimes it's hard, but it's effort and I'm going to try and show you the effort involved in doing this. And it's C, gym and O's and O's because you do something in one tool chain and it will be slightly different in another one. So you can see why it's a big push to try and get these high level languages onto these embedded controllers and make it easy. Right, so here's two screenshots and hopefully get them up and running in a minute. So this one is an Arctic IDE from Samsung and this one is an embedded IDE from Embed. So this is really quite peculiar because you might notice that's actually a browser, so I'm looking at code and compiling it in a browser. So this is really a normal idea of how they have gone from this to this. So in this environment they have taken the headache of compiling your code for a particular architecture away and they compile it on the cloud and then you get a binary download onto your desktop and you just drag and drop onto the embed. This one is your typical C embedded stuff where you're running an IDE and let me try and do the first part of the demo. So this one here is our Arctic board. So can you people see that? It's an Arctic board. I've got it on a little platform here. So this part's actually the microcontroller itself. It's plugged onto a board and you can't really see that really well. See if I can change it. Is that better? Is that too much? And here's your pins where you put your cables on to put your sensors and so on. And you've got a USB connection here and there's something here. So if I want to try and develop on that, so first of all, I can't remember where the IDE is. Why that's starting. So that's me starting the IDE for that system there. So while that's doing that, you can go for a coffee now and come back later. To get to that point, I will have to go through the documentation. So I'll have to go through all the documentation and getting started. I'll have to go through the readme files. I'll have to go through setting up the tool chain. Getting it installed. Creating a project. Learning how to do that. Get your Hello World up there. How to connect the device with another application. And that's my IDE just starting now. So you've just seen the time that's taken. I move that to another desktop. Compiling and it goes on and on. So there's my IDE. So to get to the point of talking to that board, I can use consoles and so on. I haven't done that before. I don't know. So I'm going to talk to the board itself. Open device. I think they're using USB 1. This might be a bad demo. Right, so there you see. This is my first problem that I've plugged in. So here's a good example of things going wrong. So I've got a board I've connected. I've followed it. I've done this a lot and I followed the instructions. And the poor guy is sitting there thinking, what do I do now? Right, so that's the typical thing you could get with Arduino. And let's try one more time. So these devices, what they normally do is they expose an interface over the USB bus. There you go. Right, so on this one, it's all done over serial. So you get different USB interfaces over the bus. One will be for COMs. One will be for JTAG, which is testing. And then they can have more. So I'm using this one, which is giving me a terminal interface to the thing. It's almost like Linux. You can see that you've got a prompt here called Tash. And there's a number of files on there you can run. So there's one called SensorDB over there. It's just getting up and running. So it's quite difficult. So there you go. There's another problem. So SensorDB is giving me a problem here. And so the Wi-Fi card is down on this one as well. So in a nutshell, you've got to, you've flashed this. I'm not going to do it because it'll take me ages. You flash your firmware on to this device from your IDE. And here's a forced-in test I created earlier, which is the one I'm running on it now. And it's just done in C. And once you flash your device using the IDE, you can interface to it using a terminal device. It's all quite complicated. So this is the sort of thing you're going to go through with developing on embedded systems. Now let's give you another example of a high-level one, right? So this one here is a micro-pyton board. So I shall take this off, plug this one in. Right now. So this one here is the next-gen one. I'll have to go closer. So it's much, much smaller. It's got Wi-Fi on it and Bluetooth too. But when you saw me plugging that in, you may have noticed that it exposes a mask to this with four files on it. Can people still hear me? Read me in a main pie. Now, believe it or not, that's it. You don't have to do anything else. You're not restricted by any tool chain. You don't have to have an editor that you have to use. There's a readme file on there that will tell you how to get started. And there's an example of switching the LEDs on. So an even better to this little microcontroller here. Oops, sorry. If I open up this with any editor I want, I can just put my code in here. That's it. I can place my code in here. Has anyone used Python before and they know a bit of the ripple? Yeah? No? I don't know. So now I've put that onto my device. I can exit it. Did you see the light flashing? That's the holy grail of getting these things working. The hello world of these things is getting the light working. Once you can hear the light working, you know, hey, job's a good thing. And if I've got time... You have a first moment, I think. Right. So let's do... So this is a JavaScript one. So Samsung actually do a JavaScript as well. So that's our version of JavaScript that can run on these things. This one isn't the Samsung device. This is another one of the startups. Let's take this one off. This one is slightly more... So here we go. There's my camera going. Similar size. This one is backwards. So that one is... I'm called XM4 on that one. Now, the guy that did this project, he actually had a plug-in. He wrote a plug-in for it. So I can hopefully show you the plug-in if I get my Chrome back up again. My plug-in's gone. This guy has given you an interface over the web because it's JavaScript. So he's using a Chrome-based web plug-in. And there's my light-on thing. It's a very, very simple interface. It might not be what you want. You might be used to using PyCharm or Eclipse. But the key takeaway here is it's just fast to get yourself up and running. You can just write your code, and then push it to the device. This one's slightly more complicated that he's got to do an interface over the CO bus. He's not exposing it as a mass storage device where you could drag and drop. Right? But he has produced an IDE that's going to let you up and running quickly. And the last one... You guys have lots of questions. I'm never going to get this done. I can show you this one afterwards. So the last one is embed. It's quite old. So I did a little work with him when I was working with Vodafone. And here it is here. This one, as I said before, you plug it in, it becomes a mass storage device. There's a HTML file in there. Click on to the link. And then you write your code in the actual web interface. And then you give a binary downloaded and it works. And there's a whole bunch of embedded controllers that actually use this. So you just pick the one you want, flash it down there. And as promised, I'm running out of time. So here's a real product, right? So let's go back to the camera again. Where's my camera gone? Right, so have a guess what that is. I'll turn it that way. Yes, an ODB. Now that's prototype from Vodafone. I was running the team that did this. So that, if I look closer, is theory printed. So once you've got your product, once you've built it using your hardware and your sensors and so on, you have to go to the next step. And believe it or not, that is a prototype that's based on an embed. And some of the things that you have to think about when you're developing a real product that's going to go into market, is that you get your first rev board and you think what I'm going to put on that board and we're going to have this chip, what sensors and so on. So we've taken decisions here because it's Vodafone. We don't know if we're going to use a 3G or 2G. If we use a TG one, we can use a U blocks 2G module, which is cheap. If we go to 3G, the bump cost goes up. So are you going to make money from selling the product or services on top? It's a single layer board as well. So it means you can just about get access to any of the CPU or any of the microcontrollers on that board by these breakouts. So you have to be sure that when you go to market, the thing's going to work because returns kill your profit. So this one would have then been condensed into that and had multi-layer. And then you'd ship a product. You'd maybe sell it to Avivo or one of the insurance providers and they plug in the car and you sell a product called Drive Like a Girl, which was a real product in the UK. And then it monitors your car, pushes the data up, and then you've got to worry about all the other stuff as well. So I've got two more minutes. So the next thing to add is I've said about complexity and features. So from my experience, do not put anything other than your use case that you come up with. Even if you think it's really simple, I can just add that by there. It's just a two minute job. It's just a half a day of coding. Developers say half a day. To multiply by pi, you've got the real answer. It's longer than you think and testing is really important because it's not a web application. You can't just launch another one. And the other thing I wanted to mention about that, which I've got to slide up for, how much time we've got left now, a minute. Yeah. We've talked about that. Tent and market is really important. Yes, products are hard. But getting a proof of concept out fast is important because if you've got a product portfolio every six months you bring a new product to it, then you have to think, if I'm going to spend two months getting the hardware ready, then it's two months time you've lost. And everyone else is doing it fast. So you have to just up your game and try and reduce the things that you don't need to do. You should be doing. And I've showed you the connected car thing. And I'm sure I forgot something else. That's it. I think that's it. I probably forgot something. But if you get any questions on this. Yes. You mentioned that you programmed these things with something that is not C, Python and with JavaScript. What about other languages, for example, Java? There is. So Samsung are now releasing product, product, open source product, which is a really, really cut down Java virtual machine, which will be going on a number of embedded devices. But years ago, I saw Oracle. Sorry, I'm trying to push out this idea. Never went anywhere. The GVM seems to be just so bloated that it's hard. It's a bit. I'm not sure. In my opinion, it may be too late. This is my opinion. It may be too late because JavaScript and Python have, they're coming into a space where Java dominated and they're taking market share. But from the embedded world, Java doesn't have market share. So they've lost already. So you already get this take off of Python and JavaScript. Maybe it's too late. Sorry. Thank you very much. Thank you.